前言
一、turtle库
1、一个小例子
2、turtle绘图的基础知识
1. 画布(canvas)
2. 画笔
二、random库
1、随机浮点数
2、随机整数
3、随机字符
4、随机洗牌
5、另:numpy里的random方法
三、time库
1、获取当前时间戳
2、获取当前时间
3、获取格式化的时间
公众号要发一个python标准库介绍,我先记录到本博客中,后面再过渡过去。这三个标准库是今年计算机python二级大纲中提到的3个标准库,不难但是是比较基础但库,也需要掌握。
turtle库是python的内部库,使用时直接导入即可,这里先放一段代码看看这个库能实现什么效果。
# 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)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行的路径上绘制了图形。在本例中这个图形就是上面的效果图。
画布就是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.1 画笔的状态
在画布上,默认有一个坐标原点为画布中心的坐标轴,坐标原点上有一只面朝x轴正方向小乌龟。这里我们描述小乌龟时使用了两个词语:坐标原点(位置),面朝x轴正方向(方向), turtle绘图中,就是使用位置方向描述小乌龟(画笔)的状态。
2.2 画笔的属性
画笔(画笔的属性,颜色、画线的宽度等)
2.3 绘图命令
操纵海龟绘图有着许多的命令,这些命令可以划分为3种:一种为运动命令,一种为画笔控制命令,还有一种是全局控制命令。
(1)画笔运动命令
(2)画笔控制命令
(3)全局控制命令
(4)其他命令
在使用python过程中会遇到随机数的使用,那么怎么使 a 随机生成一个数值呢,来研究一下random的部分程序。
random.uniform() 用于生成指定范围内的浮点数
import random # 首先还是要导入random这个模块
a = random.uniform(2,10) # 两个参数,一个是上限,一下是下限
print(a)
结果:3.0268555183487953
random.randint() 用于选取指定范围内的整数
a = random.randint(10,80)
print(a)
结果:35
random.randrange() 用于随机选取0—100之间的随机偶数
a = random.randrange(0,100,2)
print(a)
结果:54
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']
random.shuffle() 用于将一个列表中的元素打乱
a = ["Python", "is", "powerful", "simple", "and so on..."]
random.shuffle(a)
print(a)
结果:['powerful', 'simple', 'and so on...', 'is', 'Python']
在上面提到的生成随机数或者随机字符,都是单个的输出,如果说现在的需求时生成一个矩阵,里面的元素时随机数,那么我们就需要用到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]]
Python具有良好的时间和日期管理功能。实际上,计算机只会维护一个挂钟时间(wall clock time),这个时间是从某个固定时间起点到现在的时间间隔。时间起点的选择与计算机相关,但一台计算机的话,这一时间起点是固定的。时间间隔是以秒为单位的浮点小数。每个时间戳都以自从1970年1月1日午夜(历元)经过了多长时间来表示。Python 的 time 模块下有很多函数可以转换常见日期格式。
如函数time.time()用于获取当前时间戳, 如下实例:
import time # 导入time库
ticks = time.time() # 返回当前时间戳
print("当前时间戳为:", ticks)
结果:当前时间戳为: 1540291115.793172
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元组里面的属性名称是:年、月、日、小时、分钟、秒、一周的第几日、一年的第几日,是否为夏令时
我们可以使用 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中时间日期格式化符号:
你想要什么格式的时间表示形式,都可以得到哦
其实啊,calendar库还可以输出日历格式的时间,每个库的方法数量非常多这里就不一一说明,先对每个库有映象,遇到实际问题后查阅严谨的官方文档。嗯。
参考文章:
https://blog.csdn.net/zengxiantao1994/article/details/76588580
http://www.runoob.com/python/python-date-time.html