为什么在python中出现不支持的操作数类型错误

2024-06-28 20:03:27 发布

您现在位置:Python中文网/ 问答频道 /正文

希望这不会降低我的评分这是一个简单的问题。在

我一直试图利用这个工作代码到一个新的程序,并没有真正改变一件事,现在我得到一个错误,这是工作代码。在

import random

def nzdExRateRand():
    return round(random.random() * (1.505 - 1.101) + 1.101, 3)

def usdExRateRand():
    return round(random.random() * (0.909 - 0.750) + 0.750, 3)

def convert(amount, exchange_rate):
    return amount * exchange_rate

exRate1 = nzdExRateRand()
exRate2 = usdExRateRand()
amount1 = 1000
amount2 = 1200

print (exRate1)
print (exRate2)
result = convert(amount1, exRate1)
print('Result:', result)
result = convert(amount2, exRate2)
print('Result:', result)

这就是我要做的代码。在

^{pr2}$

但现在我发现了错误。 TypeError:不支持*:“int”和“function”的操作数类型

我已经看了一些其他的答案,他们没有帮助回答我的问题,任何帮助将是明智的。在


Tags: 代码convertreturnexchangedef错误randomresult
3条回答

将exRt2定义为函数

当你打电话的时候

convert(amount1, exRt2)

它将尝试返回amount1*exRt2

这样做会导致类型不匹配,因为exRt2是一个函数而不是一个数字,python不知道如何将一个数字(amount1)乘以一个函数(exRt2)

你可能是说

^{pr2}$

因此,调用convert函数时将使用exRt2返回的值作为参数,而不是函数本身

这里:

trd1Amt = convert(amount1, exRt2)

exRt2是一个函数。如果你想要它的结果,你应该调用它:

^{pr2}$

改变

trd1Amt = convert(amount1, exRt2)

^{pr2}$

这是因为前面您将exRt2()返回的值保存到变量rate2:

rate2 = exRt2()

相关问题 更多 >