random库(随机数库)
1.随机种子——seed(a=None)
相同种子会产生相同的随机数
如果不设置随机种子,以系统当前时间为默认值
from random import *
import random# 相同的种子会产生相同的随机数
seed(2)
random_munber1 = random.random()
seed(2)
random_munber2 = random.random()
seed(2)
random_munber3 = random.random()
seed(5)
random_munber4 = random.random()
seed(5)
random_munber5 = random.random()
random_munber6 = random.random()
print(random_munber1,random_munber2,random_munber3,random_munber4,random_munber5,random_munber6)
相同的种子会产生相同的随机数
2.产生随机整数
from random import *
# (1) randint(a, b)——产生[a, b]之间的随机整数
numbers =[randint(1,10) for i in range(10)]
numbers
[9, 1, 8, 4, 1, 3, 2, 6, 8, 4]
# (2)randrange(a)——产生[0,a)之间的随机整数
numbers = [randrange(10) for i in range(10)]
numbers
[6, 8, 1, 9, 3, 0, 3, 6, 4, 2]
# (3) randrange(a, b, step)——产生[a, b)之间以setp为步长的随机整数
numbers =[randrange(0,10,2) for i in range(10)]
numbers
[6, 2, 0, 2, 8, 8, 6, 2, 2, 0]
3.产生随机浮点数
# (1) random()——产生[0.0,1.0)之间的随机浮点数
numbers = [random() for i in range(10)]
numbers
[0.9723372896865363, 0.00531313724410809, 0.7735937030276743, 0.9601271002174996, 0.16585644239491049, 0.16648447729129467, 0.3136513677349536, 0.19888932659643488, 0.8761189332442766, 0.6257301956771277]
# (2) uniform(a, b)——产生[a, b]之间的随机浮点数
numbers =[uniform(2.1,3.5)for i in range(10)]
numbers
[2.3543361359638455, 3.455979484073063, 2.3756306614964458, 3.4511349473240847, 2.6365128876142534, 2.130198291731372, 2.6808693962718433, 3.4101097181736133, 2.4693367145299585, 2.5645962821088935]
4.随机序列函数
(1) choice(seq)
从序列类型中随机返回一个元素
# (1) choice(seq)——从序列类型中随机返回一个元素
s1_choice = choice(['win', 'lose', 'draw'])
s2_choice = choice("python")
print(s1_choice,s2_choice)
draw o
(2) choices(seq,weights=None, k)
对序列类型进行k次放回可重复采样,可设置权重
# (2) choices(seq,weights=None, k)——对序列类型进行k次放回可重复采样,可设置权重
choices(['win', 'lose', 'draw'],k=5)
['win', 'draw', 'lose', 'win', 'draw']
choices(['win', 'lose', 'draw'],(4,4,2),k=10)
['win', 'lose', 'draw', 'draw', 'draw', 'lose', 'lose', 'lose', 'lose', 'win']
权重越重出现的频率越高
(3) sample(pop, k)
从pop类型中随机选取不放回k个元素,所以k不能大于pop类型的元素个数,以列表类型返回
# (3) sample(pop, k)——从pop类型中随机选取不放回k个元素,所以k不能大于pop类型的元素个数,以列表类型返回
a = sample([10,20,30,40,50],k=4)
[20, 50, 10, 30] 随机选取不放回,所以当k>4时,就会报错
math(数学库)
# 圆周率正切函数反正弦反余弦反正切弧度转换度数转换
import math
math.pi
3.141592653589793
#正弦函数
math.sin(math.pi/2)
1.0
# 余弦函数
math.cos(math.pi)
-1.0
# 正切函数
math.tan(math.pi/4)
0.9999999999999999
# 自然常数
math.e
4.605170185988092
# 以10为底的对数
math.log(100,10)
2.0
#向上取整
math.ceil(3.2)
4
#向下取整
math.floor(3.2)
3
# factorial(x):返回×的阶乘,要求×必须为正整数。
math.factorial(5)
120
# gcd(x, y):返回整数x和y的最大公约数。
math.gcd(55,50)
5
time库(时间库)
1.返回现在的时间
import time
#本地时间: time.localtime()
t_local = time.localtime()
#UTC世界统一时间: time.gmtime()
t_UTC = time.gmtime()
print(t_local)
print(t_UTC)
# 返回本地时间的字符串形式
c_time = time.ctime()
print(c_time)
# time.time()返回自纪元以来的秒数,记录sleep
t_time = time.time()
print(t_time)
Wed Nov 1 20:58:05 2023 1698843485.189424
2.格式化输出
# 自定义格式化输出
# %Y-%m-%d 年月日
# %A 星期
# %H:%M:%S 时分秒
# 三个位置无序,可以自定义顺序,也可以不写
lctime = time.localtime()
time.strftime("%Y-%m-%d %A %H:%M:%S ",lctime)
'2023-11-01 Wednesday 20:58:05 '
3.时间休眠
#time.sleep(n)等待的时间n,单位为秒
t1_time = time.time()
time.sleep(5)
t2_time = time.time()
print(t2_time-t1_time)
5.007504463195801
os库(操作系统)
import os
#显示操作系统
print(os.name)
nt posix:表示类Unix系统,例如Linux、Mac OS X等。 nt:表示Windows系统。 java:表示Java虚拟机。
#显示路径分隔符
print(os.sep)
\
# 在Windows系统上,os.pathsep的值为分号;。
# 在Unix/Linux系统上,os.pathsep的值为冒号:。
# 打印出当前工作目录的路径
current_dir = os.getcwd()
print(current_dir)
D:\PyCharm\data\day02
还有以下的一些函数
os.listdir(path):返回指定目录下的所有文件和文件夹的列表。
os.mkdir(path):创建一个目录。
os.makedirs(path):创建多级目录。
os.remove(path):删除一个文件。
os.rmdir(path):删除一个目录。
os.path.join(path1, path2, ...):将多个路径组合成一个路径。
os.path.exists(path):判断路径是否存在。
os.path.isfile(path):判断路径是否为文件。
os.path.isdir(path):判断路径是否为目录。
os.path.basename(path):获取路径中的文件名。
os.path.dirname(path):获取路径中的目录名。