【问题标题】:Why is this simple python program not working the way I want it to?为什么这个简单的 python 程序不能按我想要的方式工作?
【发布时间】:2018-03-04 05:29:27
【问题描述】:

以下代码 sn-p 旨在允许用户输入问题的答案。他们被允许进入四个 答案:yY 表示“是”,或 nN 表示“否”。该程序应该打印出收到的答案,如果 输入有效,否则打印错误信息。

answer = input("What is your answer? ")
if answer == "y" or "Y":
    print("You answered yes")
elif answer == "n" or "N":
    print("You answered no")
else:
    print("You didn’t enter an acceptable answer")

它只是一直说我回答了yes,无论我输入nN 还是一些随机的东西。谁能给我解释一下?

【问题讨论】:

标签: python python-3.x


【解决方案1】:

or 的优先级不是您所期望的。而是尝试:

answer = input("What is your answer? ")
if answer in ("y", "Y"):
    print("You answered yes")
elif answer in ("n", "N"):
    print("You answered no")
else:
    print("You didn’t enter an acceptable answer")

或者可能像:

answer = input("What is your answer? ")
if answer.lower() == "y":
    print("You answered yes")
elif answer.lower() == "n":
    print("You answered no")
else:
    print("You didn’t enter an acceptable answer")

【讨论】:

    【解决方案2】:

    您的第一个条件将始终返回 true,因为 "Y" 始终为真。

    试试:if answer == "y" or answer == "Y":

    对另一个条件进行同样的修改。

    【讨论】:

      【解决方案3】:

      如果您想根据需要快速检查变量,请使用以下内容:

      if answer in ["y","Y"]:
      

      如果answeryY,它将返回True

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-01-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多