2016-10-20 1 views
0

Я просмотрел учебники, но не особенно понимаю концепцию.Как я могу настроить свой код, чтобы он мог возвращаться с несколькими условиями?

Я пытаюсь получить мою рамочную работу, пока с несколькими условиями/если заявления:

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 условием оно отлично работает.

Заранее спасибо.

ответ

0

У вас есть несколько вариантов, но проблема в том, что check_input не назначен, если не существует регулярного выражения. Вы можете либо инициализировать check_input до 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 
+0

Отлично. Благодаря :) – ThatOnePythonGuy