重复模式选择

时间:2013-12-14 10:24:05

标签: python

我编写的程序以模式选择开始,每次完成一个模式时都应该提示此选择。代码如下:

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()

我的问题是,当我选择某个模式并运行它然后尝试再次选择相同的模式时,我的程序结束,什么都不会发生。如果不过度覆盖现有代码,我怎么能解决这个问题呢?

谢谢

3 个答案:

答案 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...