ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

Python从入门到精通 第九章(Python标准库)

2026/8/31 10:55:33 拓冰建站 浏览量
Python从入门到精通 第九章(Python标准库) 一、标准库简介有一部分Python计算生态随Python安装包一起发布用户可以随时使用被称为Python标准库受限于Python安装包的设定大小标准库的数量不会很多大概有270个本章介绍其中的3个二、turtle库1、turtle库概述1turtle库是Python重要的标准库之一它能够进行基本的图形绘制。2turtle库绘制图像有一个基本框架一个小海龟在坐标系中爬行其爬行轨迹形成了绘制图形。①对于小海龟来说有“前进”、“后退”、“旋转”等爬行行为对坐标系的探索也通过“前进方向”、“后退方向”、“左侧方向”和“右侧方向”等小海龟自身角度方位来完成。②刚开始绘制时小海龟位于画布正中央此处坐标为00前进方向为水平右方。3使用import保留字对turtle库的引用有如下几种方式①import turtle对turtle库中函数调用采用“turtle.函数名()”形式。②from turtle import *对turtle库中函数调用直接采用“函数名()”形式。③from turtle import 函数名对turtle库中函数调用直接采用“函数名()”形式但只能使用引用过的指定函数。④import turtle as t对turtle库中函数调用采用“t.函数名()”形式。给turtle赋予别名tt可以替换为其它别名2、窗体函数1函数使用方式Turtle.setup(width,height,startx,starty)。2作用设置主窗体大小和位置。3参数①width——窗口宽度。如果值是整数表示的是像素值如果值是小数表示窗口宽度与屏幕的比例。②height——窗口高度。如果值是整数表示的是像素值如果值是小数表示窗口宽度与屏幕的比例。③startx——窗口左侧与屏幕左侧的像素距离。如果值是None窗口位于屏幕水平中央。④starty——窗口左侧与屏幕顶部的像素距离。如果值是None窗口位于屏幕垂直中央。3、画笔状态函数函数描述pendown()放下画笔笔接触屏幕之后移动画笔将绘制形状penup()提起画笔笔不接触屏幕之后移动画笔不绘制形状pensize(width)设置画笔宽度当无参数输入时返回当前画笔宽度pencolor(colorstring)或pencolor((r,g,b))pencolor(colorstring)设置画笔颜色当无参数输入时返回当前画笔颜色colorstring是表示颜色的字符串如“red”表示红色pencolor((r,g,b))设置画笔颜色(r,g,b)是颜色对应的RGB的0~1数值例如(1,0.65,0)color(colorstring1,colorstring2)或color((r1,g1,b1),(r2,g2,b2))color(colorstring1,colorstring2)设置画笔颜色和背景颜色当无参数输入时返回当前画笔和背景颜色colorstring是表示颜色的字符串如“blue”表示蓝色color((r1,g1,b1),(r2,g2,b2))设置画笔颜色(r,g,b)是颜色对应的RGB的0~1数值begin_fill()设置填充区域色彩无参数在开始绘制拟填充背景图形前调用end_fill()与begin_fill配对使用无参数在结束绘制拟填充背景图形前调用filling()返回当前图形背景颜色的填充状态如果当前代码在begin_fill()和end_fill()之间将返回True否则返回Falseclear()清空当前海龟对象绘制的图形但不改变其位置和角度reset()清空当前绘图窗口海龟对象绘图位置和角度回归初始状态screensize(width,height,bgcolor)设置当前画布窗口的宽度为width以像素为单位高度为height以像素为单位背景颜色为bgcolor表示颜色的字符串或颜色对应的RGB的0~1数值如果不给出参数则以元组形式返回当前画布窗口的宽度和高度weightheighthideturtle()隐藏画笔的turtle形状showturtle()显示画笔的turtle形状isvisible()如果turtle画笔的形状显示则返回True否则返回Falsewrite(str,fontNone)根据设置的字体font形式font是由字体名称、字体尺寸和字体类型3个元素构成的元组可选将字符串str显示在画布上4、画笔运动函数函数描述forward(distance)控制小海龟画笔向当前行进方向移动distance个像素当distance为负数时表示向相反方向移动backward(distance)控制小海龟画笔向当前行进的反方向移动distance个像素当distance为负数时表示向前进方向移动right(angle)改变画笔行进方向为当前方向右侧angle角度angle为整数值是相对当前行进方向的角度值left(angle)改变画笔行进方向为当前方向左侧angle角度angle为整数值是相对当前行进方向的角度值goto(x,y)移动画笔到画布中的特定位置该位置以坐标xy方式表达如果当前画笔处于落下状态则绘制当前位置到目标位置的线条setx(x)修改画笔的横坐标为x纵坐标不变srty(y)修改画笔的纵坐标为y横坐标不变setheading(angle)设置小海龟当前行进方向为angle该角度是绝对方向角度值如下图所示该angle与当前行进方向无关home()移动画笔到坐标系原点画笔方向改为初始方向circle(radius,e)根据半径radius绘制角度为extent的弧形dot(size,color)绘制一个带有背景色color、直径为size的原点undo()撤销绘图的最后一次动作speed(s)设置画笔的绘制速度参数为0~100表示没有绘制动作1~10逐步增加绘制速度超过10则等同于参数为05、示例import turtle turtle.pensize(3) # 设置画笔宽度为3 # 绘制红色三角形 turtle.penup() # 提笔画笔离开屏幕 turtle.goto(-200,-50) # 移动画笔到目标位置 turtle.pendown() # 画笔接触屏幕 turtle.begin_fill() # 开启填充模式一旦画出闭合图形用当前填充区域颜色进行填充 turtle.color(red) # 设置画笔和填充区域的颜色 turtle.circle(40, steps3) turtle.end_fill() # 结束填充模式 turtle.penup() # 提笔画笔离开屏幕 显示绿色文字 turtle.color(green) turtle.penup() # 提笔画笔离开屏幕 turtle.goto(-100,-50) # 移动画笔到目标位置 turtle.pendown() # 画笔接触屏幕 turtle.write((红色三角形),font(Times,15,bold)) # 写字 turtle.hideturtle() # 隐藏画笔 turtle.done()三、random库1、random库概述1Python提供的random库可用于产生各种分布的伪随机数序列。2random库提供了不同类型的随机数函数其中最基本的函数是random.random()它可以生成一个[0.0,1.0)之间的随机小数所有其它随机函数都是基于这个函数扩展而来。2、random库的常用函数函数描述seed(aNone)为随机数序列确定种子参数为随机数种子整数或浮点数默认值为当前系统时间random()生成一个[0.0,1.0)之间的随机小数randint(a,b)生成一个[a,b]之间的随机整数getrandbits(k)生成k比特长度的随机整数其中k是二进制位数返回的结果是十进制整数该数由k位的二进制随机数转换而得randrange(start,stop,step)生成一个[start,stop)之间以step为步数的随机整数使用方法与range类似step可选任意两个使用同一个随机数种子生成的随机数相减得到的结果必为step的整数倍uniform(a,b)生成一个[a,b]之间的随机小数choice(seq)从序列seq比如列表、元组、字符串中随机返回一个元素shuffle(seq)将序列seq比如列表中的元素排列打乱由于元组不可变因此不能作为该函数的参数sample(pop,k)从pop表示的组合数据类型比如列表、元组、字符串、集合中随机选取k个元素以列表类型返回pop中所含的元素要不少于k个四、time库1、time库概述1time库是Python提供的处理时间标准库它提供系统级精确计时器的计时功能可以用来分析程序性能也可以暂停程序运行时间。2time库的功能主要分为3个方面——时间处理、时间格式化和计时。2、时间处理函数1使用“time.time()”可获取当前时间戳。2使用“time.gmtime(secs)”可获取时间戳secs对应的struct_time对象其元素构成如下表所示如没有参数则默认为当前时间戳。3使用“time.localtime(secs)”可获取时间戳secs对应的本地时间的struct_time对象。4使用“time.ctime(secs)”可获取时间戳secs对应的易读字符串表示内部会调用time.localtime()函数以输出当地时间如没有参数则默认为当前时间戳。下标属性定义及取值范围0tm_year年份整数1tm_mon月份1~122tm_mady日期1~313tm_hour小时0~234tm_min分钟0~595tm_sec秒0~596tm_wday星期0~60表示周一以此类推7tm_yday该年的第几天1~3668tm_isdst是否是夏令时0表示否1表示是-1表示未知3、时间格式化函数1使用“time.mktime(t)”将struct_time对象t转换为时间戳t代表当地时间。2使用“time.strftime(t)”几乎可以以任何通用格式输出时间该方法利用一个格式字符串对时间格式进行表示该方法的格式化控制符如下表所示。格式化字符日期/时间取值范围%Y年份0001~9999%m月份01~12%B月名January~December%b月名缩写Jan~Dec%d日期01~31%A星期Monday~Sunday%a星期缩写Mon~Sun%H小时24h制00~23%I小时12h制01~12%p上午/下午AMPM%M分钟00~59%S秒00~593strptime方法与strftime方法完全相反用于提取字符串中的时间来生成将struct_time对象。4、计时函数1计时主要包括3个函数sleep、monotonic、perf_counter。2示例import time def coreLoop(): # 以1000万次循环为主题模拟实际程序的核心模块 limit 10 ** 7 while limit 0: limit limit - 1 def otherLoop1(): # 用sleep函数来模拟实际程序的其它模块 time.sleep(0.2) # 程序暂停0.2秒 def otherLoop2(): # 用sleep函数来模拟实际程序的其它模块 time.sleep(0.4) # 程序暂停0.4秒 startTime time.localtime() # 程序开始运行的时刻 print(程序开始时刻, time.strftime(%Y-%m-%d %H:%M:%S, startTime)) startPerfCounter time.perf_counter() # 此时需要测试的主体部分开始运行启动计时器从0开始计时 otherLoop1() # 运行模块1 otherLoop1PerfCounter time.perf_counter() # 模块1运行完成采集当前计时器的计时 otherLoop1Perf otherLoop1PerfCounter - startPerfCounter # 结合主体部分开始运行的时间计算得出模块1的运行时间 coreLoop() # 运行核心模块 coreLoopPerfCounter time.perf_counter() # 核心模块运行完成采集当前计时器的计时 coreLoopPerf coreLoopPerfCounter - otherLoop1PerfCounter # 结合模块1运行结束时的时间计算得出核心模块的运行时间 otherLoop2() # 运行模块2 otherLoop2PerfCounter time.perf_counter() # 模块2运行完成采集当前计时器的计时 otherLoop2Perf otherLoop2PerfCounter - coreLoopPerfCounter # 结合核心模块开始运行的时间计算得出模块2的运行时间 endPerfCounter time.perf_counter() # 主体部分运行结束采集当前计时器的计时 totalPerf endPerfCounter - startPerfCounter # 结合主体部分开始运行的时间计算得出主体部分的运行时间 endTime time.localtime() # 程序结束运行的时刻 print(模块1的运行时间是%f秒 % otherLoop1Perf) print(核心模块的运行时间是%f秒 % coreLoopPerf) print(模块2的运行时间是%f秒 % otherLoop2Perf) print(程序运行总时间是%f秒 % totalPerf) print(程序结束时刻, time.strftime(%Y-%m-%d %H:%M:%S, endTime))