我如何调整我的代码以允许它在多个条件下循环?

How can I adjust my code to allow it to loop back with multiple conditions?

我看过教程,但不是特别了解这个概念。

我正在尝试让我的 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 初始化为 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