快速了解python中的库

快速了解python中的库

一、标准库

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))

执行结果:

谢谢参与

一等奖

谢谢参与

一等奖

相关推荐

[交流]口袋版练兽点问题!用过的来说下!
beat365中国在线体育官网

[交流]口袋版练兽点问题!用过的来说下!

📅 08-29 👁️ 1749
电信和联通4G信号比较(信号覆盖和网速对比,)
365彩票下载1.0.0老版本

电信和联通4G信号比较(信号覆盖和网速对比,)

📅 10-21 👁️ 271
卧底第二季剧情介绍
beat365中国在线体育官网

卧底第二季剧情介绍

📅 07-10 👁️ 3443