print(pow(-2,2.1))
此代码应引发ValueError,因为-2和2是有限的,-2是负数,并且2.1不是整数-因此pow(-2,2.1)是未定义的。
最佳答案
您正在将内置的pow
函数与math.pow
的文档混合使用
内置pow
功能请参见此处:
https://docs.python.org/3/library/functions.html#pow
将x返回到幂y;如果存在z,则将x返回到幂y,
z模(比pow(x,y)%z更有效地计算)。的
二元形式pow(x,y)等效于使用幂运算符:
x ** y。
参数必须具有数字类型。对于混合操作数类型,
适用于二进制算术运算符的强制规则。对于int
操作数,结果与操作数的类型相同(
强制),除非第二个论点是否定的;在那种情况下
参数将转换为float并传递float结果。对于
例如,102返回100,但是10-2返回0.01。如果第二
参数为负,则必须省略第三个参数。如果z是
当前,x和y必须为整数类型,并且y必须为非负数。
还值得注意的是,内置pow
函数的结果与使用**
的结果相同,即pow(-2,2.1)
等效于(-2) ** 2.1
关于python - 为什么不引发ValueError?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54391129/