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) 从序列中选择个随机且不重复的元素;
import random as R
R.random()
#0.9309907963621747
R.random()
#0.8932920124665744
R.random()
#0.12526503303205394
#
R.getrandbits(8)#二进制的数,2的8次方,0-255的随机数
#
R.getrandbits(8)
#
R.getrandbits(8)
#
R.getrandbits(8)
#
#
R.uniform(1,6)
5.491166696645943
R.uniform(1,6)
4.620897749534063
R.uniform(1,6)
3.4620999533669217
R.uniform(1,6)
4.590256968447636
R.uniform(1,6)
2.190289883881221
#
R.randrange(1,10,2) #从1到10,步长2,[1,3,5,7,9]中随机数
7
R.randrange(1,10,2)
1
R.randrange(1,10,2)
5
R.randrange(1,10,2)
1
#
L = [1,2,3,4,5,6,7,8,9]
print(R.choice(L))
#9 #取L中的随机数
#
R.shuffle(L)
print(L)
#[4, 1, 8, 6, 7, 3, 2, 9, 5] 随机洗牌游戏
print(R.sample(L, 3))
#[6, 9, 5] 随机3个不重复的数字;买彩票游戏
练习:
#猜数字游戏:
#随机生成一个0-100之间的整数,,,
import random as R
L = range(0,101)
x = R.choice(L)
#print(x)
L1 = []
y = int(input("请输入一个数字y:"))
while True:
L1.append(y)
if y > x:
y = int(input("您猜的数大了,请重新输入y:"))
elif y < x:
y = int(input("您猜的数小了,请重新输入y:"))
else:
print("恭喜您猜对了!")
#print(L1)
print("您一共猜了 %d 个数。" % len(L1) )
exit(0)
包(模块包)package
包的定义:包是将模块以文件夹的组织形式进行分组管理的方法;
包的作用:
1,将一系列模块进行分类管理,有利于防止名字冲突;
2,可以在需要时加载一个或部分模块而不是全部模块;
#例子
mypack/
__init__.py
menu.py
games/
__init__.py
contra.py
supermario.py
tanks.py
office/
__init__.py
excel.py
world.py
powerpoint.py
包的加载:
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
#\mypack>ls
__init__.py games menu.py
>>> import mypack
mypack包被加载了
>>> import mypack.menu
menu模块被加载了
>>> mypack.menu.show_menu()
+--------------+
| 1) 游戏 |
| 2) 办公软件 |
+--------------+
#
>>> from mypack import menu
mypack包被加载了
menu模块被加载了
>>> from mypack.games import contra
games 包被加载!...
contra包加载
>>> contra.play()
正在玩魂斗罗!
>>> dir()
['__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'contra', 'menu']
>>> from mypack.menu import show_menu
>>> show_menu()
+--------------+
| 1) 游戏 |
| 2) 办公软件 |
+--------------+
>>> import mypack.menu as m
>>> m.show_menu()
+--------------+
| 1) 游戏 |
| 2) 办公软件 |
+--------------+
>>>
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
Python之路,第十四篇:Python入门与基础14的更多相关文章
- Python之路(第二十四篇) 面向对象初级:多态、封装
一.多态 多态 多态:一类事物有多种形态,同一种事物的多种形态,动物分为鸡类,猪类.狗类 例子 import abc class H2o(metaclass=abc.ABCMeta): def _ ...
- Python之路(第十四篇)os模块
一.os模块 1.os.getcwd() 获取当前工作目录(当前工作目录默认都是当前文件所在的文件夹) import os print(os.getcwd()) 2.os.chdir(path) 改变 ...
- 【Python之路】第四篇--Python基础之函数
三元运算 三元运算(三目运算),是对简单的条件语句的缩写 # 书写格式 result = 值1 if 条件 else 值2 # 如果条件成立,那么将 “值1” 赋值给result变量,否则,将“值2” ...
- Python之路【第四篇】: 函数、递归、内置函数
一. 背景提要 现在老板让你写一个监控程序,监控服务器的系统状况,当cpu\memory\disk等指标的使用量超过阀值时即发邮件报警,你掏空了所有的知识量,写出了以下代码 while True: i ...
- Python之路【第四篇】:模块
什么是模块: 模块就是一个功能的集合. 模块就和乐高积木差不多,你用这些模块组合出一个模型,然后也可以用这个模块加上其他的模块组合成一个新的模型 模块的种类: 1.内置模块(python自带的比如os ...
- Python之路(第十五篇)sys模块、json模块、pickle模块、shelve模块
一.sys模块 1.sys.argv 命令行参数List,第一个元素是程序本身路径 2.sys.exit(n) 退出程序,正常退出时exit(0) 3.sys.version . sys.maxint ...
- Python之路(第十二篇)程序解耦、模块介绍\导入\安装、包
一.程序解耦 解耦总的一句话来说,减少依赖,抽象业务和逻辑,让各个功能实现独立. 直观理解“解耦”,就是我可以替换某个模块,对原来系统的功能不造成影响.是两个东西原来互相影响,现在让他们独立发展:核心 ...
- 【Python之路】第六篇--Python基础之模块
模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要多个函数才 ...
- Python之路【第四篇】:Python基础之函数
函数的理解 面向过程:根据业务逻辑从上到下垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 函数作用是你的程序有良好的扩展性.复用性. 同样的功能要是用3次以上的话就建议使 ...
- Python开发【第十四篇】:Web框架本质
Web框架本质 众所周知,对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端. ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ...
随机推荐
- EvalAI使用——类似kaggle的开源平台,不过没有kernel fork功能,比较蛋疼
官方的代码 https://github.com/Cloud-CV/EvalAI 我一直没法成功import yaml配置举办比赛(create a challenge on EvalAI 使用htt ...
- Oracle的创建表和创建约束的Sql语句
Oracle的创建表和创建约束的Sql语法 1.创建表的语句 ---1.创建模拟的数据表 --- --1.1.创建学生表Student create table Student( StuId NUMB ...
- HTTP、TCP、UDP的区别
TCP.UDP的区别 1.TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接 2.TCP提供可靠的服务.也就是说,通过TCP连接传送的数据,无差错,不丢失,不重 ...
- 真实分享记录我学习Linux系统遇到的问题
对于linux,又爱又恨,也有自己的一些看法,毕竟已经接触了快两年了.但是,说出来都是伤,为什么呢?如果您想知道请让我给您慢慢道来. 最开始接触linux是在高考完后,由于我家的台式电脑太卡,于是我就 ...
- U启动制作U盘启动盘详细教程
第一步 打开u启动装机版,将准备好的u盘插入电脑usb接口并静待软件对u盘进行识别,由于此次u启动采用全新功能智能模式,可为u盘自动选择兼容性强与适应性高的方式进行制作,相较过去版本可省去多余的选择操 ...
- js 操作dom
childNodes 返回当前元素所有子元素的数组 parentNode 返回元素的父节点 document.createElement(tagName) 文档对象上的createElement方法可 ...
- python实现用户登录界面
要求 输入用户名密码正确,提示登录成功, 输入三次密码错误,锁定账户. 实现原理: 创建两个文件accout,accout_lock accout记录用户名,密码 accout root 1qazxs ...
- Netty完成网络通信(二)
Netty是基于NIO的框架,完善了NIO的一些缺陷,因此可以用Netty替代NIO Netty实现通信步骤: 1.创建两个NIO线程组,一个专门用于网络事件处理(接受客户端的连接),另一个则进行网络 ...
- python常用内建模块 collections,bs64,struct,hashlib,itertools,contextlib,xml
# 2 collections 是Python内建的一个集合模块,提供了许多有用的集合类. # 2.1 namedtuple #tuple可以表示不变集合,例如,一个点的二维坐标就可以表示成: p ...
- 将自己的域名解析跳转到博客主页(GitHub中的gitpage跳转)
最近突然迷上了博客,突然又突发奇想,将自己几个月前买的现在限制的域名拿来跳转到自己的csdn博客.经过一番研究,总结---- 把自己的购买的域名(比如我买的circleyuan.top)跳转到CSDN ...