【问题标题】:How do I check the users input in Python3? [duplicate]如何检查 Python3 中的用户输入? [复制]
【发布时间】:2019-03-07 06:25:53
【问题描述】:

所以我的代码是这样写的:

a = input("Choose a letter")

if a == "A" or "B" or "D":
cr = "false" 

elif a == "C":
  cr = "true"

if cr == "false":
 print("Sorry you did not asnwer correctly")
 import sys
 sys.exit()

elif cr == "true":
 print("Well done!")

但出于某种原因,无论我说什么,它都说它是错误的。有什么帮助吗?我是 python 新手,来自 Lua。

【问题讨论】:

  • “这是错误的”,你的意思是什么。程序是否抛出错误或显示不正确的输出
  • 请尝试提供您编写的代码 - 它的缩进非常严重,不会以这种方式运行。
  • 要更加pythonic,你应该使用这个:if a in ("A", "B", "C") : ....

标签: python


【解决方案1】:

if a == "A" or "B" or "D": 这总是评估为 TRUE。因为"B" or "D" 总是每次都计算为TRUE。所以无论如何这可能归结为if 0 or 1 or 1

要解决此问题,您需要在每个条件运算符之后进行比较。 if a == "A" or a == "B" or a == "D":

【讨论】:

    【解决方案2】:
    if a == "A" or "B" or "D":
       cr = "false" 
    

    错了。你想要:

    if a == "A" or a == "B" or a == "D":
       cr = "false" 
    

    你可以做的一件好事是:

    if a in [ 'A', 'B', 'D' ]:
       cr = "false"
    

    或者甚至更好地将您的脚本重写为:

    a = input("Choose a letter")
    
    if a == 'C':
     print("Well done!")
    else:
     print("Sorry you did not asnwer correctly")
     import sys
     sys.exit()
    

    【讨论】:

    • if a in {'A', 'B', 'D'}: 更好。
    • @Austin 没有必要,因为BUILD_SET 也需要时间。我会使用元组。
    猜你喜欢
    • 2014-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多