UnboundLocalError: local variable 'a' referenced before assignment

python

Solution

You can't modify a global variable without using the `global` statement:

def fun():
    global a 
    while (c > a/b):
        a = a + 1
        print a/b

As soon as python sees an assignment statement like `a = a + 1` it thinks that the variable `a` is local variable and when the function is called the expression `c > a/b` is going to raise error because `a` is not defined yet.

Problem

if execute the following code will show error message: UnboundLocalError: local variable 'a' referenced before assignment ``` a = 220.0 b = 4300.0 c = 230.0/4300.0 def fun(): while (c > a/b): a = a + 1 print a/b if __name__ == '__main__': fun() ``` but modify to : ``` a = 220.0 b = 4300.0 c = 230.0/4300.0 def fun(): aa = a bb = b while (c > aa/bb): aa = aa + 1 print aa/bb if __name__ == '__main__': fun() ``` it will fine. Any advice or pointers would be awesome. Thanks a lot!

Original source

Related problems