Python文档指出:
所以我的代码是:
print(pow(-2,2.1))
此代码应引发ValueError,因为-2和2是有限的,-2是负数,并且2.1不是整数-因此pow(-2,2.1)是未定义的。
答案 0 :(得分: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结果。对于 例如,10 2返回100,而10 -2返回0.01。如果第二 参数为负,则必须省略第三个参数。如果z是 当前,x和y必须为整数类型,并且y必须为非负数。
还值得注意的是,内置pow
函数的结果与使用**
的结果相同,即
pow(-2,2.1)
等同于(-2) ** 2.1