我正在创建一个程序,在其中我正在从一种不同的货币转换为两种不同的货币。我收到一个错误,上面写着ZeroDivisionError: division by zero
,但它也说,local variable 'amount_nok' might be referenced before assignment
.
我已经尝试了多种解决方案,例如创建新变量,或尝试删除任何尚未实际分配的引用变量等。
def getRate(FromValue, ToValue):
if FromValue == 'NOK' and ToValue == 'USD':
rate = 9.0169
else:
rate = 0
return rate
def calculate():
print('Convert an amount from NOK to EUR/USD')
validValue = 'N'
while validValue == 'N':
validValue = 'Y'
try:
amount_nok = int(input("Enter amount you want to convert: "))
except ValueError:
validValue = 'N'
print('Stop this stupidity! Pick a whole number!')
rate_Nok_Eur = getRate('NOK', 'EUR')
print('Amount EUR & USD bought for ' ,'%.2f' % (amount_nok) + ' NOK is '+ '%.2f' % (amount_nok / rate_Nok_Eur) + "N{euro sign}"
'og ', '%.2f' % (amount_nok/9.0169)+"N{dollar sign}")
calculate()
我希望程序在程序的启动阶段运行计算而不会出现任何错误,因此最终输出如下所示
Amount EUR & USD bought for 20 NOK is (dollar amount) and (euro amount)
当你定义rate_Nok_Eur = getRate('NOK', 'EUR')
时,你的getRate方法返回零,所以amount_nok / rate_Nok_Eur
会给你错误,
您需要在有getRate('NOK', 'EUR')
时指定大小写