Skip to main content
 首页 » 编程设计

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

2025年05月04日11jillzhang

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

我一直在尝试将此工作代码用于一个新程序,实际上我没有改变任何东西,但现在我收到一个错误,这是工作代码。

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) 

这是我正在尝试执行的代码。

import random 
 
#define variables 
 
amt1 = (1000) 
amt2 = () 
prevAmt1 = () 
prevAmt2 = () 
 
#create random exchange rates 
def exRt1(): 
    return round(random.random() * (1.399 - 1.001) + 1.001, 3)  
 
def exRt2(): 
    return round(random.random() * (0.999 - 0.699) + 0.699, 3) 
 
#assign exchange rates to variables 
 
rate1 = exRt1() 
rate2 = exRt2() 
 
#create a conversion function 
 
def convert(amount, exchange_rate): 
    return amount * exchange_rate 
 
trd1Amt = convert(amount1, exRt2) 
 
print(trd1Amt) 

但现在我收到了错误。 类型错误:* 不支持的操作数类型:'int' 和 'function'

我已经查看了其他一些答案,但他们没有帮助回答我的问题,我们将不胜感激。

请您参考如下方法:

您将 exRt2 定义为一个函数

当你打电话时

convert(amount1, exRt2) 

它将尝试返回 amount1 * exRt2

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

你可能是说

convert(amount1, exRt2()) 

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