无法解决python3.7中的'UnboundLocalError'

时间:2019-06-07 07:57:44

标签: python-3.x

我正在计算两个比率: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'。但是无论哪种方式,我都会遇到相同的错误。 请告诉我如何正确处理。

1 个答案:

答案 0 :(得分:2)

我认为您的代码可以正常工作。问题在于,您在第一个try-except语句中捕获了一个keyerror,然后继续进行下两个try语句。如果第一个捕获到KeyError,然后尝试读取名为ratio1的变量,则会出现这种错误,因为您没有初始化该变量。

您的代码应如下所示:

password