【问题标题】:what exactly it means in python that: False==(False or True) is False?在python中究竟意味着什么:False==(False or True) is False?
【发布时间】:2019-11-14 06:36:17
【问题描述】:

python 中布尔逻辑中的运算符优先级

print(False==True or False) #answer is True
print(False==(False or True))# is it True or False if either why?
print((False==False)or True) # answer is True`

【问题讨论】:

标签: python boolean logic


【解决方案1】:

是False。

print(False==(False or True))

您需要先计算括号中的布尔值。在括号中(False or True) 评估True 因为or 然后False==True 评估False 显然。

【讨论】:

    【解决方案2】:
    print(False==True or False) #answer is **False**
    print(False==(False or True))# Answer is **False**
    print((False==False)or True) # answer is **True`**
    

    对于打印(假==(假或真))

    step1:  print(False==(False or True))
    step 2: step 1 become print(False==True) **because (0+1=1)**
    step 3: print(False)
    

    【讨论】:

      【解决方案3】:

      逐步评估表达式:

      False == (False or True)
      

      =

      False == True
      

      =

      False
      

      【讨论】:

        【解决方案4】:

        or 运算符的优先级低于相等运算符 ==。而()在三者中的优先级最高。

        所以在这种情况下:

        1. print(False==True or False),表达式True or False 的右侧最后计算,因为== 的优先级高于or。第一个表达式False==True 被计算为False。

          现在表达式变成False or False,所以它的结果是False。

        2. print(False==(False or True)) 表达式的第二部分(False or True)导致True 中的() 具有最高优先级,False==True 是False。

        3. print((False==False)or True) 表达式 (False==False) 是 True,因为 () 优先,然后 or 应用于结果表达式 True or True 它是 True。

        【讨论】:

        • 好的,逻辑是 (True or False ) =True or (False or True)=True in python。非常感谢
        • @D Gurung 是的,如果在具有or 的表达式中有任何True,它将变为True。
        猜你喜欢
        • 2015-09-30
        • 2015-03-22
        • 2014-03-17
        • 1970-01-01
        • 1970-01-01
        • 2011-11-08
        • 2010-11-28
        • 2014-03-23
        • 2021-08-08
        相关资源
        最近更新 更多