python中的负战俘

python中的负战俘,第1张

python中的负战俘

(-1.07)1.3将不是实数,因此出现Math域错误。

如果需要复数,则必须将a b重写为e bln a,例如

>>> import cmath>>> cmath.exp(1.3 * cmath.log(-1.07))(-0.6418264288034731-0.8833982926856789j)

如果只想返回NaN,请捕获该异常。

>>> import math>>> def pow_with_nan(x, y):...   try:...     return math.pow(x, y)...   except ValueError:...     return float('nan')...>>> pow_with_nan(1.3, -1.07)   # 1.3 ** -1.070.755232399659047>>> pow_with_nan(-1.07, 1.3)   # (-1.07) ** 1.3nan

顺便说一句,在Python中,通常

a ** b
不是使用内置函数来增强功能
math.pow(a, b)

>>> 1.3 ** -1.070.755232399659047>>> (-1.07) ** 1.3Traceback (most recent call last):  File "<stdin>", line 1, in <module>ValueError: negative number cannot be raised to a fractional power>>> (-1.07+0j) ** 1.3(-0.6418264288034731-0.8833982926856789j)


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5647202.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存