lnnk
2021-02-14 16:38
采纳率: 100%
浏览 60
已采纳

python,初学,小问题,求解

responses = {}
# 设置一个标志,指出调查是否继续
polling_active = True

while polling_active: 
    # 提示输入被调查者的名字和回答
    name = input("\nWhat is your name? ")
    response = input("Which mountain would you like to climb someday? ")
    
    # 将答卷存储在字典中
    responses[name] = response
    
    # 看看是否还有人要参与调查
    repeat = input("Would you like to let another person respond? (yes/ no) ")
    if repeat == 'no':
        polling_active = False

# 调查结束,显示结果
print("\n--- Poll Results ---")
for name, response in responses.items():
    print(name + " would like to climb " + response + ".")

书中的案例,在 #看看是否有人参与的 代码处输入非‘yes’or‘no’的回答,也会当成是’yes‘继续运行。

我希望能改成:

①用户输入非‘yes’or‘no’的回答时,程序可以提示用户‘您输入的格式不对,请重新输入。’

②让程序返回到responses[name] = response的后面继续提示用户输入‘yes’or‘no’(此处不可以打印调查结果)

改了很多次都不行,能力有限,希望各位可以帮忙。(尽量简单一些,)

谢谢

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

1条回答 默认 最新

  • ProfSnail 2021-02-14 16:59
    最佳回答

    while循环就行了。好说。

     

    while polling_active: 
        # 提示输入被调查者的名字和回答
        name = input("\nWhat is your name? ")
        response = input("Which mountain would you like to climb someday? ")
        
        # 将答卷存储在字典中
        responses[name] = response
        
        # 看看是否还有人要参与调查
        while True:
            repeat = input("Would you like to let another person respond? (yes/ no) ")
            if repeat == 'no':
                polling_active = False
                break
            elif repeat == 'yes':
                break
            else:
                print("Wrong input format. do it again.")
                continue
    评论
    解决 1 无用
    打赏 举报

相关推荐 更多相似问题