Когда вы используете число X непосредственно в условии, Python неявно преобразует его в логическое значение, применяя сравнение X != 0
Итак, для ваших примеров:
Сначала
a=35
b=35
if a or b>35: # same as if a!=0 or b>35: True or False --> True
print('First')
Второй
c=35
d=35
if c>35 or d>35: # False or False --> False
print('Second')
Третий
e=35
f=35
if e>35 and f>35: # False and False --> False
print('Third')
Четвертый
g=35
h=35
if g and h>35: # same as if g!=0 and h>35: True and False --> False
print('Fourth')
Если вы ищете express условие чтобы проверить, что a
или b
больше 35, вы не можете записать его как a or b > 35
.
Хотя вам может быть понятно в Engli sh, это не так, как Python читает его ,
Python требует, чтобы вы были более явными, поэтому вам придется повторить > 35
:
a > 35 or b > 35
.
Если вы хотите избежать повторения 35, вот трюк, который вы могли бы использовать:
if max(a,b) > 35:
# either a or b is > 35 (i.e. the highest of the two is > 35)
if min(a,b) > 35:
# both a and b are > 35 (i.e. the lowest of the two is > 35)