Python之路,第十四篇:Python入门与基础14

python3    模块2

标准模块

随机模块random

假设导入 import  random  as  R

函数:

R.random()    返回一个[0 ,1) 之间的随机数

R.getrandbits(nbit)   以长整型的形式返回用nbit未来表示的随机数;

R.uniform(a,b)   返回(a,b)区间内的随机数

R.randrange([start, ] stop  [, step] )   返回range(start, stop, step)中的随机数;

R.choice(seq)   从序列中返回随意元素;

R.shuffle(seq)  随机指定序列的顺序(乱序顺序)

R.sample(seq, n)  从序列中选择个随机且不重复的元素;

 1 import random as R
 2 R.random()
 3 #0.9309907963621747
 4 R.random()
 5 #0.8932920124665744
 6 R.random()
 7 #0.12526503303205394
 8 #
 9 R.getrandbits(8)#二进制的数,2的8次方,0-255的随机数
10 #198
11 R.getrandbits(8)
12 #30
13 R.getrandbits(8)
14 #55
15 R.getrandbits(8)
16 #74
17 #
18 R.uniform(1,6)
19 5.491166696645943
20 R.uniform(1,6)
21 4.620897749534063
22 R.uniform(1,6)
23 3.4620999533669217
24 R.uniform(1,6)
25 4.590256968447636
26 R.uniform(1,6)
27 2.190289883881221
28 #
29 R.randrange(1,10,2)  #从1到10,步长2,[1,3,5,7,9]中随机数
30 7
31 R.randrange(1,10,2)
32 1
33 R.randrange(1,10,2)
34 5
35 R.randrange(1,10,2)
36 1
37 #
38 L = [1,2,3,4,5,6,7,8,9]
39 print(R.choice(L))
40 #9  #取L中的随机数
41 #
42 R.shuffle(L)
43 print(L)
44 #[4, 1, 8, 6, 7, 3, 2, 9, 5] 随机洗牌游戏
45 print(R.sample(L, 3))
46 #[6, 9, 5]   随机3个不重复的数字;买彩票游戏
View Code

 

练习:

 1 #猜数字游戏:
 2 #随机生成一个0-100之间的整数,,,
 3 import random as R
 4 L = range(0,101)
 5 x = R.choice(L)
 6 #print(x)
 7 L1 = []
 8 y = int(input("请输入一个数字y:"))
 9 while True:
10     L1.append(y)
11     if y > x:
12         y = int(input("您猜的数大了,请重新输入y:"))
13     elif y < x:
14         y = int(input("您猜的数小了,请重新输入y:"))
15     else:
16         print("恭喜您猜对了!")
17         #print(L1)
18         print("您一共猜了 %d 个数。" % len(L1) )
19         exit(0)
View Code

 

包(模块包)package 

包的定义:包是将模块以文件夹的组织形式进行分组管理的方法;

包的作用:

1,将一系列模块进行分类管理,有利于防止名字冲突;

2,可以在需要时加载一个或部分模块而不是全部模块;

 1 #例子
 2 mypack/
 3     __init__.py
 4     menu.py
 5     games/
 6         __init__.py
 7         contra.py
 8         supermario.py
 9         tanks.py
10     office/
11         __init__.py
12         excel.py
13         world.py
14         powerpoint.py
View Code

 

包的加载:

import 包名  [as  包别名]

import 包名.模块名  [as  模块别名]

import 包名.子包名.模块名  [as  模块别名]

...

from 包名  import 模块名 [ as 模块新名 ]

from 包名.子包名  import 模块名 [ as 模块别名 ]

from 包名.模块名  import 变量名 [ as 变量别名 ]

 

from 包名 import *

from 包名.模块名 import 

__all__  :用来记录哪些包需要导入

1,当用from 包 import *  语句导入模块时,只查找__all__中所列出的模块;

2,__all__属性只在from  包 import * 语句中起作用;

包的加载路径:

同模块相同,设置方法:

1,可以设置sys.path  ;  sys.path.append("/home/test/")  、 sys.path.append("C:\\test\")

2,可以设置PYTHONPATH环境变量;

在~/.bashrc 文件里最下面加入:

export  PYTHONPATH=$PYTHONPATH:/home/test/

模块的加载过程:

              编译                  解释执行

menu.py  --->   menu.pyc --->  python3

 1 #\mypack>ls
 2 __init__.py  games  menu.py
 3 >>> import mypack
 4 mypack包被加载了
 5 >>> import mypack.menu
 6 menu模块被加载了
 7 >>> mypack.menu.show_menu()
 8 +--------------+
 9 |  1) 游戏     |
10 |  2) 办公软件 |
11 +--------------+
12 #
13 >>> from mypack import menu
14 mypack包被加载了
15 menu模块被加载了
16 >>> from mypack.games import contra
17 games 包被加载!...
18 contra包加载
19 >>> contra.play()
20 正在玩魂斗罗!
21 >>> dir()
22 ['__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'contra', 'menu']
23 >>> from mypack.menu import show_menu
24 >>> show_menu()
25 +--------------+
26 |  1) 游戏     |
27 |  2) 办公软件 |
28 +--------------+
29 >>> import mypack.menu as m
30 >>> m.show_menu()
31 +--------------+
32 |  1) 游戏     |
33 |  2) 办公软件 |
34 +--------------+
35 >>>
View Code

 

python 调试器 pdb模块

pdb是个模块, 主要用于调试程序;

作用: 1,让程序单步执行,并跟踪程序的执行流程;

2,在运行查看变量的值;

3,让程序控制程序的执行流程;

方法:

pdb.set_trace()   在此代码段进入调试器;

pdb调试命令:

q/quit      退出pdb调试器

l/list       列出源码

h/help     查看pdb帮助

p/pp   表达式       运行表达式并返回结果;

n/next         执行下一条语句;

c/contj/continue      继续执行,直到下一个断点;

b/break    断点位置         设置断点;

cl/clear   断点号              清除断点

s/step        进入到函数内部执行;

r/return       持续运行,直到此函数返回;

w/where     打印函数调用栈

r/run   [命令行参数]    重新开始运行程序

pdb断点的设置方法:

1, 文件名 : 行号

   (pdb) b   test_pdb.py   :10

2, 当前文件的行号

   (pdb)b 20   #等同于b  test_pdb.py   : 20

3, 函数名;

     (Pdb) b   f1()

4, 模块.函数名

    (Pdb) b  contra.play

控制台下的pdb调试:

控制台下运行pdb 调试器的命令格式:

#python3  -m   pdb   xxx.py

(Pdb)

注:xxx.py  内不需要导入pdb模块和调用set_trace

 

posted on 2018-05-15 22:25  微子天明  阅读(158)  评论(0编辑  收藏  举报

导航