重复模式选择

2024-10-08 21:13:55 发布

您现在位置: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()

我的问题是,当我选择某个模式并运行它,然后再次尝试选择同一个模式时,我的程序结束,什么也不会发生。如何在不过度覆盖现有代码的情况下解决此问题

谢谢


Tags: to代码程序inputgetrawifmode
3条回答

您的问题是,当您提示时,所有的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...

你的问题是,你认为get\u 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()

使用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

相关问题 更多 >

    热门问题