这只是部分代码:
def . . .:
while True:
raw_input_1
if :
break
elif 'n':
raw_input_2 ()
if :
some condition
print
elif some condition:
function
else:
print "Invalid command."
问题:当代码命中"无效命令时。"它返回到True。我想要它做的是返回raw_input_2。有什么建议? 我实际上最终通过插入第二个True语句和一些中断来解决这个问题,如下所示,但我怀疑这是浪费的编码,我正在寻找更直接的东西&优雅。
def . . .:
while True:
raw_input_1
if :
break
elif 'n':
while True:
raw_input2 ()
if :
some condition
break
print
elif some condition:
function
break
else:
print "Invalid command."
答案 0 :(得分:0)
def . . .:
while True:
raw_input_1
if :
break
elif 'n':
while True:
raw_input_2 ()
if :
some condition
print
elif some condition:
function
else:
print "Invalid command."
另外一行“while”将会执行,而不会重构您的代码。但是,关于你想要的逻辑,不建议在你的代码中使用无中断循环的无限循环
答案 1 :(得分:0)
您需要添加额外的while循环
def . . .:
while True:
raw_input_1
if :
break
elif 'n':
condition_ok = False
while not condition_ok:
raw_input_2 ()
if :
some condition
print
condition_ok = True
elif some condition:
function
condition_ok = True
else:
print "Invalid command."
然后,如果命令正常,您可以设置condition_ok
以打破while循环。当然这种方法有太多的嵌套要考虑" pythonic",所以我建议你进一步将其分解为函数。