【问题标题】:The if-statement is triggered no matter the input [duplicate]无论输入如何,都会触发 if 语句[重复]
【发布时间】:2018-08-08 19:11:36
【问题描述】:

我正在尝试编写某种选择题游戏,但无论输入如何,都会触发 if 语句,即使输入是 d 或 D。

这可能是一个明显的错误,但我是一个绝对的编程初学者,所以我真的希望你们能帮助我指出我做错了什么。

我的代码如下所示:

answer = input("Do you want to do something (C) or something else (D)? [C/D]")

if answer == "c" or "C":
    print ("You typed", answer)
    time.sleep(2)
    print ("You can now do something")
    time.sleep(2)


elif answer == "d" or "D":
    print ("You typed", answer)
    time.sleep(2)
    print ("You can now do something else")
    time.sleep(2)


else:
    Exit()

【问题讨论】:

  • 使用if answer.lower() == "c":, elif answer.lower() == "d":
  • 如果你想要它更短:if answer in ['c','C']

标签: python python-3.x if-statement input


【解决方案1】:

Python 的工作方式与英语不同。

if answer == "c" or "C": 应该是if answer == "c" or answer == "C": D 也是如此。

这个问题之前已经回答过here。你可以阅读更多关于逻辑或here的信息。

【讨论】:

    【解决方案2】:
    answer = input("Do you want to do something (C) or something else (D)? [C/D]")
    
    if answer == "c" or answer == "C": # Here is your mistake
        print ("You typed", answer)
        time.sleep(2)
        print ("You can now do something")
        time.sleep(2)
    
    
    elif answer == "d" or answer == "D":  # also here
        print ("You typed", answer)
        time.sleep(2)
        print ("You can now do something else")
        time.sleep(2)
    
    
    else:
        Exit()
    

    【讨论】:

      猜你喜欢
      • 2020-10-11
      • 1970-01-01
      • 2014-05-08
      • 1970-01-01
      • 1970-01-01
      • 2021-11-24
      • 1970-01-01
      • 2012-07-06
      • 1970-01-01
      相关资源
      最近更新 更多