Python 如何运行包含2个条件的while循环

Python 如何运行包含2个条件的while循环,python,python-3.x,Python,Python 3.x,我写了这个软件,如果用户输入的不是“y”或“n”,他应该会得到一个错误。但是由于某种原因,如果用户选择了错误的选项,然后选择了“n”,他仍然会得到一个错误。我能得到帮助吗 continue = input('Would you like to continue? (y/n) ') while continue != 'y' or continue != 'n': print("Error. You didn't select a valid option. Please tr

我写了这个软件,如果用户输入的不是“y”或“n”,他应该会得到一个错误。但是由于某种原因,如果用户选择了错误的选项,然后选择了“n”,他仍然会得到一个错误。我能得到帮助吗

continue = input('Would you like to continue? (y/n) ') 
while continue != 'y' or continue != 'n':
    print("Error. You didn't select a valid option. Please try again")
    continue = input('Would you like to continue? (y/n) ')

使用“不”或“不”创建条件这可能令人困惑。针对您的案例的一些正确条件:

while cont != 'y' and cont != 'n':
# or
while not(cont == 'y' or cont == 'n'):
# or
while cont not in ('y', 'n'):
您需要将or更改为和

除了继续作为保留关键字

而继续或继续n': 这是不对的。如果cont='y',那么它是真的,因为cont!='不。如果cont=='n',则相反。对于任何其他值,这两个条件都为真,因此这本质上是一个无限循环。它应该是cont!='是的,继续n',非cont=='n'或cont=='y'或cont不在'yn'中

您还可能希望修改代码,使输入仅在代码中出现一次,以便您可以轻松修改文本,而无需复制和粘贴到其他输入中:

尽管如此: user_in=input'是否继续?是/否' 如果user_in='y'或user_in='n':或user_in'yn' 打破 其他: 打印错误。您没有选择有效的选项。请再试一次' 打印“有效输入”
continue在python中是一个保留关键字,不应使用。从语法突出显示中也应可以明显看出。@PranavHosangadi这是一种不错的做法,实际上不可能写入,因为这是一个语法错误,而不仅仅是覆盖像list这样的名称,continue是一个关键字相关:这是否回答了您的问题?
choice = input('Would you like to continue? (y/n) ')
    while choice !='y' and choice != 'n':
        print("Error. You didn't select a valid option. Please try again")
        choice=input('Would you like to continue? (y/n) ')