我编写的程序以模式选择开始,每次完成一个模式时都应该提示此选择。代码如下:
def get_mode():
mode=raw_input('Welcome to Learning Helpmate BETA. Select mode, insert number of wanted mode: \n 1.mode \n 2.mode \n 3.mode\n')
return mode
mode=get_mode()
if mode =='1':
print 'Welcome to mode 1'
mode=get_mode()
if mode =='2':
print 'Welcome to mode 2'
mode=get_mode()
if mode =='3':
print 'Welcome to mode 3'
mode=get_mode()
我的问题是,当我选择某个模式并运行它然后尝试再次选择相同的模式时,我的程序结束,什么都不会发生。如果不过度覆盖现有代码,我怎么能解决这个问题呢?
谢谢
答案 0 :(得分:1)
使用while
循环:
def get_mode():
mode=raw_input('Welcome to Learning Helpmate BETA. Select mode, insert number of wanted mode: \n 1.mode \n 2.mode \n 3.mode\n')
return mode
while True:
mode=get_mode()
if mode == '1':
print 'Welcome to mode 1'
elif mode == '2':
print 'Welcome to mode 2'
elif mode == '3':
print 'Welcome to mode 3'
else:
break
答案 1 :(得分:1)
您的问题是您认为get_mode()会将您带回代码的顶部,但它不会。您可以定义模式0将退出,然后您的代码将如下所示:
def get_mode():
mode=raw_input('Welcome to Learning Helpmate BETA. Select mode, insert number of wanted mode: \n 1.mode \n 2.mode \n 3.mode\n')
return mode
mode=get_mode()
while mode != '0':
if mode =='1':
print 'Welcome to mode 1'
mode=get_mode()
if mode =='2':
print 'Welcome to mode 2'
mode=get_mode()
if mode =='3':
print 'Welcome to mode 3'
mode=get_mode()
答案 2 :(得分:0)
您的问题是,当您提示时,所有if
都不会再次执行。要解决此问题,请使用while
循环:
while True:
mode = raw_input("Enter Mode:")
if mode == "1":
print "Welcome to mode 1"
do_stuff_1()
elif mode == "2":
print "Welcome to mode 2"
do_stuff_2()
etc..
只要条件为真,while
语句就会执行其代码块。由于此处的条件设置为True
,因此将永久运行,因此您可能需要添加中止选项:
mode = ""
while mode != "q":
mode = raw_input("Enter Mode: (or q to abort)")
if mode == "1":
do_stuff()
etc...