Найти - Пользователи
Полная версия: Использование локальной переменной функции.
Начало » Python для новичков » Использование локальной переменной функции.
1
Divergent
Хелп ми…

Не могу понять в чём косяк объявленной мною функции.

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 в другом цикле.
Ferroman
Там же ясно написано “local variable ‘s’ referenced before assignment”. Если условие не выполняется, то переменная не создаётся, а вы её вернуть хотите, как результат.
sp3
у вас переменная s не создается если не выполняется тело функции “if re.search(r”\d{6}\n“,l):”

upd Ferroman опередил :)
igor.kaist
Условие if не выполнилось, откуда ж взяться переменной s?!
Divergent
Так я же специально и подобрал в примере так, что условие выполняется.

l=112233\n

если я уберу return s, то сразу всё выполняется, присваевается, печается

а вот почему не присваивается s не понятно.

Возможно я что-то не правильно делаю по отступам return s?
По примерам посмотрел. Отступ на уровне if
Divergent
Поставил в теле и всё получилось, хотя чуть ранее не получалось…Видимо где-то с опечатками.
UsCr
Делайте return l и не будет бед у вас.
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