Python math.pow函数需要float()

时间:2013-12-08 18:09:06

标签: python

我试图在python中计算10 ^ r的值。我从pow(10, r)开始,但我被告知我有一个TypeError并且需要一个浮点数。我尝试使用(10**r)pow(10, float(r)),但没有任何效果。在第一个中,我得到了一个“TypeError - **或pow()不支持的操作数类型:'int'和'builtin_function_or_method'。”在第二个中,我被告知float()需要一个字符串或数字参数。任何提示将不胜感激。谢谢。

3 个答案:

答案 0 :(得分:3)

问题不是你的第一个问题,而是你的第二个问题。看看r被分配到哪个(在紧要关头,在print(repr(r))行之前添加pow。很有可能,您偶然将其分配给您不想要的值 - 您想写

r = input()

,它调用input函数,但你写了

r = input

只为名为input的{​​{1}}创建别名。

答案 1 :(得分:2)

从错误中,似乎错误地将r分配给函数。我猜你用这样的东西调用你的函数:generateNumber(float)。或者参数是您自己的函数之一,但您忘记添加括号:generateNumber(myOwnFunction)而不是正确的generateNumber(myOwnFunction())

答案 2 :(得分:1)

它很容易就像这样:

>>> from math import pow
>>> r = 2.3     # here it is defined as a float
>>> pow(10,r)
199.52623149688787
>>> 10**r
199.52623149688787

您也可以查看类型:

>>> isinstance(r,float)
True

如果你不知道类型,请使用:

>>> type(r)
<type 'float'>