标准库
python计算生态 = 标准库 + 第三方库
标准库:随解释器直接安装到操作系统中的功能模块
第三方库:需要经过安装才能使用的功能模块
库Library、包Package、模块Module,统称模块
一、turtle库
turtle(海龟)库是turtle绘图体系的python实现
turtle绘图体系:1969年诞生,主要用于程序设计入门
python语言的标准库之一
入门级的图形绘制函数库
turtle的原理:
turtle(海龟)是一种真实的存在
有一只海龟,其实在窗体正中心,在画布上游走,走过的轨迹形成了绘制的图形
海龟由程序控制,可以变换颜色、改变宽度等
1、常用RGB色彩
英文名称 | RGB整数值 | RGB小数值 | 中文名称 |
white | 255,255,255 | 1,1,1 | 白色 |
yellow | 255,255,0 | 1,1,0 | 黄色 |
magenta | 255,0,255 | 1,0,1 | 洋红 |
cyan | 0,255,255 | 0,1,1 | 青色 |
blue | 0,0,255 | 0,0,1 | 蓝色 |
black | 0,0,0 | 0,0,0 | 黑色 |
seashell | 255,245,238 | 1,0.96,0.93 | 海贝色 |
gold | 255,215,0 | 1,0.84,0 | 金色 |
pink | 255,192,203 | 1,0.75,0.80 | 粉红色 |
brown | 165,42,42 | 0.65,0.16,0.16 | 棕色 |
purple | 160,32,240 | 0.63,0.13,0.94 | 紫色 |
tomato | 255,99,71 | 1,0.39,0.28 | 番茄色 |
2、turtle的RGB色彩模式
默认采用小数值,可切换为整数值
turtle.colormode(mode)
1.0:RGB小数值
255:RGB整数值模式
3、turtle库的使用
turtle库的海龟绘图法
turtle.setup()调整绘图窗体在电脑屏幕中的布局
画布上以中心为原点的空间坐标系:绝对坐标&海龟坐标
画布上以空间X轴为0度角度坐标系:绝对角度&海龟角度
RGB色彩体系,整数值&小数值,色彩模式切换
4、turtle程序语法元素分析
4.1、库引用与import
扩充python程序功能的方式
使用import保留字完成,采用<a>.<b>()编码风格
import<库名>
<库名>.<函数名>(<函数参数>)
使用from和import保留字共同完成
from<库名>import<函数名>
from<库名>import*
<函数名>(<函数参数>)
两种方法比较:
使用import保留字完成,采用<a>.<b>()编码风格 | 使用from和import保留字共同完成 |
import<库名> <库名>.<函数名>(<函数参数>) |
from<库名>import<函数名> from<库名>import* <函数名>(<函数参数>) |
-第一种方法不会出现函数重名问题
-第二种方法会出现
import更多用法:
使用import和as保留字共同完成
import<库名>as<库别名>
<库别名>.<函数名>(<函数参数>)
-给调用的外部库关联一个更短、更适合自己的名字
4.2、turtle画笔控制函数
画笔操作后一直有效,一般成对出现
-turtle.penup() 别名:turtle.pu()
抬起画笔,海龟在飞行
-turtle.pendown() 别名:turtle.pd()
落下画笔,海龟在爬行
-turtle.pensize(width) 别名:turtle.width(width)
画笔宽度,海龟的腰围
-turtle.pencolor(color) color为颜色字符串或r,g,b值
画笔颜色,海龟在涂装
pencolor(color)的color参与可以有三种形式:
颜色字符串:turtle.pencolor("purple")
RGB的小数值:turtle.pendcolor(0.63,0.13,0.94)
RGB的元组值:turtle.pencolor((0.63,0.13,0.94))
4.3、turtle运动控制函数
控制海龟行进:走直线&走曲线
-turtle.forward(d) 别名:turtle.fd(d)
向前行进,海龟走直线
d:行进距离,可以为负数
-turtle.cirle(r,extent = None)
根据半径r绘制extent角度的弧度
r:默认圆心在海龟左侧r距离的位置
extent:绘制角度,默认是360度整圆
4.4、turtle方向控制函数
控制海龟面对方向:绝对角度&海龟角度
-turtle.setheading(angle) 别名:turtle.seth(angle)
改变行进方向,海龟走角度
angle:改变行进方向,海龟走角度
-turtle.left(angle) 海龟向左转
-turtle.right(angle) 海龟向右转
angle:在海龟当前行进方向上旋转的角度
4.5、基本循环语句
按照一定次数循环执行一组语句
for <变量> in range(<函数名>):
<被循环执行的语句>
-<变量>表示每次循环的计数,0到<次数>-1
示例:
for i in range(5): print(i) |
for i in range(5): print("Hello",i) |
>>> 0 |
>>> Hello 0 |
range()函数
产生循环计数序列
-range(N) 产生0到N-1的整数序列,共N个
range(5)
>>>0,1,2,3,4
-rangge(M,N) 产生M到N-1的整数序列,共N-M个
range(2,5)
>>>2,3,4
5、小结
-库引用:import、from...import、import...as...
-penup()、pendown()、pensize()、pencolor()
-fd()、circle()、seth()
-循环语句:for和in、range()函数
二、time库
time库包括三类函数
- 时间获取:time()、ctime()、gmtime()
- 时间格式化:strftime()、strptime()
- 程序计时:sleep()、perf_counter()
1、时间获取
time():获取当前时间的时间戳,即计算机内部时间值,是浮点数。
>>>time.time()
151.6939876.6022282
ctime():获取当前时间并已易读方式表示,返回字符串。
>>>time.ctime()
'Fri Jan 23 17:15:26 2018'
gmtime():获取当前时间,表示为计算机可处理的时间格式。
>>>time.gmtime()
time.struct_time(tm_year=2018,tm_mon=1,tm_mday=26,
tm_hour=4,tm_min=11,tm_sec=16,tm_wday=4,tm_yday=26,tm_isdst=0)
2、时间格式化
将时间以合理的方式展示出来
-格式化:类似字符串格式化,需要有展示模版
-展示模版由特定的格式化控制符组成
-strftime()方法
-strptime()方法
函数 | 描述 |
strftime(tpl,ts) |
tpl是格式化模版字符串,用来定义输出效果 ts是计算机内部时间类型变量 >>>t = time.gmtime()
>>>time.strftime("%Y-%m-%d %H:%M:%S",t)
'2018-05-23 17:48:20'
|
strfptime(str,tpl) |
tpl是格式化模版字符串,用来定义输出效果 str是计算机内部时间类型变量 >>>timeStr = '2018-05-23 20:29:20' >>>time.strptime(timeStr,"%Y-%m-%d %H:%M:%S") time.struct_time(tm_year=2018,tm_mon=1, |
格式化字符串 | 日期/时间说明 | 值范围和实例 |
%Y | 年份 | 0000~9999,例如:1900 |
%m | 月份 | 01~12,例如:10 |
%B | 月份名称 | January~December,例如:April |
%b | 月份名称缩写 | Jan~Dec,例如:Apr |
%d | 日期 | 01~31,例如:25 |
%A | 星期 | Monday~Sunday,例如:Wednesday |
%a | 星期缩写 | Mon~Sun,例如:Wed |
%H | 小时(24h制) | 00~23,例如;12 |
%h | 小时(12h制) | 01~12,例如:7 |
%p | 上/下午 | AM,PM,例如:PM |
%M | 分钟 | 00~59,例如:26 |
%S | 秒 | 00~59.;例如:26 |
3、程序计时
程序计时指应用广泛
-程序计时指测量起止动作所经历时间的过程
-测量时间:perf_counter()
-产生时间:sleep()
函数 | 描述 |
perf_counter() |
返回一个CPU级别的精准时间计数值,单位为秒 由于这个计数值起点不确定,连续调用差值才有意义 >>>start = time.perf_counter()
318.66599499718114
>>>end = time.perf_counter()
341.3965185375658
>>>end - start
22.724523540384666
|
sleep(s) |
s是休眠的时间,单位是秒,可以是浮点数 >>>def wait(): time.sleep(3.3) >>>wait() #程序将等待3.3秒后再退出 |
三、random库
random库是使用随机数的python标准库
-伪随机数:采用梅森旋转算法生成的(伪)随机序列中元素
-random库主要用于生成随机数
-使用random库:import random
1、random库函数
random库包含两类函数,常用共8个
1.1、基本随机数函数:
函数 | 描述 |
seed(a=None) |
初始化给定的随机数种子,默认为当前系统时间 >>>random.seed(10) #产生种子10对应的序列 |
random() |
生成一个[0.0,1.0)之间的随机小数 >>>random.seed() 0.5714025946899135 |
示例:
每次调用产生的随机数不同 |
设定种子后,只要后续调用的random函数顺序相同, |
>>>import random >>>random.seed(10) >>>random.random() 0.4288890546751146 >>>random.random() 0.5780913011344704 |
>>>import random >>>random.seed(10) >>>random.random() 0.4288890546751146 >>>random.seed(10) >>>random.random() 0.4288890546751146 |
1.2、扩展随机数函数:
函数 | 描述 |
random(a,b) |
生成一个[a,b]之间的整数 >>>random.randint(10,100) 65 |
randrange(m,n[,k]) |
生成一个(m,n)之间以k为步长的随机整数 >>>random.randrange(10,100,10) 80 |
getrandbits(k) |
生成一个k比特长的随机数 >>>random.getrandbits(16) 37885 |
uniform(a,b) |
生成一个[a,b]之间的随机小数 >>>random.uniform(10,100) 13.0996321648808136 |
choice(seq) |
从序列seq中随机选择一个元素 >>>random.choice([1,2,3,4,5,6,7,8,9]) 8 |
shuffle(seq) |
将序列seq中元素随机排列,返回打乱后的序列 import random s=[1,2,3,4,5,6,7,8,9]; random.shuffle(s) print(s) >>>[8, 7, 9, 4, 2, 5, 1, 6, 3] |
2、小结
- 能够利用随机数种子产生"确定"伪随机数
- 能够产生随机整数
- 能够对序列类型进行随机操作
四、PyInstaller库
将.py源代码转换无需源代码的可执行文件
PyInstaller库是第三方库
- 官方网站:http://www.pyinstaller.org
- 第三方库:使用前需要额外安装
- 安装第三方库需要使用pip工具
1、PyInstaller库的安装
(cmd命令行)pipinstall pyinstaller
2、PyInstaller库的使用
(cmd命令行)pyinstaller -F <文件名.py>
3、PyInstaller库常用参数
参数 | 描述 |
-h | 查看帮助 |
--clean | 清理打包过程中的临时文件 |
-D,--onedir | 默认值,生成dist文件夹 |
-F,--onefile | 在dist文件夹中只生成独立的打包文件 |
-i <图标文件名.ico> | 指定打包程序使用的图标(icon)文件 |