Форум сайта python.su
Хелп ми…
Не могу понять в чём косяк объявленной мною функции.
def NOMER(l):
if re.search(r“\d{6}\n”,l):
print l
s=l
return s
Дальше в окне даю
>>> l=f1.readline()
>>> print l
112233
>>> NOMER(l)
Traceback (most recent call last):
File “<pyshell#94>”, line 1, in <module>
NOMER(l)
File “<pyshell#75>”, line 5, in NOMER
return s
UnboundLocalError: local variable ‘s’ referenced before assignment
Нужно чтобы далее я мог использовать переменную s в другом цикле.
Офлайн
Там же ясно написано “local variable ‘s’ referenced before assignment”. Если условие не выполняется, то переменная не создаётся, а вы её вернуть хотите, как результат.
Офлайн
у вас переменная s не создается если не выполняется тело функции “if re.search(r”\d{6}\n“,l):”
upd Ferroman опередил :)
Отредактировано (Март 16, 2010 14:32:44)
Офлайн
Условие if не выполнилось, откуда ж взяться переменной s?!
Офлайн
Так я же специально и подобрал в примере так, что условие выполняется.
l=112233\n
если я уберу return s, то сразу всё выполняется, присваевается, печается
а вот почему не присваивается s не понятно.
Возможно я что-то не правильно делаю по отступам return s?
По примерам посмотрел. Отступ на уровне if
Отредактировано (Март 16, 2010 14:39:45)
Офлайн
Поставил в теле и всё получилось, хотя чуть ранее не получалось…Видимо где-то с опечатками.
Офлайн
Делайте return l и не будет бед у вас.
Офлайн