Основы программирования на Python
Часто в реальной жизни мы соглашаемся или отрицаем то или иное утверждение, событие, факт. Например, "Сумма чисел 3 и 5 больше 7" является правдивым утверждением, а "Сумма чисел 3 и 5 меньше 7" - ложным. Можно заметить, что с точки зрения логики подобные фразы предполагают только два результата: "Да" (правда) и "Нет" (ложь). Подобное используется в программировании: если результатом вычисления выражения может быть лишь истина или ложь, то такое выражение называется логическим.
На прошлом уроке были описаны три типа данных: целые, дробные числа, а также строки. Также выделяют логический тип данных. У этого типа всего два возможных значения: True (правда) — 1 и False (ложь) — 0. Только эти значения могут быть результатом логических выражений.
Говоря на естественном языке (например, русском) мы обозначаем сравнение словами "равно", "больше", "меньше". В языках программирования используются специальные знаки, подобные тем, которые используются в математических выражениях: > (больше), < (меньше), >= (больше или равно), <= (меньше или равно).
Новыми для вас могут оказаться обозначение равенства: == (два знака "равно"); а также неравенства !=. Здесь следует обратить внимание на следующее: не путайте операцию присваивания, обозначаемую в языке Python одиночным знаком "равно", и операцию сравнения (два знака "равно"). Присваивание и сравнение — совершенно разные операции.
Примеры работы с логическими выражениями на языке программирования Python (после # написаны комментарии):
x = 12 – 5 # это не логическая операция, # а операция присваивания переменной x результата выражения 12 — 5 x == 4 # x равен 4 x == 7 # x равен 7 x != 7 # x не равен 7 x != 4 # x не равен 4 x > 5 # x больше 5 x < 5 # x меньше 5 x >= 6 # x больше или равен 6 x <= 6 # x меньше или равен 6
Логические выражения типа verymuch >= 1023 является простым. Однако, на практике не редко используются более сложные. Может понадобиться получить ответа "Да" или "Нет" в зависимости от результата выполнения двух простых выражений. Например, "на улице идет снег или дождь", "переменная new больше 12 и меньше 20" и т.п.
В таких случаях используются специальные операторы, объединяющие два и более простых логических выражения. Широко используются два способа объединения: через, так называемые, логические И (and) и ИЛИ (or).
Чтобы получить истину (True) при использовании оператора and, необходимо, чтобы результаты обоих простых выражений, которые связывает данный оператор, были истинными. Если хотя бы в одном случае результатом будет False (ложь), то и все сложное выражение будет ложным.
Чтобы получить истину (True) при использовании оператора or, необходимо, чтобы результаты хотя бы одного простого выражения, входящего в состав сложного, был истинным. В случае оператора or сложное выражение становится ложным лишь тогда, когда ложны все составляющие его простые выражения.
Примеры работы со сложными логическими выражениями на языке программирования Python (после # написаны комментарии):
x = 8 y = 13 x == 8 and y < 15 # x равен 8 и y меньше 15 x > 8 and y < 15 # x больше 8 и y меньше 15 x != 0 or y >15 # x не равен 0 или y больше 15 x < 0 or y >15 # x меньше 0 или y больше 15
Определите устно результаты выполнения операций, приведенных в примере выше. Проверьте правильность ваших предположений, выполнив данные выражения с помощью интерпретатора языка Python.
>>> num1 = 34 >>> num2 = 8.5 >>> num1 > 12 and num2 != 12 True >>> num1 == 34 and num2 >= 8 True >>> num1 != 34 and num2 != 12 False >>> num1 <= 12 and num1 == 0 False >>> num1 != 34 or num2 != 12 True >>> num1 < 1 or num2 > 9.6 False >>> str1 = "a" >>> str2 = "b" >>> str1 < "c" and str2 != "a" True >>>