#python #regex #python-2.7 #if-statement #conditional
#python #регулярное выражение #python-2.7 #if-statement #условные операторы
Вопрос:
Я просмотрел учебные пособия, но не особенно понимаю концепцию.
Я пытаюсь заставить мой цикл while работать с несколькими операторами conditions / if:
while True:
user_input = raw_input('n: ').upper()
if user_input == 'NORMAL':
user_input = 'Normal'
if re.match('(ABC|Normal|XY)', user_input):
check_input = cleaned_dict.get(user_input)
if not check_input:
print 'Nope'
if check_input:
print 'Yep...'
etc...
break
Однако я получаю сообщение об ошибке:
UnboundLocalError: local variable 'check_input' referenced before assignment
… Из-за того, что он не выполняет цикл, когда шаблон регулярных выражений не совпадает.
Только с одним условием это работает идеально.
Заранее спасибо.
Ответ №1:
У вас есть несколько вариантов, но проблема в том, что check_input
не назначается, если нет совпадения регулярных выражений. Вы можете либо инициализировать check_input
to False
вне цикла, либо добавить else
предложение. Я покажу последнее
while True:
user_input = raw_input('n: ').upper()
if user_input == 'NORMAL':
user_input = 'Normal'
if re.match('(ABC|Normal|XY)', user_input):
check_input = cleaned_dict.get(user_input)
else:
check_input = False
if not check_input:
print 'Nope'
if check_input:
print 'Yep...'
etc...
break