【问题标题】:Python 3.4 If and elif statements not working [duplicate]Python 3.4 If 和 elif 语句不起作用[重复]
【发布时间】:2017-02-10 18:00:57
【问题描述】:

所以我遇到的问题是关于编程的聊天机器人的简单脚本的这一部分。但是当我测试这部分脚本并输入“B”作为我的输入时,它会说(“熊猫:我很高兴你能分享我的热情。”)这就是如果我输入 A 就不会发生的事情!有人可以向我指出我做错了什么吗?

invalidAnswer2 = true
while invalidAnswer2 == true :
    answer2 = input (user)
    if answer2 == ('a') or ('A') :
        print ('Panda: I'm glad you share my enthusiasm.')
        invalidAnswer2 = false
    elif answer1 == ('b') or ('B') :
        print ('Panda: I wish. I am actually British, but I dream of going to America!')        
        print ('Panda: *Cough* Um anyway that was rather unproffesional of me.')
        invalidAnswer2 = false
    else :
        invalidAnswer()
        invalidAnswer2 = true

感谢您帮助我修复它。毕竟这是一个简单的错字XD

【问题讨论】:

  • 你的缩进是否正确?同样在python中没有truefalse,有TrueFalse
  • @BhargavRao 不,这是我在网站上的第一篇文章,我没有复制任何文章。
  • @vishes_shell 是的,刚刚检查过,很确定一切都很好
  • @vishes_shell tr​​ue 或 false 在脚本的早期部分中定义,因为我需要它以不同的方式。
  • @BlackPanda 那么你将永远无法逃脱while 循环,因为在while 循环中没有invalidAnswer2 变化。

标签: python windows python-3.x if-statement python-3.4


【解决方案1】:

问题在于您的第一个 if 语句始终为 True: 如果 answer1 == "a" 或 "A" 总是会产生真,因为它真的在问:

if (answer1 == "a") or ("A")

并且“A”将始终返回 True。 你的意思大概是:

if answer1 == "a" or answer1 == "A"

或者更好的选择:

if answer1.lower() == "a"

【讨论】:

  • 另一个坏(!)一个是if answer1 in ['a', 'A'],只是为了完成:D
  • 谢谢!你是对的,对不起X3这样的菜鸟