🌴 2022.05.07 下午
前言
🎬本文章是 【Python语言基础】 专栏的文章,主要是上课的随堂笔记与练习
🔗Python专栏 传送门
💻提示:本文的环境配置是Python3的开发环境。目录顺序以当堂内容(教材)为准,所以并非“1、2、3”
📽本节主要内容:Python中模块使python的功能变得十分强大,本节介绍几个常用模块和库
7 模块 包 库
7.1 前言
模块(Module):一个以.py
结尾的Python文件,包含了 Python 对象和语句
包(Package):Python模块文件所在的目录,并且在该目录下必须有一个名为_init_.py
的文件
库(Library):具有相关功能的包和模块集合,如Python标准库、NumPy库等
7.2 常用标准库模块
7.2.1 Turtle
Turtle是Python内嵌的绘制线、圆及其他形状(包括文本)的图形模块
1.画布(Canvas)
画布是Turtle模块展开用于绘图的区域
- 使用
turtle.screensize()
函数设置画布的一般格式为:turtle.screensize(width,height,bg)
,例如,turtle.screensize(600, 400, "black")
设置画布的宽为600、高为400、背景颜色为黑色 - 使用
turtle. setup()
函数设置画布的一般格式为:turtle.setup(width,height,startx,starty)
,例如,turtle.setup(width=800, height=600, startx=100, starty=100)
设置画布宽和高分别为800和600,画布左上角顶点在窗口的坐标位置为(100,100)
2.画笔
(1) 画笔状态。Turtle模块绘图使用位置方向描述画笔的状态
(2) 画笔属性。画笔的属性包括画笔的颜色、宽度和移动速度等
turtle.pensize(width)
:设置画笔宽度width,数字越大,画笔越宽turtle.pencolor(color)
:设置画笔颜色color,可以是字符串如"red"、“yellow”,或RGB格式turtle.speed(speed)
:设置画笔移动速度speed,范围为[0,10]的整数,数字越大,画笔移动的速度越快
(3)绘图命令:操纵Turtle模块绘图有许多命令,通过相应函数完成。绘图命令通常分为三类:画笔运动命令、画笔控制命令和全局控制命令
使用Turtle模块绘制一个圆和一个填充的正方形
import turtle #导入模块
turtle.penup()
turtle.goto(-150,0)
turtle.pendown()
turtle.pencolor('blue') #画笔颜色为蓝色
turtle.begin_fill()
turtle.fillcolor('blue') #填充颜色为蓝色
for i in range(4):
turtle.forward(100) #画笔向当前方向移动距离100
turtle.left(90) #画笔逆时针旋转90°
turtle.end_fill()
#画圆
turtle.penup()
turtle.goto(100,0) #将画笔移动到指定的绝对坐标位置(100,0)
turtle.pendown()
turtle.color('red') #画笔颜色为红色
turtle.pensize(3) #画笔宽度为3.
turtle.circle(50) #圆的半径为50
turtle.done() #使绘图容器不消失
使用Turtle模块在画布上写文字
import turtle
t = turtle.Turtle() #创建turtle对象
t.penup()
t.goto(-80,20)
t.write("望庐山瀑布",font=("微软雅黑",14,"normal")) #设置字体、大小、加粗
t.sety(-10) #画笔向下移动到-10
t.write("日照香炉生紫烟",font=("微软雅黑",14,"normal"))
t.sety(-40) #画笔向下移动到-40
t.write("遥看瀑布挂前川",font=("微软雅黑",14,"normal"))
t.sety(-70) #画笔向下移动
t.write("飞流直下三千尺",font=("微软雅黑",14,"normal"))
t.sety(-100) #画笔向下移动
t.write("疑是银河落九天",font=("微软雅黑",14,"normal"))
t.hideturtle()
turtle.done()
7.2.2 Random
🚀 random.random()函数
random.random()
函数用于生成一个[0, 1)之间的随机浮点数,其一般格式为:random.random()
使用random.random()函数生成5个[0, 1)之间的随机浮点数
import random
for x in range(1,6):
print(random.random())
'''
0.43511825592243447
0.7599585286688377
0.511071683639099
0.9829050908694336
0.07342341214429426
'''
🚀 random.uniform()函数
random.uniform()
函数用于生成一个指定范围内的随机符点数,其一般格式为:random.uniform(a,b)
使用random.uniform()函数生成指定范围的随机浮点数
import random
print(random.uniform(3,6))
print(random.uniform(8,6))
print(random.uniform(-1,1))
'''
[61, 25, 40, 75, 7]
'''
🚀 random.randrange()函数
random.randrange()
函数用于生成指定范围、指定步长的随机整数,其一般格式为:random.randrange([start],stop[,step])
使用
random.randrange()
函数随机生成10个1~100范围的奇数添加到列表中
import random
list1 = []
for x in range(1,11):
list1.append(random.randrange(1,100,2))
print(list1)
'''
[41, 81, 3, 71, 59, 75, 89, 31, 23]
'''
🚀 random.choice()函数
random.choice()
函数的功能是从序列对象中获取一个随机元素,其一般格式为:random.choice(sequence)
使用random.choice()函数从列表中随机获取一个元素
import random
list1 = [1,2,3,4,5,6,7,8]
for x in range(1,4):
r = random.choice(list1)
print("r =",r)
'''
r = 4
r = 8
r = 3
'''
🚀 random.shuffle()函数
random.shuffle()
函数用于将一个序列对象中的元素打乱,其一般格式为:random.shuffle(sequence[,random])
import random
list1 = [1,2,3,4,5,6,7,8]
for x in range(1,4):
random.shuffle(list1)
print(list1)
'''
[7, 5, 1, 3, 8, 2, 6, 4]
[6, 3, 5, 7, 1, 4, 2, 8]
[2, 5, 4, 7, 1, 3, 6, 8]
'''
🚀 random.sample()函数
random.sample()
函数从指定序列对象中随机获取指定长度的片段,其一般格式为:random.sample(sequence,k)
使用random.sample()函数从列表中随机选择若干元素形成一个新列表
import random
list1 = [1,2,3,4,5,6,7,8]
slice1 = random.sample(list1,4)
print("slice1:",slice1)
'''
slice1: [4, 3, 5, 1]
'''
7.2.3 Time & Datetime
🚀 Time模块
Time模块主要用于时间访问和转换,提供了各种与时间相关的函数
import time
print("时间戳格式时间:",time.time()) # 时间戳格式时间: 1537320859.5078118
print("struct_time格式时间:",time.localtime(time.time())) #struct_time格式时间: time.struct_time(tm_year=2018, tm_mon=9, tm_mday=19,
tm_hour=9, tm_min=34, tm_sec=19, tm_wday=2, tm_yday=262, tm_isdst=0)
print("字符串格式时间:",time.ctime()) # 字符串格式时间: Wed Sep 19 09:34:19 2022
print("字符串格式时间:",time.asctime()) # 字符串格式时间: Wed Sep 19 09:34:19 2022
print(time.strftime('%Y-%m-%d %H:%M',time.localtime())) # 2022-09-19 09:34
🚀 Datetime模块
date类为日期类。创建一个date对象的一般格式为:
d = datetime.date(year,month,day)
from datetime import date
d = date.today()
print("当前本地日期:",d)
print("日期: %d 年 %d 月 %d日."%(d.year,d.month,d.day))
print("今天是周 %d."%d.isoweekday())
'''
当前本地日期:2022-05-07
日期: 2022 年 5 月 7日.
今天是周 6.
'''
Time类为时间类。创建一个time对象的一般格式为:
t = time(hour,[minute[,second,[microsecond[,tzinfo]]]])
from datetime import time
print("时间最大值:",time.max)
print("时间最小值:",time.min)
t = time(20,30,50,8888) #创建time对象
print("时间: %d时%d分%d秒%d微秒."%(t.hour,t.minute,t.second,t.microsecond))
'''
时间最大值: 23:59:59.999999
时间最小值: 00:00:00
时间: 20时30分50秒8888微秒
'''
Datetime类为日期时间类。创建一个datetime对象的一般格式为:
dt = datetime(year,month,day,hour,minute,second,microsecond,tzinfo)
from datetime import datetime
dt = datetime.now()
print("当前日期:",dt.date())
print("当前时间:",dt.time())
print("当前年份: %d,当前月份: %d,当前日期: %d."%(dt.year,dt.month,dt.day))
print("时间:",datetime(2018,9,16,12,20,36))
'''
当前日期: 2022-05-07
当前时间: 14:38:59.054000
当前年份: 2022, 当前月份: 5, 当前日期: 07.
时间: 2022-05-07 14:40:36
'''
timedelta对象表示两个不同时间之间的差值。
td = datetime.timedelta(days,seconds,microseconds,milliseconds,hours,weeks)
from datetime import datetime,timedelta
print("1周包含的总秒数:",timedelta(days=7).total_seconds())
d = datetime.now()
print("当前本地系统时间:",d)
print("1天后:",d + timedelta(days=1))
print("1天前:",d + timedelta