Программирование для всех (основы работы с Python)

Алла Тамбовцева, НИУ ВШЭ

Данный ноутбук основан на лекции Щурова И.В., курс «Программирование на языке Python для сбора и анализа данных» (НИУ ВШЭ).

Проверка условий

Начнем с известных всем операторов. Проверим,

  • правда ли, что 8 меньше 9;
  • правда ли, что 9 больше 10.
In [1]:
8 < 9 # правда
Out[1]:
True
In [2]:
9 > 10 # неправда
Out[2]:
False

Результат такой проверки имеет логический тип (boolean).

In [3]:
res = 8 < 9
res
Out[3]:
True

Как мы уже обсуждали, переменные такого типа могут принимать два значения True или False. Обратите внимание, что True и False не заключены в кавычки – добавив кавычки, мы получим строки "True" и "False" (тип string).

При проверке равенства двух частей (переменных, списков и так далее) используется двойной знак равенства.

In [5]:
6 == 6
Out[5]:
True

Одинарный знак «равно» используется для присваивания значений. Так ничего не сравним, но сохраним в переменную a число 6:

In [6]:
a = 6 
a 
Out[6]:
6

А так уже проверим условия:

In [7]:
print(a == 6) 
print(a == 9) 
True
False

Отрицание равенства в Python обозначается с помощью оператора != (вообще ! в программировании используется для отрицания).

In [8]:
6 != 7
Out[8]:
True

Стоит отметить, что Python достаточно лояльно относится к разделению между типам данных. Например, если мы сравним целое число и то же число, но с плавающей точкой (с дробной частью равной 0), Python сообщит, что эти числа совпадают.

In [9]:
6 == 6.0 # верно
Out[9]:
True

Сложные условия

Пусть у нас есть три целочисленные переменные a, b и c, и мы планируем составлять сложные, составные уcловия, касающиеся этих переменных.

In [10]:
a = 3
b = 7
c = 1

Помогут операторы and и or. Оператор and соответствует одновременному выполнению условий, оператор or соответствует ситуации, когда хотя бы одно из условий выполняется. Оператор or в Python – обычное «или», не исключающее: либо верно первое условие, либо второе, либо оба.

In [11]:
(a < b) and (b > c) # оба верны
Out[11]:
True
In [12]:
(a < b) and (c > b) # второе неверно -> все неверно
Out[12]:
False

Вместо and можно использовать оператор &, он нам потом ещё пригодится при работе с датафреймами pandas:

In [13]:
(a < b) & (c > b)
Out[13]:
False
In [14]:
(a < b) or (a > c) # первое верное -> хотя бы одно верно
Out[14]:
True

Вместо or можно использовать оператор |:

In [15]:
(a < b) | (a > c)
Out[15]:
True

Кроме and и or в Python есть еще полезные операторы: оператор принадлежности in и оператор отрицания not.

Пусть у нас есть списки отличных, хороших, удовлетворительных и плохих оценок.

In [16]:
excel = [8, 9, 10]
good = [6, 7]
sat = [4, 5]
bad = [1, 2, 3]

Проверим, лежит ли оценка 8 в плохих:

In [17]:
8 in bad
Out[17]:
False

Применим отрицание:

In [18]:
8 not in bad # верно!
Out[18]:
True