-4

How can I make sure the user input only 'y' or 'n' in and make the program only accept 'y' or'n' as an answer?

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
4

3 回答 3

4

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

于 2013-10-29T07:26:36.133 回答
1

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

于 2013-10-29T07:26:05.043 回答
1

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

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

这可以理解为“如果 cont 不是……之一”。这种方法的优点是,您可以在单个条件下检查 n 个元素。例如,

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

Truecont不区分大小写ny

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

if cont not in "nyNY":
于 2013-10-29T07:45:53.040 回答