首页 > 解决方案 > 使用 while 循环在 Python 中测试和接受用户输入

问题描述

我究竟做错了什么?

valid = set(["Mon","Tue","Wed","Thu","Fri","Sat","Sun","All"])
value = input("Enter the day of interest or all for all days. Valid Values are Mon,Tue,Wed,Thu,Fri,Sat,Sun,All: ")
count = 0

while count <= 3:
    if value in valid:
        print("Awesome!! You chose {}".format(value.title()))
        break
    else:
        count += 1
        pass
        print("Try Again")

else:
    print("Too many errors. Read the instructions and come back again when ready!! :-| ")
    exit()

因此,如果我输入一个有效值但如果我测试集合之外的值,则此方法有效,if 循环中的 else('Try Again')执行 3 次(设置计数器,然后跳转到 while 循环的 else。

我希望输入框再次出现并一直持续到: 1. 用户在 3 次尝试中输入了正确的值 2. 收到一条消息并退出程序,将它们返回到命令提示符。

提前致谢。做一个教程项目并完全坚持这一点。我应该使用 try/except 吗?如果是这样,我仍然可以设置计数器吗?

标签: python-3.x

解决方案


您需要允许用户再次输入输入。将输入输入行放在重试部分下方。

print("Try Again")
value = input("Enter the day of interest or all for all days. Valid Values are Mon,Tue,Wed,Thu,Fri,Sat,Sun,All: ")

您也不需要该pass声明。

请注意,您从 0 开始计数,这实际上给了用户 4 次机会,而不是 3 次。(以 开头count=1


推荐阅读