python算法比赛常用模块
1.math 库:
提供数学相关的函数,如三角函数、指数函数、对数函数等。
常用函数:math.sqrt()、math.pow()、math.sin()、math.cos()、math.tan()、math.exp()、math.log() 等。
math模块提供了各种数学函数和常数的实现。下面列举一些常用的函数和常数:
- 数学常数
math.e:自然常数 e 的值,约等于 2.71828。
math.pi:圆周率 π 的值,约等于 3.14159。
- 常用数学函数
math.sqrt(x):返回 x 的平方根。
math.pow(x, y):返回 x 的 y 次方。
math.exp(x):返回 e 的 x 次方。
math.log(x, base=math.e):返回 x 的对数。base 参数为对数的底数,默认为自然对数 e。
math.sin(x)、math.cos(x)、math.tan(x):返回 x 的正弦、余弦和正切值。
math.asin(x)、math.acos(x)、math.atan(x):返回 x 的反正弦、反余弦和反正切值。
- 数值运算函数
math.ceil(x):返回不小于 x 的最小整数。
math.floor(x):返回不大于 x 的最大整数。
math.trunc(x):返回 x 的整数部分。
math.modf(x):返回 x 的小数部分和整数部分,以元组形式返回。
math.fabs(x):返回 x 的绝对值。
math.factorial(x):返回 x 的阶乘。
math.gcd(a, b):返回 a 和 b 的最大公约数。
- 特殊函数
math.erf(x)、math.erfc(x):返回 x 的误差函数和余误差函数的值。
math.gamma(x)、math.lgamma(x):返回 x 的伽马函数和它的自然对数。
除了以上列出的函数和常数,math模块还提供了很多其他有用的函数。在蓝桥杯Python组考试中,如果需要进行一些数学运算或计算,math模块是一个非常有用的工具。
2.random 库:
提供随机数相关的函数,如生成随机整数、随机浮点数、随机序列等。
常用函数:random.randint()、random.uniform()、random.choice()、random.shuffle() 等。
-
random.random(): 返回随机生成的一个浮点数,范围在[0,1)之间
-
random.uniform(a, b): 返回随机生成的一个浮点数,范围在[a, b)之间
-
random.randint(a,b):生成指定范围内的整数
-
random.randrange([start],stop[,step]):用于从指定范围内按指定基数递增的集合中获取一个随机数。
-
random.choice():从指定的序列中获取一个随机元素
-
random.shuffle(x[,random]):用于将一个列表中的元素打乱,随机排序
-
random.sample(sequence,k):用于从指定序列中随机获取指定长度的片段,sample()函数不会修改原有序列。
-
np.random.rand(d0, d1, …, dn): 返回一个或一组浮点数,范围在[0, 1)之间
-
np.random.normal(loc=a, scale=b, size=()): 返回满足条件为均值=a, 标准差=b的正态分布(高斯分布)的概率密度随机数
10 np.random.randn(d0, d1, … dn): 返回标准正态分布(均值=0,标准差=1)的概率密度随机数
-
np.random.standard_normal(size=()): 返回标准正态分布(均值=0,标准差=1)的概率密度随机数
-
np.random.randint(a, b, size=(), dtype=int): 返回在范围在[a, b)中的随机整数(含有重复值)
-
random.seed(): 设定随机种子
3.datetime 库:
提供日期和时间相关的函数,如获取当前日期、时间差计算、日期格式化等。
常用函数:datetime.datetime.now()、datetime.timedelta()、datetime.datetime.strftime() 等。
开始之前,需要说明一下,datetime 模块是 Python 中的时间处理模块,它有一个和它同名的 datetime 类,如果导入库的时候,用 import datetime,表明只导入了 datetime 模块,后续调用属性和方法时,都需要使用datetime.datetime 申明是调用的是 datetime 类;如果导入时使用 from datetime import datetime 语句,则表明已经从 datetime 模块中导入了 datetime 类, 后续调用属性和方法时,直接 datetime. 就可以使用
1.初识 datetime
# 导入 datetime 库的 datetime 类
from datetime import datetime
# 获取现在时间
datetime.now()
print('当前时间为:',datetime.now())
# 输出
datetime.datetime(2021, 6, 15, 12, 40, 29, 840272)
当前时间为: 2021-06-15 12:41:12.350532
# 创建指定时间
a = datetime(2030,10,16,10,16)
print(a)
# 输出
2030-10-16 10:16:00
2.str 转 datetime
实际工作中会经常遇到时间字段格式是 str 的情况,如果涉及到提取 day、hour 以及计算的问题,就需要将 str 转成 datetime,原因是 str 格式的时间是无法直接完成上述操作的。datetime 提供了 strptime() 方法将 str 转为 datetime
b = '20210506'
c = '2021-06-14 10:15:55'
d = datetime.strptime(b,'%Y%m%d')
e = datetime.strptime(c,'%Y-%m-%d %H:%M:%S')
print(d)
print(e)
type(d)
type(e)
print(d.year)
print(e.month)
# 输出
2021-05-06 00:00:00
2021-06-14 10:15:55
datetime.datetime
2021
6
这样就将 str 格式的时间转为了 datetime,取出年和月,日,小时,分钟这些也都可以提取,看你自己需求。需要注意的是 b 的格式是’20210506’,年月日之间无’-‘,所以转 datetime 时,也不能加’-',格式要匹配,否则会报 ValueError ,如下:

