[Python] 常用模块(3):内建模块 -- math & itertools

Python 常用模块系列:

  • [Python] 常用模块(1):内建模块 – random & datetime
  • [Python] 常用模块(2):内建模块 – re 以及正则表达式
  • [Python] 常用模块(3):内建模块 – math & itertools(本文)
  • [Python] 常用模块(4):NumPy 上
  • [Python] 常用模块(4):NumPy 中
  • [Python] 常用模块(4):NumPy 下
  • [Python] 常用模块(5):pandas 1
  • [Python] 常用模块(5):pandas 2
  • [Python] 常用模块(5):pandas 3
  • [Python] 常用模块(5):pandas 4
  • [Python] 常用模块(5):pandas 5
  • [Python] 常用模块(5):pandas 6
  • [Python] 常用模块(5):pandas 7
  • [Python] 常用模块(5):pandas 8
  • [Python] 常用模块(5):pandas 9

math 模块

math 模块与数学运算有关。

数论与表示函数
  • math.ceil(x):返回大于或者等于 x 的最小整数。
>>> math.ceil(1.1)
2
  • math.floor(x):返回小于或者等于 x 的最大整数。
>>> math.floor(2.9)
2
  • math.isnan(x):如果 x 是 NaN(不是数字),则返回 True,否则返回 False
幂函数和指数对数
  • math.exp(x):返回 e 次 x 幂,其中 e = 2.718281… 是自然对数的基数
  • math.log(x[, base]):使用一个参数,返回 x 的自然对数(底为 e );使用两个参数,返回给定的 base 的对数 x ,计算为 log(x)/log(base) 。
  • math.log2(x):返回 x 以2为底的对数,这通常比 log(x, 2) 更准确。
  • math.log10(x):返回 x 底为10的对数,这通常比 log(x, 10) 更准确。
  • math.sqrt(x):返回 x 的平方根。
三角函数

math.sin(x):返回 x 弧度的正弦值。
math.cos(x):返回 x 弧度的余弦值。
math.tan(x):返回 x 弧度的正切值。

常数
  • math.pi:数学常数 π = 3.141592…,精确到可用精度。
  • math.e:数学常数 e = 2.718281…,精确到可用精度。
  • math.inf:浮点正无穷大。
  • math.nan:浮点“非数字”(NaN)值。

itertools 模块

这个模块里函数都与迭代有关。

无穷迭代器

这些迭代器一旦生成,可以无限迭代下去。注意,迭代器需要用 next() 生成。

  • itertools.count(start[, step]):创建一个迭代器,它从 start 值开始,返回均匀间隔的值。
>>> iter =  itertools.count(10, 2)
>>> next(iter)
10
>>> next(iter)
12
  • itertools.cycle§:创建一个迭代器,返回 iterable 中所有元素并保存一个副本。当取完 iterable 中所有元素,返回副本中的所有元素。无限重复。
>>> itr = itertools.cycle("AB")
>>> next(itr)
'A'
>>> next(itr)
'B'
>>> next(itr)
'A'
  • itertools.repeat(elem[, n]):创建一个迭代器,不断重复 elem 。除非设定参数 n ,否则将无限重复。
根据数列长度停止的迭代器
  • itertools.accumulate(iterable[, func]):创建一个迭代器,返回累加和或其他二元函数的累加结果(通过可选参数 func 指定)。func 参数可以被设为 min() 最终得到一个最小值,或者设为 max() 最终得到一个最大值,或设为 operator.mul() 最终得到一个乘积。
>>> data = [3, 4, 6, 2, 1, 9, 0, 7, 5, 8]
>>> list(accumulate(data, operator.mul))     # 乘积
[3, 12, 72, 144, 144, 1296, 0, 0, 0, 0]
>>> list(accumulate(data, max))              # 取最大数
[3, 4, 6, 6, 6, 9, 9, 9, 9, 9]
  • itertools.chain(*iterables):创建一个迭代器,它首先返回第一个可迭代对象中所有元素,接着返回下一个可迭代对象中所有元素,直到耗尽所有可迭代对象中的元素。可将多个序列处理为单个序列。
>>> itr = itertools.chain("AB", "CD")
>>> next(itr)
'A'
>>> next(itr)
'B'
>>> next(itr)
'C'
>>> next(itr)
'D'
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值