如何确保用户只在程序中输入“y”或“n”?

时间:2013-10-29 07:24:37

标签: python

如何确保用户仅输入'y'或'n'并使程序仅接受'y'或'n'作为答案?

while True:
        try:
            cont = input("Do you want to continue? If so enter 'y'.")
            if cont != "n" or cont !="y":
                print("Please enter 'y' or 'n'")
            else:
                break
        except ValueError:
            print("Please enter 'y' or 'n'")
    else:
            break

3 个答案:

答案 0 :(得分:4)

类型if cont != "n" or cont !="y":的条件始终为真,因为cont不能同时为ny

答案 1 :(得分:1)

因为它应该是if cont != "n" and cont !="y":。每个字都不是n或不是y

答案 2 :(得分:1)

您应该使用and运算符而不是or运算符。为避免这种混淆,您可以尝试以接近英语的方式编写此类条件,例如

cont="a"
if cont not in ("n", "y"):
    print "Welcome"

这可以理解为"如果cont不是......"之一。此方法的优点是,您可以在单个条件中检查n个元素。例如,

if cont not in ("n", "y", "N", "Y"):

仅当True不区分大小写contn

时才会y

编辑:正如Eric在评论中所建议的,对于单字符检查我们可以做这样的事情

if cont not in "nyNY":