我如何调整我的代码以允许它在多个条件下循环?
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
我看过教程,但不是特别了解这个概念。
我正在尝试让我的 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