While循环条件

2024-05-29 03:09:22 发布

您现在位置:Python中文网/ 问答频道 /正文

这是一个非常基本的问题,我为它的简单性道歉,但我一直在寻找答案和尝试不同的语法几个小时没有运气。你知道吗

我正在使用python为一个密码程序创建一个文本菜单。当按下无效键时,我使用while循环来显示错误消息,但即使条件为false,它也会循环。你知道吗

purpose = input("Type 'C' for coding and 'D' for decoding: ")

while purpose.upper() != "D" or "C":
    purpose = input("Error, please type a 'C' or a 'D': ")

if (purpose.upper() == "C"):
    do_something()

if (purpose.upper() == "D"):
    do_something()

由于某些原因,无论按什么键,都会显示错误消息。 非常感谢你的帮助!你知道吗


Tags: or答案消息forinputif错误语法
3条回答

更改:

while purpose.upper() != "D" or "C":

收件人:

while purpose.upper() != "D" and purpose.upper() != "C":

正如赛什在下面的评论中所建议的那样,一种更为恶作剧的方式是:

while purpose.upper() not in ("C", "D"):

您需要将orand两边的条件看作是逻辑上独立的。你知道吗

当计算机看到:

while purpose.upper() != "D" or "C":

它读作

(purpose.upper() != "D")

或者

"C"

第二部分,仅仅是"C",总是正确的。你知道吗


你可能想要:

while purpose.upper() != "D" or purpose.upper() != "C":

或者更好:

while purpose.upper() not in ("C", "D"):

来,试试这个。好像有用

 reason = ['D', 'C']
 while True:
     purpose = input("Type 'C' for coding and 'D' for decoding: ").upper()
     if reason.__contains__(purpose):
         print("You've got it this time")
         break

告诉我结果如何

相关问题 更多 >

    热门问题