我正在计算两个比率:ratio1和ratio2。它们是使用字典的键来计算的。如果他们找不到密钥,则只需将其打印出来而不会出现错误。
try:
#RATIO FOR THE LEFT LEG
ratio1 = distance(dict[x],dict[y])
print(ratio1)
except KeyError:
print('Left Ratio Not Available')
try:
#RATIO FOR THE RIGHT LEG
ratio2 = distance(dict[p],dict[q])
print(ratio2)
except KeyError:
print('Right Ratio Not Available')
直到这里我的代码都能正常工作。但是,当我继续从两个比率中找出最大值时,
try:
print('max ratio is : ', max(ratio1,ratio2))
except KeyError:
try:
print(ratio1)
except KeyError:
try:
print(ratio2)
finally:
print('No Ratio Available.')
我收到“ UnboundLocalError”。
UnboundLocalError: local variable 'ratio1' referenced before assignment
我什至使用了'global'。但是无论哪种方式,我都会遇到相同的错误。 请告诉我如何正确处理。
答案 0 :(得分:2)
我认为您的代码可以正常工作。问题在于,您在第一个try-except语句中捕获了一个keyerror,然后继续进行下两个try语句。如果第一个捕获到KeyError,然后尝试读取名为ratio1的变量,则会出现这种错误,因为您没有初始化该变量。
您的代码应如下所示:
password