【问题标题】:Why is it printing "hurrah" even when the condition are false? [duplicate]为什么即使条件不正确,它也会打印“欢呼”? [复制]
【发布时间】:2020-07-17 07:06:54
【问题描述】:

代码中突出显示的部分告诉我“删除多余的括号”,但是当我删除它们时,出现关于逗号的语法错误。

【问题讨论】:

  • 您之间不需要逗号。去掉括号并有一个and条件
  • 使用括号,解释器将其视为一个元组(python 不需要在条件周围加上括号),因此您实际上检查了if some_tuple。现在,如果该元组不为空,则它始终为真。要修复它,只需将逗号更改为 and
  • 另外,你应该在这里发布代码,而不是代码的图像
  • @בנימיןכהן 谢谢,我一直在寻找这个解释,我会记住在这里发布代码。

标签: python python-3.x


【解决方案1】:

括号和逗号使解释器认为条件是一个元组,然后计算为 (False, False),python 将具有任何元素的元组视为 true。More info about tuples here
要解决此问题,您必须根据具体情况将“,”替换为布尔运算符。

【讨论】:

    【解决方案2】:

    您必须使用和/或同时添加两个条件a==9 包含在条件a>4 中,因此不需要a==9

    a=4
    if(a>5 or a==9):
        print ("hurrah")
    

    【讨论】:

      【解决方案3】:

      您应该使用和/或代替逗号并删除括号

      if a > 5 or a == 9:
          print('hurray')
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-10-10
        • 2016-06-07
        • 2020-12-24
        • 1970-01-01
        相关资源
        最近更新 更多