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

Введение

Примеры

  • 0

    а также

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

     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.

  • 0

    или же

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

     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.

  • 0

    не

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

     x = True
    y = not x # y = False
    
    x = False
    y = not x # y = True 
  • 0

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

    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 
  • 0

    `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 

Синтаксис

Параметры

Примечания