一、标准库
1.标准库的介绍
标准库是Python自带的库,无须下载,可直接使用。
我们可以通过以下代码获取标准库的目录地址:
import sys
print(sys.exec_prefix)
此代码中的sys.exec_prefix可用于获取当前python的安装目录地址(即根目录)。
执行结果:
C:\Users\XY\AppData\Local\Programs\Python\Python39
不同的操作系统中python的安装位置都是不同的,上述执行出的代码是我的计算机上python的安装目录位置。
注意:标准库在lib文件夹内,其中site_packages目录是第三方库目录,其他都是标准库。
python自带的标准库涉及很多领域,例如:时间模块、随机库模块、正则表达式模块、图形界面模块、网络通信模块、网咯爬虫模块、绘图模块、邮件收发模块、网页设计模块等等。
2.标准库的导入方法
在代码中要使用python自带的标准库,可以使用保留字from和import导入相应的标准库。因为python自带的标准库是python官方提前写好的代码文件或文件夹,所以导入库的原理与在文件中导入类的原理一致。
以导入标准库time为例,导入方法如下:
import time # 导入整个time库
from time import sleep #导入time库中的sleep函数
from time import * #导入time库中的全部函数
import time as t #导入整个time库并定义成t
注意:python内部设置了三个优先搜索路径,按照优先级搜索导入的是函数、标准库、还是第三方库。以time库为例:
步骤1:优先在代码所在文件夹中搜索是否存在time.pt的代码文件。如果不存在则执行下一个搜索步骤。
步骤2:搜索python的lib目录中是否存在time.py的代码文件。如果不存在则执行下一个搜索步骤。
步骤3:搜索pyhon中lib目录中的site_packages目录(即第三方库)中是否存在time.py的代码文件。
使用先搜索到的代码文件中相应的函数或类方法。如果都搜索不到即会报错,表明没有找到time的模块。所以我们在创建代码文件时,要保证不与标准库的文件名或第三库名相同,以防止无法运用相应的库。
二、时间库
python标准库中的time库主要用于获取当前时间和设置时间的格式。在使用前需要用import将time库导入到代码程序中。
1.获取时间戳
时间戳表示当前时间与1970年1月1日0时0分0秒的时间差。
示例:
import time
a = time.time()
print(a)
执行结果即为当前时间与1970年1月1日0时0分0秒的时间差。(单位为秒)
time()方法也可以检测程序代码在何时执行,测量程序的运行速度。
示例:
import time
start = time.time()
i = 1
while i<100000000:
i += 1
end = time.time()
print('代码启动时间',start,'\n停止时间',end,'\n执行时间',end-start)
由上述代码即可获得当前时间、停止时间和代码执行时间。
执行结果:
代码启动时间 1752064405.191803
停止时间 1752064410.1644287
执行时间 4.972625732421875
如果在while循环中加入print()输出语句,执行时间就会大大增加,因为print()输出语句在输出信息时需要CPU进行I/O操作,需要消耗的时间就会增多。
示例:
import time
start = time.time()
i = 1
while i<100000000:
i += 1
print(i)
end = time.time()
print('代码启动时间',start,'\n停止时间',end,'\n执行时间',end-start)
但如果将print()语句换成写入文本语句就可以节省很多时间。
示例:
import time
with open('o.txt','w') as f:
start = time.time()
i = 1
while i<100000000:
i += 1
f.write(str(i))
end = time.time()
print('代码启动时间',start,'\n停止时间',end,'\n执行时间',end-start)
2.获取时间
localtime()函数
用于获取本地当前时间。使用形式如下:
localtime(seconds=None)
参数seconds:值可以为None或时间戳。如果为None表示获取本地当前时间,如果为时间戳表示将时间戳seconds转换为相应的时间。
返回值:struct_time数据对象
示例:
import time
a = time.localtime()
print(a)
print(list(a))
b = time.localtime(1752058515.995205)
print(b)
print(list(b))
执行结果:
time.struct_time(tm_year=2025, tm_mon=7, tm_mday=9, tm_hour=20, tm_min=36, tm_sec=40, tm_wday=2, tm_yday=190, tm_isdst=0)
[2025, 7, 9, 20, 36, 40, 2, 190, 0]
time.struct_time(tm_year=2025, tm_mon=7, tm_mday=9, tm_hour=18, tm_min=55, tm_sec=15, tm_wday=2, tm_yday=190, tm_isdst=0)
[2025, 7, 9, 18, 55, 15, 2, 190, 0]
gmtime()函数
用于获取UTC(世界协调时)时间。使用形式:
def gmtime(seconds=None)
参数seconds:值可以为None或时间戳。如果为None表示获取当前UTC时区时间,如果为时间戳表示将时间戳转换为相应的UTC时区时间。
返回值:struct_time数据对象
示例:
import time
a = time.gmtime()
print(a)
b = time.gmtime(1752058515.995205)
print(b)
执行结果:
time.struct_time(tm_year=2025, tm_mon=7, tm_mday=9, tm_hour=12, tm_min=37, tm_sec=28, tm_wday=2, tm_yday=190, tm_isdst=0)
time.struct_time(tm_year=2025, tm_mon=7, tm_mday=9, tm_hour=10, tm_min=55, tm_sec=15, tm_wday=2, tm_yday=190, tm_isdst=0)
ctime()函数
用于获取字符串形式的时间。使用形式如下:
ctime(seconds=None)
参数seconds:值可以为None或时间戳。如果为None表示获取当前字符串形式的当前时间,如果为时间戳表示将时间戳转换为字符串形式的时间。
返回值:字符串,形式为星期 月份 日期 小时:分钟:秒 年份,值均用英文和数字表示。
示例:
import time
a = time.ctime()
print(a)
b = time.ctime(1752058515.995205)
print(b)
执行结果:
Wed Jul 9 20:38:08 2025
Wed Jul 9 18:55:15 2025
3.时间格式转换
时间格式转换涉及time库中的mktime()、strftime()及strptime()函数,可以实现将不同格式的时间表示进行转换。
mktime()函数
用于将struct_time对象变量转化为时间戳。使用形式如下:
mktime(p_tuple)
参数p_tuple:struct_time对象,参数必须给出,否则就是报错。
示例:
import time
print(time.mktime(time.localtime()))
执行结果:
1752064786.0
strftime()函数
用于将struct_time对象变量转化为格式化的字符串,使用形式如下:
strftime(format,p_tuple=None)
参数format:根据format格式定义输出时间。
示例:
import time
a = time.localtime()
b = time.strftime('%Y-%m-%d-%H:%M:%S',a)
print(a,'\n',b)
执行结果:
time.struct_time(tm_year=2025, tm_mon=7, tm_mday=9, tm_hour=20, tm_min=40, tm_sec=9, tm_wday=2, tm_yday=190, tm_isdst=0)
2025-07-09-20:40:09
strptime()函数
用于把一个格式化时间字符串转化为struct_time数据对象,使用形式:
strptime(string,format)
参数string:为字符串,与strftime()函数输出的字符串相同。
参数format:生成string时所需的格式,与strftime()函数中的format参数相同。
示例:
import time
a = time.strptime('2025-07-09','%Y-%m-%d')
print(a)
执行结果:
time.struct_time(tm_year=2025, tm_mon=7, tm_mday=9, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=2, tm_yday=190, tm_isdst=-1)
4.时间休眠
要让代码程序停止一段时间,可以使用sleep(参数)来实现,参数为程序休眠的时长,其值可以是小数或整数,单位为秒。
示例:
import time
time.sleep(5)
print('程序停止5s')
三、随机库
随机库可用于产生随机数据,使用标准库random实现代码生成随机数据。
1.随机生成数值
在random库中可以随机生成数值的方法有uniform()、random()、randint()、randrange()等。
uniform()方法
uniform(参数1,参数2)方法用于生成参数1到参数2之间的随机小数,其中参数的类型都为数值类型
示例:
import random
a = random.uniform(1,5)
print(a)
执行结果:
1.1917561139648782
random()方法
random()方法用于生成0~1(不包含1)的随机小数,不用输入参数。
示例:
import random
a = random.random()
print(a)
执行结果:
0.8671088199384331
randint()方法
randint(参数1,参数2)方法用于生成参数1到参数2之间的整数。
示例:
import random
a = random.randint(1,5)
print(a)
执行结果:
5
randrange()方法
randrange(参数1,参数2,参数3)方法用于生成在参数1到参数2之间且布长为参数3的随机整数。
示例:
import random
a = random.randrange(0,10,2)
print(a)
执行结果:
0
2.随机选择
random库中的choice()、shuffle()、sample()函数可以实现从一些数据中随机选择一个或多个元素
choice()函数
choice(参数)用于从参数中随机选择一个元素,参数通常为序列类型数据如列表、字符串。
示例:
import random
ls = ['大奖','一等奖','二等奖','三等奖','谢谢参与']
a = random.choice(ls)
print(a)
执行结果:
大奖
shuffle()函数
shuffle(参数)用于将参数中的元素随机打乱,参数为序列类型数据。
示例:
import random
ls = ['大奖','一等奖','二等奖','三等奖','谢谢参与']
random.shuffle(ls)
print(ls)
执行结果:
['一等奖', '大奖', '二等奖', '谢谢参与', '三等奖']
sample()函数
sample(参数1,参数2)用于从参数1中随机抽取参数2个元素,参数1为序列类型数据,参数2为整数。示例:
import random
ls = ['大奖','一等奖','二等奖','三等奖','谢谢参与']
a = random.sample(ls,2)
print(a)
执行结果:
['谢谢参与', '二等奖']
3.随机种子
在一些特定的情况下不希望用户每次运行的结果都不同,就需要用到随机种子seed()函数。
使用形式:
seed(种子)
功能:在随机数中设置一个种子,下一次随机获取的值必须由该随机种子发出。
参数种子:可以是任何数据类型的,例如整数类型或字符串类型。
示例:
import random
ls = ['大奖','一等奖','二等奖','三等奖','谢谢参与']
random.seed('www')
print(random.choice(ls))
random.seed('eee')
print(random.choice(ls))
random.seed('www')
print(random.choice(ls))
random.seed('eee')
print(random.choice(ls))
执行结果:
谢谢参与
一等奖
谢谢参与
一等奖