目录
前言
一、turtle库
1、一个小例子
2、turtle绘图的基础知识
1. 画布(canvas)
2. 画笔
二、random库
1、随机浮点数
2、随机整数
3、随机字符
4、随机洗牌
5、另:numpy里的random方法
三、time库
1、获取当前时间戳
2、获取当前时间
3、获取格式化的时间
前言
公众号要发一个python标准库介绍,我先记录到本博客中,后面再过渡过去。这三个标准库是今年计算机python二级大纲中提到的3个标准库,不难但是是比较基础但库,也需要掌握。
一、turtle库
turtle库是python的内部库,使用时直接导入即可,这里先放一段代码看看这个库能实现什么效果。
1、一个小例子
# coding=utf-8
import turtle # 导入python自带的turtle库
import time
turtle.pensize(5) # 设置画笔的宽度为5像素
turtle.pencolor("yellow") # 设置当前画笔颜色为黄色
turtle.fillcolor("red") # 绘制图形的填充颜色为红色
turtle.begin_fill() # 准备开始填充图形
for _ in range(5): # 这个循环的用途是循环5次,无需关注_的实际含义
turtle.forward(200) # 向当前画笔方向移动200像素长度
turtle.right(144) # 顺时针移动144°
turtle.end_fill() # 填充完成
time.sleep(2) # 设置2秒后进行后续步骤
turtle.penup() # 提起笔移动,不绘制图形,用于另起一个地方绘制
turtle.goto(-150, -120) #将画笔移动到坐标为(-150,-120)的位置
turtle.color("violet") # 同时设置pencolor和fillcolor
turtle.write("Done", font=('Arial', 40, 'normal')) # 写文本,Done为文本内容,font是字体的参数,分别为字体名称,大小和类型
turtle.mainloop() # 告诉窗口等待用户进行某些操作,暂时不用考虑
效果图:
从上面的例子里,我们可以大概看出来这个turtle库是python内置的一个简单绘图工具,想象一个小乌龟,在一个横轴为x、纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行的路径上绘制了图形。在本例中这个图形就是上面的效果图。
2、turtle绘图的基础知识
1. 画布(canvas)
画布就是turtle为我们展开用于绘图区域,我们可以设置它的大小和初始位置,turtle.screensize(canvwidth=None, canvheight=None, bg=None),参数分别为画布的宽(单位像素), 高, 背景颜色。
#设置画布大小
turtle.screensize(800,600, "green") # 参数分别为画布的宽(单位像素), 高, 背景颜色。
turtle.setup(width=0.5, height=0.75, startx=None, starty=None),参数:width, height: 输入宽和高为整数时, 表示像素; 为小数时, 表示占据电脑屏幕的比例,(startx, starty): 这一坐标表示矩形窗口左上角顶点的位置, 如果为空,则窗口位于屏幕中心。
# 画布设置
turtle.setup(width=800,height=800, startx=100, starty=100)
# 或者
turtle.setup(width=0.6,height=0.6)
2. 画笔
2.1 画笔的状态
在画布上,默认有一个坐标原点为画布中心的坐标轴,坐标原点上有一只面朝x轴正方向小乌龟。这里我们描述小乌龟时使用了两个词语:坐标原点(位置),面朝x轴正方向(方向), turtle绘图中,就是使用位置方向描述小乌龟(画笔)的状态。
2.2 画笔的属性
画笔(画笔的属性,颜色、画线的宽度等)
- turtle.pensize():设置画笔的宽度;
- turtle.pencolor():没有参数传入,返回当前画笔颜色,传入参数设置画笔颜色,可以是字符串如"green", "red",也可以是RGB 3元组。
- turtle.speed(speed):设置画笔移动速度,画笔绘制的速度范围[0,10]整数,数字越大越快。
2.3 绘图命令
操纵海龟绘图有着许多的命令,这些命令可以划分为3种:一种为运动命令,一种为画笔控制命令,还有一种是全局控制命令。
(1)画笔运动命令
(2)画笔控制命令
(3)全局控制命令
(4)其他命令
二、random库
在使用python过程中会遇到随机数的使用,那么怎么使 a 随机生成一个数值呢,来研究一下random的部分程序。
1、随机浮点数
random.uniform() 用于生成指定范围内的浮点数
import random # 首先还是要导入random这个模块
a = random.uniform(2,10) # 两个参数,一个是上限,一下是下限
print(a)
结果:3.0268555183487953
2、随机整数
random.randint() 用于选取指定范围内的整数
a = random.randint(10,80)
print(a)
结果:35
random.randrange() 用于随机选取0—100之间的随机偶数
a = random.randrange(0,100,2)
print(a)
结果:54
3、随机字符
random.choice() 用于随机选取指定字符串中的字符
a = random.choice ( ['apple', 'pear', 'peach', 'orange', 'lemon'] )
print(a)
结果:lemon
random.sample() 运行之后 a 就会随机选取字符串中的字符
a = random.sample('qwertyuiop',3) # 随机选3个
print(a)
结果:['p', 'e', 'i']
4、随机洗牌
random.shuffle() 用于将一个列表中的元素打乱
a = ["Python", "is", "powerful", "simple", "and so on..."]
random.shuffle(a)
print(a)
结果:['powerful', 'simple', 'and so on...', 'is', 'Python']
5、另:numpy里的random方法
在上面提到的生成随机数或者随机字符,都是单个的输出,如果说现在的需求时生成一个矩阵,里面的元素时随机数,那么我们就需要用到numpy库中的random方法。同理,这个矩阵中的随机数如果要整数的话,就使用random.randint() 函数,比如下面这个例子
from numpy import random # 从numpy库中导入random方法
a = random.randint(0, 10, size=[3, 3]) # 多维数组中的随机整数在0到10之间,数组大小是3*3
print(a)
结果:
[[1 4 8]
[2 9 4]
[1 0 0]]
三、time库
Python具有良好的时间和日期管理功能。实际上,计算机只会维护一个挂钟时间(wall clock time),这个时间是从某个固定时间起点到现在的时间间隔。时间起点的选择与计算机相关,但一台计算机的话,这一时间起点是固定的。时间间隔是以秒为单位的浮点小数。每个时间戳都以自从1970年1月1日午夜(历元)经过了多长时间来表示。Python 的 time 模块下有很多函数可以转换常见日期格式。
1、获取当前时间戳
如函数time.time()用于获取当前时间戳, 如下实例:
import time # 导入time库
ticks = time.time() # 返回当前时间戳
print("当前时间戳为:", ticks)
结果:当前时间戳为: 1540291115.793172
2、获取当前时间
time.localtime() 用于获取当前时间,从返回浮点数的时间戳方式向时间元组转换,只要将浮点数传递给如localtime之类的函数。
localtime = time.localtime(time.time())
print("本地时间为 :", localtime)
结果:本地时间为 : time.struct_time(tm_year=2018, tm_mon=10, tm_mday=23, tm_hour=18, tm_min=38, tm_sec=35, tm_wday=1, tm_yday=296, tm_isdst=0)
解读:struct_time元组里面的属性名称是:年、月、日、小时、分钟、秒、一周的第几日、一年的第几日,是否为夏令时
3、获取格式化的时间
我们可以使用 time 模块的 strftime() 方法来格式化日期
import time
# 格式化成2016-03-20 11:45:39形式
print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
# 格式化成Sat Mar 28 22:24:24 2016形式
print(time.strftime("%a %b %d %H:%M:%S %Y", time.localtime()))
# 将格式字符串转换为时间戳
a = "Sat Mar 28 22:24:24 2016"
print(time.mktime(time.strptime(a, "%a %b %d %H:%M:%S %Y")))
结果:
2018-10-23 18:51:41
Tue Oct 23 18:51:41 2018
1459175064.0
那么这中间的Y、m、d等等这些的含义是什么呢?
python中时间日期格式化符号:
- %y 两位数的年份表示(00-99)
- %Y 四位数的年份表示(000-9999)
- %m 月份(01-12)
- %d 月内中的一天(0-31)
- %H 24小时制小时数(0-23)
- %I 12小时制小时数(01-12)
- %M 分钟数(00=59)
- %S 秒(00-59)
- %a 本地简化星期名称
- %A 本地完整星期名称
- %b 本地简化的月份名称
- %B 本地完整的月份名称
- %c 本地相应的日期表示和时间表示
- %j 年内的一天(001-366)
- %p 本地A.M.或P.M.的等价符
- %U 一年中的星期数(00-53)星期天为星期的开始
- %w 星期(0-6),星期天为星期的开始
- %W 一年中的星期数(00-53)星期一为星期的开始
- %x 本地相应的日期表示
- %X 本地相应的时间表示
- %Z 当前时区的名称
- %% %号本身
你想要什么格式的时间表示形式,都可以得到哦
其实啊,calendar库还可以输出日历格式的时间,每个库的方法数量非常多这里就不一一说明,先对每个库有映象,遇到实际问题后查阅严谨的官方文档。嗯。
参考文章: