Документация по Python

Булевы операторы

В: Документация по Python

Оператор И

Оценивает второй аргумент, если и только если оба аргумента верны. В противном случае оценивается первый аргумент Фальси.

x = True
y = True
z = x and y # z = True

x = True
y = False
z = x and y # z = False

x = False
y = True
z = x and y # z = False

x = False
y = False
z = x and y # z = False

x = 1
y = 1
z = x and y # z = y, so z = 1, see `and` and `or` are not guaranteed to be a boolean

x = 0
y = 1
z = x and y # z = x, so z = 0 (see above)

x = 1
y = 0
z = x and y # z = y, so z = 0 (see above)

x = 0
y = 0
z = x and y # z = x, so z = 0 (see above)

 

В 1 - х годов в приведенном выше примере , может быть изменен на любое значение truthy, и 0 -х может быть изменен на любое значение falsey.

Оператор ИЛИ

Оценивает первый правдивый аргумент, если один из аргументов правдив. Если оба аргумента ложны, оценивается второй аргумент.

 x = True
y = True
z = x or y # z = True

x = True
y = False
z = x or y # z = True

x = False
y = True
z = x or y # z = True

x = False
y = False
z = x or y # z = False

x = 1
y = 1
z = x or y # z = x, so z = 1, see `and` and `or` are not guaranteed to be a boolean

x = 1
y = 0
z = x or y # z = x, so z = 1 (see above)

x = 0
y = 1
z = x or y # z = y, so z = 1 (see above)

x = 0
y = 0
z = x or y # z = y, so z = 0 (see above)

 

В 1 - х годов в приведенном выше примере , может быть изменен на любое значение truthy, и 0 -х может быть изменен на любое значение falsey.

не

Возвращает противоположность следующего утверждения:

 x = True
y = not x # y = False

x = False
y = not x # y = True 

Оценка короткого замыкания

Python минимально оценивает логические выражения.

 >>> def true_func():
...     print("true_func()")
...     return True
... 
>>> def false_func():
...     print("false_func()")
...     return False
... 
>>> true_func() or false_func()
true_func()
True
>>> false_func() or true_func()
false_func()
true_func()
True
>>> true_func() and false_func()
true_func()
false_func()
False
>>> false_func() and false_func()
false_func()
False 

`and` и` or` не гарантированно возвращают логическое значение

При использовании or он будет либо вернуть первое значение в выражении , если это правда, иначе она будет слепо возвращать второе значение. Т.е. or эквивалентно:

 def or_(a, b):
    if a:
        return a
    else:
        return b

 

Для and , он возвращает его первое значение , если оно ложно, иначе она возвращает последнее значение:

 def and_(a, b):
    if not a:
        return a
    else:
        return b 
Еще от кодкамп
Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.