为什么我在 python 中收到不支持的操作数类型错误
why am i getting unsupported operand type(s) error in 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)
这是我正在尝试执行的代码。
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'
我查看了其他一些答案,但他们没有帮助回答我的问题。如有任何帮助,我们将不胜感激。
这里:
trd1Amt = convert(amount1, exRt2)
exRt2
是一个函数。如果你想要它的结果,你应该调用它:
trd1Amt = convert(amount1, exRt2())
您将 exRt2 定义为一个函数
当你打电话时
convert(amount1, exRt2)
它将尝试 return amount1 * exRt2
这样做会导致类型不匹配,因为 exRt2 是函数而不是数字,并且 python 不知道如何将数字 (amount1) 乘以函数 (exRt2)
你的意思可能是
convert(amount1, exRt2())
因此调用 convert 函数时将使用由 exRt2 编辑的值 return 作为参数而不是函数本身
改变
trd1Amt = convert(amount1, exRt2)
至
trd1Amt = convert(amount1, rate2 )
这是因为之前你将exRt2()返回的值保存到变量rate2:
rate2 = exRt2()
希望这不会降低我的评分这是一个简单的问题。
我一直在尝试将此工作代码用于一个新程序,实际上我没有改变任何东西,但现在我收到一个错误,这是工作代码。
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'
我查看了其他一些答案,但他们没有帮助回答我的问题。如有任何帮助,我们将不胜感激。
这里:
trd1Amt = convert(amount1, exRt2)
exRt2
是一个函数。如果你想要它的结果,你应该调用它:
trd1Amt = convert(amount1, exRt2())
您将 exRt2 定义为一个函数
当你打电话时
convert(amount1, exRt2)
它将尝试 return amount1 * exRt2
这样做会导致类型不匹配,因为 exRt2 是函数而不是数字,并且 python 不知道如何将数字 (amount1) 乘以函数 (exRt2)
你的意思可能是
convert(amount1, exRt2())
因此调用 convert 函数时将使用由 exRt2 编辑的值 return 作为参数而不是函数本身
改变
trd1Amt = convert(amount1, exRt2)
至
trd1Amt = convert(amount1, rate2 )
这是因为之前你将exRt2()返回的值保存到变量rate2:
rate2 = exRt2()