python逻辑运算符''或''的技巧?

0 python operators

我正在学习 python 并且逻辑运算符“或”有问题。无法找到信息并理解为什么各种写作中的代码解释不同(#First 和 #Second 示例中的区别是什么)。因此,#First 示例不等于 #Second,当所有代码变体中的运算符“和”都相等时

# First
a=35
b=35
if a or b>35:
    print('First')

'''with code like above python have printed 'First' even if statement false, like i understand it. 
But in other examples, statement are false too, and 'print' wasn't done, like it must be.'''

# Second
c=35
d=35
if c>35 or d>35:
    print('Second')

#Third    
e=35
f=35
if e>35 and f>35:
    print('Third')

#Fourth    
g=35
h=35
if g and h>35:
    print('Fourth')
Run Code Online (Sandbox Code Playgroud)

sch*_*ggl 5

a or b > 35
Run Code Online (Sandbox Code Playgroud)

相当于

a or (b > 35)
Run Code Online (Sandbox Code Playgroud)

并且a是真实的,因为所有的整数除了0是真实的。您可以验证:

>>> a or b > 35
35
>>> (a or b) > 35  
False
Run Code Online (Sandbox Code Playgroud)

请参阅真值测试运算符优先级

另请注意,如果或大于,(a or b) > 35不会成为。Trueab35

(a or b or c or ... or n) > 35
Run Code Online (Sandbox Code Playgroud)

仅当析取中的第一个非零数大于35