python常用库(一)

python常用库

1、math库

import math
1.1、常量
math.pi: π的值,大约为3.14159。
math.e: 自然对数的底数e,大约为2.71828。
math.tau: τ的值,等于2π,大约为6.28318。
math.inf: 表示正无穷大。
math.nan: 表示非数字(Not a Number)。
1.2、数值运算函数
math.ceil(x): 返回大于或等于x的最小整数。
math.floor(x): 返回小于或等于x的最大整数。
math.fabs(x): 返回x的绝对值,作为浮点数。
math.factorial(x): 返回x的阶乘,x必须是整数。
math.fmod(x, y): 返回x除以y的余数,对于浮点数运算更精确。
math.exp(x): 返回e的x次幂。
math.log(x[, base]): 返回x的对数,默认以e为底,可以设置base参数来改变对数的底。
math.pow(x, y): 返回x的y次幂。
math.sqrt(x): 返回x的平方根。
1.3、三角函数
math.sin(x): 返回x(弧度)的正弦值。
math.cos(x): 返回x(弧度)的余弦值。
math.tan(x): 返回x(弧度)的正切值。
math.asin(x): 返回x的反正弦值,结果在-π/2到π/2之间。
math.acos(x): 返回x的反余弦值,结果在0到π之间。
math.atan(x): 返回x的反正切值,结果在-π/2到π/2之间。
math.atan2(y, x): 返回给定的X和Y坐标值的反正切值。
1.4、双曲函数
math.sinh(x): 返回x的双曲正弦值。
math.cosh(x): 返回x的双曲余弦值。
math.tanh(x): 返回x的双曲正切值。
math.asinh(x): 返回x的反双曲正弦值。
math.acosh(x): 返回x的反双曲余弦值。
math.atanh(x): 返回x的反双曲正切值。
1.5、其他函数
math.isfinite(x): 如果x既不是无穷大也不是NaN,则返回True。
math.isinf(x): 如果x是正或负无穷大,则返回True。
math.isnan(x): 如果x是NaN,则返回True。
math.copysign(x, y): 返回一个数,其绝对值等于x的绝对值,符号等于y的符号。
math.gcd(x, y): 返回x和y的最大公约数。
math.lcm(x, y): 返回x和y的最小公倍数。
math.comb(n, k): 用于计算从 n 个不同元素中选取 k 个元素的组合数,即计算组合即计算组合C(n,k)。这个函数返回的是一个整数,表示组合的总数。

2、datetime库

from datetime import datetime, timezone, timedelta
2.1、datetime.date

代表一个理想化的日历日期,提供年、月、日属性。

# 常用构造函数和属性
# date.year, date.month, date.day: 分别返回日期的年、月、日。
datetime.date(year, month, day): 返回一个日期对象。

# 常用方法
date.today(): 返回当前本地日期。

date.isoformat(): 返回格式为'YYYY-MM-DD'的字符串。
2.2、datetime.time

代表一天中的时间,独立于任何特定的日子,拥有小时、分钟、秒、微秒等属性。

# 常用构造函数和属性
# time.hour, time.minute, time.second, time.microsecond: 分别返回时间的小时、分钟、秒、微秒。
datetime.time(hour=0, minute=0, second=0, microsecond=0): 返回一个时间对象。
2.3、datetime.datetime

提供日期和时间的组合。

# 常用构造函数和方法
datetime.datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0): 返回一个日期时间对象。

datetime.now(): 返回当前的日期和时间。

datetime.strftime(format): 根据指定的格式化字符串来格式化日期时间对象,format参数使用特定的格式化代码,如%Y表示四位数的年份,%m表示月份等。

datetime.strptime(date_string, format): 将格式化字符串转换为日期时间对象。

# 例子:
dt = datetime.now()
formatted = dt.strftime("%Y-%m-%d %H:%M:%S")
2.4、datetime.timedelta

表示两个日期或时间之间的差异(即持续时间)。

datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0): 返回一个时间差对象。
# 判断是否闰年
import datetime
year = int(input())

time_delta = datetime.timedelta(days=1)     # 存储一天的时间

dt = datetime.datetime(year, 3, 1)      # 输入年份,3月1日

res = dt - time_delta  # 让dt存储的日期往前一天

if res.day == 29:       # 闰年二月份29天
    print("yes")
else:
    print("no")
2.5 datetime.timezone

用于处理时区相关的信息。

# 示例
# 创建一个表示UTC时区的timezone对象,并使用它创建一个日期时间对象:

from datetime import datetime, timezone, timedelta

utc_zone = timezone(timedelta(hours=0))
dt = datetime(2024, 1, 1, 12, tzinfo=utc_zone)
print(dt)  # 输出类似于: 2024-01-01 12:00:00+00:00

3、itertools库

from itertools import * 
3.1、无限迭代器
count(start=0, step=1): 从 start 开始,无限产生等差数列,步长为 step。

cycle(iterable): 对 iterable 中的元素反复执行循环。

repeat(object[, times]): 重复返回 object,如果给定 times,则重复指定次数;否则无限重复。
# 使用 cycle 无限循环迭代器
import itertools

count = 0
for item in itertools.cycle('AB'):
    if count > 5:
        break
    print(item, end=' ')  # 输出: A B A B A B
    count += 1
3.2、对迭代器的迭代器【终止迭代器】
accumulate(iterable[, func, *, initial=None]): 从左到右计算累积值,func 参数定义了两个元素之间的运算规则,如果不提供,则默认为求和。

chain(*iterables): 顺序地从第一个迭代器到最后一个迭代器生成元素。

groupby(iterable, key=None): 把相邻的重复元素挑出来放在一起,key 函数用于计算分组键。

islice(iterable, start, stop[, step]): 生成 iterable 的切片,类似于列表的切片但用于迭代器,从 start 开始到 stop 结束,步长为 step。
3.3、组合生成器
product(*iterables, repeat=1): 计算笛卡尔积,相当于嵌套的 for 循环。

permutations(iterable, r=None): 产生 iterable 中元素的所有可能的 r 长度排列。

combinations(iterable, r): 产生 iterable 中元素的所有可能的 r 长度组合,忽略元素的顺序。

combinations_with_replacement(iterable, r): 产生 iterable 中元素的所有可能的 r 长度组合,包含重复元素的组合。
# 使用 combinations 生成组合
from itertools import combinations

for c in combinations([1, 2, 3], 2):
    print(c)
# 输出:
# (1, 2)
# (1, 3)
# (2, 3)

# 使用 permutations 生成组合
from itertools import permutations

for p in permutations([1, 2, 3], 2):
    print(p)
# 输出:
# (1, 2)
# (1, 3)
# (2, 1)
# (2, 3)
# (3, 1)
# (3, 2)
  • 18
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值