如果用户输入任何内容,循环列表将继续

2024-09-28 21:55:01 发布

您现在位置:Python中文网/ 问答频道 /正文

当我为我的判决输入文本时,我可以输入任何内容,例如“zzzzz”,程序将继续浏览列表

当用户输入“有罪”时,我希望程序停止。只有在用户输入“无罪”时才继续

这就是我到目前为止所做的,我也尝试过使用while True如果这样更好

guilty = False
character = ["Miss Scarlett", "Professor Plum", "Mrs Peacock", "Reverend Green", "Colonel Mustard", "Dr Orchid"]

while not guilty:
    for accused in character:
        verdict = input("Do you find %s guilty or not guilty? " % accused)
        if verdict == "guilty":
            print("User finds %s guilty" % accused)
            guilty = True
            break
        else:
            guilty = False

Tags: 用户文本程序falsetrue内容列表not
1条回答
网友
1楼 · 发布于 2024-09-28 21:55:01

要仅接受答案guiltynot guilty,您可以移除顶部的while循环并将其移动到for循环内部。另外,使用str.lower使答案不区分大小写:

character = ["Miss Scarlett", "Professor Plum", "Mrs Peacock", "Reverend Green", "Colonel Mustard", "Dr Orchid"]

for accused in character:
    verdict = ''
    while verdict not in ('guilty', 'not guilty'):
        verdict = input("Do you find %s guilty or not guilty? " % accused).lower()

    if verdict == "guilty":
        print("User finds %s guilty" % accused)
        break

打印(例如):

Do you find Miss Scarlett guilty or not guilty? d
Do you find Miss Scarlett guilty or not guilty? d
Do you find Miss Scarlett guilty or not guilty? f
Do you find Miss Scarlett guilty or not guilty? not guilty
Do you find Professor Plum guilty or not guilty? guilty
User finds Professor Plum guilty

相关问题 更多 >