Уроки технологии
Технология Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

Бинарная логика в Python

Создания сложных выражений в Python, которые применяют условную логику. Цели обучения:

Освоить использование инструкции if, else и elif для выполнения кода в различных условиях.
Научиться использовать операторы and и or для объединения условной логики и создания более сложных условий.

Логические значения — это общий тип в Python. Такое значение может быть равно только true или false. Понимание того, как использовать логические значения, является критически важным, так как они потребуются для написания условной логики.

Предположим, вы создаете программу, которая определяет, представляет ли кусок космического мусора опасность для космического корабля. Если объект больше заданного размера и окажется в зоне полета космического аппарата, необходимо выполнить маневр, чтобы избежать столкновения. В противном случае космический корабль может сохранить курс.

В этом модуле вы будете использовать логические ключевые слова и операторы для записи нескольких типов условных выражений и определения реакции космического аппарата.

Инструкция “if”

Для выражения условной логики в Python используйте инструкции if. При записи инструкции if вы полагаетесь на другую концепцию, которая рассматривается в этом модуле, — математические операторы. Python поддерживает общие логические операторы из математических выражений: равно, не равно, меньше, меньше или равно, больше и больше или равно. Вероятно, вы привыкли к тому, что эти операторы выражаются с помощью символов, именно так они представлены и в Python.

Равно: a == b
Не равно: a != b
Меньше: a < b
Меньше или равно: a <= b
Больше: a > b
Больше или равно: a >= b

Вам нужно использовать инструкцию if для выполнения кода только при соблюдении определенного условия. Первое, что нужно сделать при написании инструкции if, — проверить условие с помощью проверочного выражения. Затем нужно определить, дает ли вычисление инструкции значение True или False. Если это True, то выполняется следующий блок кода с отступом:

a = 97
b = 55
# test expression
if a < b:
    # statement to be run
    print(b)

В Python тело инструкции if должно иметь отступ. Любой код, следующий за проверочным выражением без отступа, будет выполняться всегда:

a = 24
b = 44
if a <= 0:
    print(a)
print(b)

Инструкции “else” и “elif”

Что делать, если вы хотите, чтобы программа выполняла фрагмент кода, когда проверочное выражение равно False? А если нужно включить другое проверочное выражение? Python содержит другие ключевые слова, которые можно использовать для создания более сложных инструкций if — else и elif. Сочетая if, else и elif, можно писать сложные программы с несколькими проверочными выражениями и инструкциями для выполнения.

Вам известно, что при использовании инструкции if тело программы будет выполняться только в том случае, если проверочное выражение имеет значение True. Чтобы добавить код, который будет выполняться, когда проверочное выражение равно False, нужно добавить инструкцию else.

a = 93
b = 27
if a >= b:
    print(a)
else:
    print(b)

Если проверочное выражение равно False, код в теле инструкции if пропускается, и программа продолжает выполнение с инструкции else. Синтаксис инструкции if/else всегда имеет следующий вид:

if проверочное_выражение:
    # инструкция 1
else:
    # инструкция 2

Работа с elif

В Python ключевое слово elif является короткой формой для else if. Используя инструкции elif, можно добавить в программу несколько проверочных выражений. Эти инструкции выполняются в том порядке, в котором они записаны, поэтому программа перейдет к инструкции elif только в том случае, если первая инструкция if имеет значение False.

if проверочное_выражение:
    # инструкция 1
elif проверочное_выражение:
    # инструкция 2

Сочетание инструкций if, elif и else

Вы можете сочетать инструкции if, elif и else для создания программ со сложной условной логикой. Помните, что инструкция elif выполняется, только если условие if имеет значение false. Также обратите внимание, что блок if может иметь только один блок else, но несколько блоков elif.

Рассмотрим пример еще раз с добавленной инструкцией elif:

a = 93
b = 27
if a > b:
    print("a больше b")
elif a < b:
    print("a меньше b")
else: 
    print ("a равно b") 

Блок кода, использующий все три типа инструкций, имеет следующий синтаксис:


if проверочное_выражение:
    # инструкция 1
elif проверочное_выражение:
    # инструкция 2
elif проверочное_выражение:
    # инструкция 3
else:
    # инструкция 4

Работа с вложенной условной логикой

Python также поддерживает вложенную условную логику, то есть можно вкладывать инструкции if, elif и else для создания еще более сложных программ. Чтобы вложить условия, добавьте отступ для внутренних условий, и все то, что находится на одном уровне отступа, будет выполняться в одном блоке кода:

a = 16
b = 25
c = 27
if a > b:
    if b > c:
        print ("a больше b и b больше c")
    else: 
        print ("a больше b и меньше c")
elif a == b:
    print ("a равен b")
else:
    print ("a меньше b")

Вложенная условная логика следует тем же правилам, что и обычная условная логика в каждом блоке кода.

Иногда может потребоваться комбинировать тестовые выражения для вычисления нескольких условий в одной инструкции if, elif или else. В этом случае можно использовать логические операторы and и or.

Оператор or

С помощью логического оператора or можно связать два логических или проверочных выражения. Чтобы вычисление всего выражения давало True, хотя бы одна часть выражения была истинной. Если ни одна из частей выражения не является истинной, то все выражение целиком дает значение False. Например, в следующем выражении все проверочное выражение дает значение True, так как выполнено одно из условий в части выражения:

a = 23
b = 34
if a == 34 or b == 34:
    print(a + b)

Если обе части выражения являются истинными, то все проверочное выражение также принимает значение True.

Логическое выражение, использующее or, имеет следующий синтаксис:

подвыражение1 or подвыражение2

Оператор and

Можно также связать два проверочных выражения с помощью логического оператора and. Оба условия в проверочном выражении должны быть истинными, чтобы все проверочное выражение при вычислении давало значение True. В любом другом случае проверочное выражение равно False. В следующем примере все проверочное выражение дает значение False, так как выполнено лишь одно из условий в части выражения:

a = 23
b = 34
if a == 34 and b == 34:
    print (a + b)

Логическое выражение, использующее and, имеет следующий синтаксис:

подвыражение1 and подвыражение2

Разница между and и or

Чтобы наглядно изучить разницу между двумя логическими операторами, можно использовать таблицу истинности. Таблица истинности показывает результат вычисления всего проверочного выражения на основе двух частей выражения.

Ниже приведена таблица истинности для and:

подвыражение1 Оператор подвыражение2 Результат
True and True True
True and False False
False and True False
False and False False

Ниже приведена таблица истинности для or:

subexpression1 Оператор subexpression2 Результат
True or True True
True or False True
False or True True
False or False False

Упражнение Добавьте код для отображения сообщения о том, что требуются маневры уклонения, если размер объекта больше 5 и близость меньше 1000. В противном случае отобразите сообщение о том, что объект не представляет угрозы.

object_size = 10
proximity = 9000

if object_size > 5 and proximity < 1000:
    print('Требуtтся маневр уклонения')
else:
    print('Объект не представляет угрозы')

Сводка

С помощью тестовых выражений, которое также называют логическими, можно условно выполнять код Python. Обычно они используются в Python для принятия решений о дальнейших действиях при выполнении программы. В предыдущих уроках вы написали тестовые выражения в составе инструкций if, else и elif, а также дополнительно настроили условия с помощью операторов and и or.

Логические выражения и инструкции являются ключевым компонентом для создания сложных программ Python, где код должен выполняться только при определенных условиях.

Ниже приведено несколько важных замечаний об условной логике:

Логические значения могут иметь одно из двух значений: True или False.
Инструкции if, else и elif можно использовать для выполнения кода при конкретных условиях.
Операторы and и or можно использовать для объединения тестовых выражений и создания более сложных условий.

С помощью этих средств вы можете создавать более сложные блоки кода в Python.