Найти - Пользователи
Полная версия: UnboundLocalError: local variable 'a' referenced before assignment
Начало » Python для новичков » UnboundLocalError: local variable 'a' referenced before assignment
1
ilnur
привет. не могу понять как исправить ошибку

def f2():
global a
a=1

def f1():
for i in (1,2,3,4,5):
a=a+i
print a
f1()
>>> 
Traceback (most recent call last):
File "D:/Ильнур/Мои документы/Desktop/1.py", line 9, in <module>
f1()
File "D:/Ильнур/Мои документы/Desktop/1.py", line 7, in f1
a=a+i
UnboundLocalError: local variable 'a' referenced before assignment
>>>
если я правильно понял, то “а” вызывается до её объявления?

по коду вроде же все правильно???
Soteric
Нет, неправильно потому что на первом шаге цикла переменная ‘a’ не определена и непонятно к чему прибавлять ‘i’. Кроме того, в функции f2() вы ссылаетесь на некую глобальную ‘a’, которая вне функций нигде не объявлена.
FishHook
Soteric
Нет, неправильно потому что на первом шаге цикла переменная ‘a’ не определена и непонятно к чему прибавлять ‘i’. Кроме того, в функции f2() вы ссылаетесь на некую глобальную ‘a’, которая вне функций нигде не объявлена.
def f2():
global a
a=1

def f1():
for i in (1,2,3,4,5):
global a
a=a+i
print a
f2()
f1()
>>>
2
4
7
11
16
Только непонятно, зачем это нужно
ilnur
спасибо всем за помощь.

не хватало global a в цикле.

зачем это нужно. это просто кусок кода, в которой у меня возникла такая ошибка.

вопрос решен. спасибо
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB