Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 24, 2012 05:58:01

ilnur
От: Казань
Зарегистрирован: 2009-01-06
Сообщения: 524
Репутация: +  22  -
Профиль   Отправить e-mail  

UnboundLocalError: local variable 'a' referenced before assignment

привет. не могу понять как исправить ошибку

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
>>>
если я правильно понял, то “а” вызывается до её объявления?

по коду вроде же все правильно???

Офлайн

#2 Янв. 24, 2012 06:06:38

Soteric
От:
Зарегистрирован: 2010-09-19
Сообщения: 352
Репутация: +  20  -
Профиль   Отправить e-mail  

UnboundLocalError: local variable 'a' referenced before assignment

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



Офлайн

#3 Янв. 24, 2012 06:21:48

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

UnboundLocalError: local variable 'a' referenced before assignment

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
Только непонятно, зачем это нужно



Офлайн

#4 Янв. 24, 2012 06:30:04

ilnur
От: Казань
Зарегистрирован: 2009-01-06
Сообщения: 524
Репутация: +  22  -
Профиль   Отправить e-mail  

UnboundLocalError: local variable 'a' referenced before assignment

спасибо всем за помощь.

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

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

вопрос решен. спасибо

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version