快速了解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))

 执行结果: 

谢谢参与
一等奖
谢谢参与
一等奖

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值