3.datetime 转 str
datetime 模块提供了 strftime() 方法将 datetime 转为 str,可以用 type 函数来看是否转换成功,输出 str,证明已经将 datetime 格式转换为了 str
today = datetime.now()
print(today.strftime('%Y-%m-%d %H:%M:%S'))
print(today.strftime('%Y-%m-%d'))
type(today.strftime('%Y-%m-%d %H:%M:%S'))
# 输出
2021-06-15 14:37:47
2021-06-15
str
4.时间计算
from datetime import datetime,timedelta # 导入时间计算库
today = datetime.now()
time1= datetime(2021,1,1,10,10)
print(today-time1)
print((today-time1).days) # 两个时间相减取天数
print((today-time1).seconds) # 两个时间相减取秒数
print(today-timedelta(days=30)) # 当前时间30天之前的时间
print(today-timedelta(hours=10)) # 当前时间10小时之前的时间
# 输出
165 days, 4:41:13.968424
165
16873
2021-05-16 14:51:13.968424
2021-06-15 04:51:13.968424
datetime 格式的时间之间才能计算,还有,需要注意的是,两个时间相减后,只有取相隔天数 days 和 seconds 的方法,没有 hours 和 months,minutes 方法,会报错,如下:

5.datetime 转 date
# 一句代码
today = datetime.now()
print(datetime.date(today))
type(datetime.date(today))
# 输出
2021-06-15
datetime.date
6.初识时间戳
what 时间戳?
时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数,通俗讲,时间戳是一份能够表示一份数据在一个特定时间点已经存在的完整的可验证的数据。
6.1 datetime 转时间戳
s=datetime.now()
d=s.timestamp()
print(d)
# 输出
1620642412.236521
6.2 时间戳转 datetime
f=datetime.fromtimestamp(d)
print(f)
# 输出
2021-05-10 18:26:52.236521
type(f)
# 格式是 datetime
datetime.datetime
6.3 时间戳转字符串
先将时间戳转成datetime,然后再将 datetime 转成字符串
datetime.strftime(datetime.fromtimestamp(d),'%Y-%m-%d %H:%M:%S')
# 输出
'2021-05-10 18:26:52'
6.4 字符串转时间戳
先将字符串转为 datetime ,然后转为时间戳
l='20231016'
f=datetime.strptime(l,'%Y%m%d')
d=f.timestamp()
print(d)
# 输出
1697385600.0
总结:datetime 相当于字符串和时间戳之间的桥梁,后两者无法之间转换,都需要先转换为 datetime,然后再从 datetime 转换。datetime 相当于 Python 中时间处理的中间核心地带,熟悉 datetime 常用的方法后,基本上可以应付日常工作中90%以上的时间处理需求。
4.os 库:
提供操作系统相关的函数,如文件和目录操作、进程管理等。
常用函数:os.getcwd()、os.listdir()、os.path.join()、os.path.exists()、os.system() 等。

&spm=1001.2101.3001.5002&articleId=137011337&d=1&t=3&u=ccc345d2ce1247069e22cceba4058910)
3405

被折叠的 条评论
为什么被折叠?



