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