[英]Going back to beginning of the code
我想制作以選擇模式開始的程序。 然后它應該保持在該模式下,直到我給出命令返回到模式選擇為止。 像那樣:
input=raw_input('Select mode, insert number of wanted mode: \n 1. first mode \n 2. second mode \n 3. Third mode\n')
if input=='1':
while True:
#code
if input=='2':
while True:
#code
if input=='3':
while True:
#code
使其通過某些命令返回模式選擇的最佳和最短的方法是什么?
謝謝
while True
循環中使用break
退出(內部):
while True:
input=raw_input('Select mode, insert number of wanted mode: \n 1. first mode \n 2. second mode \n 3. Third mode\n')
if input=='1'
while True:
#code
if something_happens:
break
elif input=='2':
while True:
#code
elif input=='3':
while True:
#code
有關break
更多信息,請參見此處的官方文檔。
如何將模式選擇置於其自己的函數中,然后您可以隨時調用該函數?
def get_mode():
input=raw_input('Select mode, insert number of wanted mode: \n 1. first mode \n 2. second mode \n 3. Third mode\n')
return input
如注釋中所述,您應該避免使用內置變量名(如input
。
一種更正確的方法是通過字典來選擇函數,並通過異常來處理意外的輸入。 全部嵌套在main中的while循環中。
我寫了一個簡短的示例,基於此: python-在字典切換語句中模擬“ else”
import sys
def mode1( arg = None ):
return 'Mode1 completed'
def mode2( arg = None ):
return 'Mode2 completed'
def mode3( arg = None ):
return 'Mode3 completed'
def modeQuit ( arg = None ):
sys.exit(0)
def main():
menuText = "Select mode, insert number of wanted mode: \n 1. first mode \n 2. second mode \n 3. Third mode\n"
# Function dictionary
mode_function = {
'1' : mode1,
'2' : mode2,
'3' : mode3,
'q' : modeQuit
}
data=None
print mode_function
while True:
mode_selection = raw_input(menuText).strip()
try:
print mode_function[mode_selection](data)
except KeyError:
print 'Not a valid mode'
return 0
if __name__ == '__main__':
main();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.