我正在创建一个程序,可以将一种货币转换为两种货币。我遇到一个错误,提示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)
答案 0 :(得分:0)
当您定义rate_Nok_Eur = getRate('NOK', 'EUR')
时,您的getRate方法返回零,因此amount_nok / rate_Nok_Eur
会给您错误,
您需要指定拥有getRate('NOK', 'EUR')
的情况