2024-04-26 12:18:52 发布
网友
如果存在**运算符,为什么pow函数存在? 它甚至比功能更快:
from timeit import timeit print(timeit('pow(3000, 3000)', number=10000)) print(timeit('3000**3000', number=10000))
输出:
1.3396891819999155 1.3082993840000654
我发现pow函数在**运算符上有一个用法。首先,**实际上是提升到一个幂,并应用一个可选的模,如a**b % c。但是如果包含%,则其值不能是None2**3 % None是一个错误pow实际上是{}
pow
**
a**b % c
%
None
2**3 % None
所以,如果我想把一个派生值提升到一个幂,我可以使用操作符
>>> def powerizer(db, index, modulus=None): ... x, y = db.get(index) ... return x**y % modulus ... >>> db = {"foo":[9,3]} >>> powerizer(db, "foo", 10) 9
但是它在默认的None模上失败
>>> powerizer(db, "foo") Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<stdin>", line 3, in powerizer TypeError: unsupported operand type(s) for %: 'int' and 'NoneType'
pow对救援的作用
>>> def powerizer(db, index, modulus=None): ... x, y = db.get(index) ... return pow(x, y, modulus) ... >>> powerizer(db, "foo", 10) 9 >>> powerizer(db, "foo") 729
我发现}
pow
函数在**
运算符上有一个用法。首先,**
实际上是提升到一个幂,并应用一个可选的模,如a**b % c
。但是如果包含%
,则其值不能是None
2**3 % None
是一个错误pow
实际上是{所以,如果我想把一个派生值提升到一个幂,我可以使用操作符
但是它在默认的
None
模上失败pow
对救援的作用相关问题 更多 >
编程相关推荐