Еще одним типом данных в Python является логический тип (boolean). Логические выражения принимают только два значения: True (истина) и False (ложь).

Они используются для сравнения значений с помощью операторов равенства ==.

my_boolean = True

print(my_boolean)

print(2 == 3)

print(“hello” == “hello”)

Еще одна операция сравнения (оператор неравенства, !=) возвращает значение True (истина), если сравниваемые аргументы неравные и False (ложь), если они равные.

print( 1 != 1 )

False

print(“eleven” != “seven”)

True

print(2 != 10)

True

В Python есть также операции, которые определяют, является ли число (целое или дробное) больше или меньше другого числа.

Им соответствуют операторы > и <.

print( 7 > 5 )

True

print( 10 < 1 )

False

print( 11.0 > 11 )

False

Используются также операции больше или равно и меньше или равно: >= и <=. Они похожи на операторы больше и меньше с той разницей, что они возвращают значение True (истина) при сравнении равных чисел.

print(7 <= 8)

True

print(9 >= 9.0)

True

Операторы больше и меньше также используются для сравнения строк в лексикографическом порядке (порядок слов основан на алфавитном порядке их букв).

print(“Annie” > “Andy”)

True

Оператор if указывает, что код должен выполняться только при определенном условии. Если выражение истинно (True), то выполняются некоторые инструкции. В противном случае эти инструкции не выполняются.

Ветвь if выглядит так:

ветвь if:

инструкции

Для разделения блоков кода в Python используются отступы (пустое место в начале строки). Исходя от логики программы, они могут быть обязательными.

Итак, инструкции внутри ветви if оформляется отступами. Вот пример использования инструкции if:

if 10 > 5:

print(“10 greater than 5”)

print(“Program ended”)

Выражение позволяет определить, является ли 10 больше пяти. Так как это истинное утверждение, выполняется инструкция с отступом и выводится «10 greater than 5». Затем выполняется инструкция без отступа, которая не является частью инструкции if, и отображается «Program ended».

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

num = 12

if num > 5:

print(“Bigger than 5”)

if num <=47:

print(“Between 5 and 47”)

Инструкция if позволяет проверить условие и исполнить какое-нибудь выражение, если это условие истинно.

Инструкция else может быть использовано для исполнения какого-нибудь выражения, если условие ложно. Как и в случае с инструкциями if, строки внутри ветви else должны иметь отступы.

x = 4

if x == 5:

print(“Yes”)

else:

print(“No”)

Каждый блок if может иметь только одну инструкцию else.

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

num = 3

if num == 1:

print(“One”)

else:

if num == 2:

print(“Two”)

else:

if num == 3:

print(“Three”)

else:

print(“Something else”)

Отступ определяет какой инструкции if/else принадлежит данный фрагмент кода. Множество инструкций if/else делают код длинным и сложно читаемым. В таких случаях используется инструкция elif (кратко от else if), которая также дает возможность осуществлять многочисленные проверки и исполнять их фрагменты кода, а код при этом будет короче. Пример из предыдущей части с использованием elif:

num = 3

if num == 1:

print(“One”)

elif num == 2:

print(“Two”)

elif num == 3:

print(“Three”)

else:

print(“Something else”)

Как видите, серия из if и elif условий может иметь финальный блок else, который исполнится, если никакой из условий if или elif не истинно.

Булева логика используется для создания более сложных условий в инструкциях if, которые имеют больше одного условия.

В Python используются такие булевы (логические) операторы, как and, or и not.

Оператор and оценивает два аргумента; значение True (истина) возвращается только в том случае, если оба аргумента истинны (True). В противном случае возвращается False (ложь).

print( 1 == 1 and 2 == 2 )

True

print( 1 == 1 and 2 == 3 )

False

print( 1 != 1 and 2 == 2 )

False

print( 2 < 1 and 3 > 6 )

False

Логический оператор or также имеет два аргумента. Значение True возвращается, когда один его аргумент (или оба) истинный, и значение False, когда оба аргумента ложные.

print( 1 == 1 or 2 == 2 )

True

print( 1 == 1 or 2 == 3 )

True

print( 1 != 1 or 2 == 2 )

True

print( 2 < 1 or 3 > 6 )

False

В отличие от других рассмотренных нами операторов, оператор not может иметь только один аргумент, но может его инвертировать. В случае not True (ложное значение) возвращается значение False (ложь), а в случае not False (истинное значение) возвращается True.

print(not 1 == 1)

False

print(not 1 > 7)

True

Приоритет операторов – очень важное понятие в программировании. Оно аналогично порядку операций в математике (умножение выполняется перед сложением и т.п.), но касается и других операций, таких какие используются в булевой логике. Ниже оператору == присвоен более высокий приоритет, чем оператору or:

print( False == False or True )

True

print( False == (False or True) )

False

print( (False == False) or True )

True

Вы можете логично связать несколько условий в инструкции if, используя булевы операторы. Например, мы можем проверить находится ли оценка между значениями 70 и 100:

grade = 88

if (grade >= 70 and grade <=100):

print(“Passed!”)