9.1turtle库概述
turtle(海龟)是 Python重要的标准库之一,它能够进行基本的图形绘制。turtle 图形绘制的概念诞生于1969年,成功就用于LOGO编程语言。由于 turtle图形绘制概念十分直观且非常流行,Python接受了这个概念,形成了Python 的turtle库,
并成为标准库之一。
turtle 库绘制图形有一个基本框架:一个小海龟在坐标系中爬行,其爬行轨迹形成了绘制图形。对于小海龟来说,有“前进”“后退”“旋转”等爬行行为,对坐标系的探索也通过“前进方向”“后退方向”“左侧方向”和“右侧方向”等小海龟自身角度方位来完成。则开始绘制时,小海龟位于画布中,此处坐标为(o,0),前进方向为水平右方。
turtle是最有价值的程序设计入门实践库,它是程序设计入门层面最常用的基本绘图库。5使用import 保留字对turtle库的引用有如下3种方式:
importturtle,则对turtle库中函数调用采用turtle.函数名()形式。
from turtle import* ,则对turtle库中函数调用直接采用函数名()形式,不再使用turtle作为前导。
from turtle import *circle(200)
import turtle as t ,则对turtle库中函数调用采用更简洁的t.函数名()形式,保留字as 的作用是将turtle库给予别名t。此处也可以使用t 之外的其他别名。
import turtle as t t.circle(200)
9.2turtle 库与基本绘图
turtle库包含100多个功能函数,主要包括窗体函数、画笔状态和画笔运动函数3类。
9.2.1窗体函数
turtle库的turtle.setup()函数与窗体有关。
函数定义如下:
turtle.setup(width,height,startx,starty)
参数详解:
width:窗口宽度。如果值是整数,表示的是像素值;如果值是小数,表示窗口宽度与屏幕的比例。
height:窗口高度。如果值是整数,表示的是像素值;如果值是小数,表示窗口高度与屏幕的比例。
startx:窗口左侧与屏幕左侧的像素距离。如果值是None,窗口位于屏幕水平中央。starty:窗口顶部与屏幕顶部的像素距离。如果值是None,窗口位于屏幕垂直中央。
import turtle
turtle.setup(100,100,100,100)
9.2.2画笔状态函数
pendown():放下画笔,别名pd(),down()
penup():提起画笔,与pendown()配对使用,别名pu(),up()
pensize(width):设置画笔线条的粗细为指定大小,别名width()
pencolor():设置画笔的颜色
color() I:设置画笔和填充颜色
begin_fill():填充图形前,调用该方法
end_fill():填充图形结束
filling():返回填充的状态,True为填充,False为未填充
clear():清空当前窗口,但不改变当前窗口的位置
reset():重置当前窗口,并重置位置等状态为默认值
screensize():设置画布窗口的宽度、.高度和背景颜色
hideturtle():隐藏画笔的turtle形状
showturtle():显示画笔的turtle形状
isvisible():如果turtle可见,则返回True
write(str,font=None):输出font字体的字符串:font=(‘Arial’,50,’normal’))
9.2.3画笔运动函数
turtle通过一组函数控制画笔的行进动作,进而绘制形状序号
forward(distance):沿着当前方向前进指定距离,别名fd()
background(distance):沿着当前相反方向后退指定距离,别名bk()
right(angle):向右旋转angle角度
left(angle):向左旋转angle角度
goto(x,y):移动到绝对坐标(x,y)处
setx(x):修改画笔的横坐标到x,纵坐标不变
sety(y):修改画笔的纵坐标到y,横坐标不变
seth[eading] (angle):设置当前朝向为angle角度
home():设置当前画笔位置为原点,朝向东
circle(radius,e)
:绘制一个指定半径r和角度e的圆或弧形
dot(r,color)
:绘制一个指定半径r和颜色color的圆点
undo():撤销画笔最后一步动作
speed():设置画笔的绘制速度,参数为0~10之间
9.3random库概述
随机数在计算机应用中十分常见,Python语言提供了random库用于产生各种分布的伪随机数序列。random库采用梅森旋转算法生成伪随机数序列,可用于除随机性要求更高的加密算法外的大多数工程应用。
使用random库的主要目的是生成随机数。这个库提供了不同类型的随机数,其中最基本的函数是random.random(),它生成一个[0.0,1.0)之间的随机小数,所有其他随机数都是基于这个函数而来的。
seed(a=None):初始化随机数种子,默认值为当前系统时间
random():生成一个[0.0,1.0)之间的随机小数
randint(a,b):生成一个[a,b]之间的整数
getranddbits(k):生成一个k比特长度的随机整数
randrange(start,stop[,step]):生成一个[start,stop)之间以step为步数的随机整数
uniform(a,b):生成一个[a,b]之间的随机小数
choice(seq):从序列类型中随机返回一个元素
shuffle(seq):将序列类型中元素随机排列,返回打乱后的序列
sample(pop,k):从pop类型中随机选取k个元素,以列表类型返回
与其他编程语言相似,Python语言中随机数的生成基于随机数“种子”,每个种子作为输入,利用算法生成一系列随机数,构成伪随机序列。random 库使用random.seed(a)对后续产生成的随机数设置种子。
所有的随机数都是基于random()函数实现的基种具体功能。(再次设置相同的种子,则后续产生的随机数相同)
9.5time 库概述
处理时间是程序最常用的功能之一,time库是 Python提供的处理时间标准库。Time库提供系统级精确计时器的计时功能,可以用来分析程序性能,也可让程序暂停运行时间。
使用time库之前需要使用import进行导入
time库的功能主要分为3个方面:时间处理、时间格式化和计时。
时间处理主要包括4个函数: time.time()、time.gmtime()、time.localtime()、 time.ctime()。
时间格式化主要包括3个函数:time.mktime()、time.strftime()、time.strptime()。
计时主要包括3个函数:time.sleep()、time.monotonic()、time.perf_counter()o使用time.time()获取当前时间戳
使用time.time()获取当前时间戳
使用time.gmtime(sec)获取当前时间戳对应的struct_time对象。
使用time.localtime(secs)获取当前时间戳对应的本地时间的 struct_time对象。与
time.gmtime()的区别,是UTC时间已自动转的为北京时间。
time.ctime(secs)获取当前时间戳对应的易读字符串表示,内部会调用time.localtime()函数以输出当地时间。
time库使用time.mktime()、time.strftime()、time.strptime()进行时间格式化。使用time.mktime(t)将 struct_time对象t转换为时间戳,注意t代表当地时间。
struct_time对象的元素构成
下标 属性 值
0 tm_year 年份、整数
1 tm_mon 月份[1,12]
tm_mday 日期[1,31]
tm_hour 小时[0,23]
tm_min 分钟[0,59]
tm_sec 秒[0,61]
tm_wday 星期[o,6](o表示星期一)
tm_yday 该年第几天[1,366]
tm_isdst 是否夏令时,o否,1是,-1未知
调用time.mktime(t)函数
time.strftime()函数是时间格式化最有效的方法,几乎可以以任何通用格式输出时间。该方法利用一个格式字符串,对时间林式进行表示。
strftime()方法的格式化控制符
%Y 年份 00019999例如:190012例如:10
%m 月份 01
%B 月名 JanuaryDecember例如:AprilDec例如Apr
%b 月名缩写 Jan
%d 日期 0131例如25Sunday 例如 wWednesday
%A 星期 Monday
%a 星期缩写 Monsun例如Wed23例如12
%H 小时(24h制) 00
%I 小时(12h制) 0112例如759例如26
%p 上/下午 AM,PM例如PM
%M 分钟 00
%S 秒 o0~59例如26
strptime()方法与strftime()方法完全相反,用于提取字符串中的时间来生成struct_time对象,可以很灵活地作为time模块输入接口。
评论区
欢迎你留下宝贵的意见,昵称输入QQ号会显示QQ头像哦~