Python:如何将input()字符串与另一个字符串进行比较?

时间:2017-02-12 07:29:51

标签: python loops input while-loop

def main ():
x = input("print data? (Y/N) ")

while (x != 'Y' or x != 'N'):
    x = input("error: wrong input. Please put Y or N only ")

if x == 'Y':
    read_serial()

尝试检查键盘输入(x)是否等于' Y'或者' N'串。如果没有,则循环继续,直到它。但是上面的代码似乎编译并运行正常,除了无论循环如何继续运行。没有多少Python 3的经验,所以任何人都可以告诉我我做错了什么?

2 个答案:

答案 0 :(得分:2)

or更改为and,因为您要检查它是否与这些字段中的任何一个不相等。如果您想使用or,则必须将代码更改为

def main ():
    user_input = input("print data? (Y/N) ")

    while (true):
        if (user_input.lower() == 'y' or user_input.lower() == 'n'):
            break
        user_input = input("error: wrong input. Please put Y or N only ")

    if user_input.lower() == 'y':
        read_serial()

旁注:x是一个糟糕的变量名称,称之为更合适。

当案例无关紧要时,在比较字符串时,应始终将案例更改为更低。在这种情况下,情况无关紧要,请使用lower()

def main ():
    user_input = input("print data? (Y/N) ")

    while (user_input.lower() != 'y' and user_input.lower() != 'n'):
        user_input = input("error: wrong input. Please put Y or N only ")

    if user_input.lower() == 'y':
        read_serial()

答案 1 :(得分:1)

本声明

x != 'Y' or x != 'N'

总是True,因为世界上的一切都不是“Y”而不是“N”。

将其更改为:

x != 'Y' and x != 'N'
相关问题