如何允许任何顺序的多个用户响应?

时间:2019-03-01 13:03:32

标签: python loops

如何解决以允许用户以任何顺序输入'Version''Credit''Info''Notes''Credit'的问题?

这是我尝试的代码:

if(answer == 'Debug'):
    print('Type the word in the debug screen\nto get an output, '
          'ex. Type "Version"\nto find the file Version.')
print('\033[1;34;40m============')
print('\033[1;39;40mVersion')
print('\033[1;33;40mCredit')
print('\033[1;34;40mInfo')
print('\033[1;32;40mNotes')
answer=raw_input()
if(answer == 'Version'):
    print('\033[1;39;39m1.2.2')
if(answer == 'Credit'):
    print('\033[1;33;40mXendos6 2/22/19')

2 个答案:

答案 0 :(得分:0)

请看一下。也许这可以解决您的问题。

responses = {
    'version': '1.0.1',
    'credit': 'some_credit',
    'info': 'this is info',
    'debug': 'this is debug output'
}

for i in responses.keys():
    user_input = input('Please enter a choice from {}: '.format(options))
    print(responses.get(user_input))

注意:这只是一个模板

答案 1 :(得分:0)

您可以使用包含每个问题和打印答复的字典,例如:

menu = {'Version': '1.2.2', 'Credit': 'Xendos6 2/22/19', 'Info': 'Some information'}

print('\033[1;34;40m============')
for k in menu.keys():
    print('\033[1;39;40m', k)

answer = raw_input()
if answer in menu:
    print('\033[1;39;39m', menu[answer])
else:
    print("Invalid answer:", answer)

这使菜单添加项变得更加容易。如果要执行的代码比简单的文本字符串复杂,则可以将操作放置在一个函数中,每个菜单项一个,并将函数名称用作值。然后将该函数称为menu[answer]()

编辑: 现在看来,OP需要循环。下面是一个示例,该示例将从菜单中删除每个条目:

menu = {'Version': '1.2.2', 'Credit': 'Xendos6 2/22/19', 'Info': 'Some information'}

while menu:
    print('\033[1;34;40m============')
    for k in menu.keys():
        print('\033[1;39;40m', k)

    answer = raw_input()
    if answer in menu:
        print('\033[1;39;39m', menu[answer])
        del(menu[answer])
    else:
        print("Invalid answer:", answer)

当选择一个项目时,此键将删除。当menu中包含数据项时,循环继续进行-当while menu:为空时,menu将为false。