Внимание! На этой странице вы найдете материал урока из архивного курса по Python. Курс был написан в 2024 году и по-прежнему актуален для начинающих разработчиков.
Теоретический материал сохранен в исходном виде, а практические задания с автоматической проверкой вынесены в отдельные интенсивы и задания.
Полный список уроков доступен по тегу Архивный курс по Python и на странице первого урока.
- Условная конструкция
ifпозволяет делать ответвления программы, тем самым вы можете управлять ходом выполнения программы. - Ключевые слова
if,elifиelseиспользуются в условной конструкции. - Ключевое слово
ifвсегда указывается первым в условной конструкции. - С помощью
elifможно добавить другие условия, которые будут выполняться после проверки условияif. - Блок
elseвыполнится, только если все условия вifиelifложные. - В Python блок кода оформляется обязательным отступом.
- К истинным значениям в Python относятся любое число не равно нулю, любая непустая строка и любой непустой объект.
- Оператор
inпозволяет определить наличие элемента в последовательности, например, в строке или списке. - Булевы операторы
and,orиnotвозвращают один из операндов, а не булево значение. - Внутри условных инструкций можно использовать другие инструкции, включая условные.
В предыдущем уроке мы научились форматировать строки с использованием метода format() и f-строк. Сейчас немного отвлечемся от работы с типами, чтобы лучше понять необходимость теории из следующего урока.
Условная конструкция if
Условная конструкция if позволяет делать ответвления программы при выполнении заданного условия. Мы ее немного касались в ознакомительном уроке, а сейчас рассмотрим более подробно.
В этой конструкции ключевое слово if является обязательным, в свою очередь, ключевые слова elif и else используются при необходимости. Важные моменты:
- ключевое слово
ifвсегда указывается первым в условной конструкции; - после ключевого слова
ifдолжно быть условие и, если оно истинно (возвращаетTrue), то выполняется код в блоке; - с помощью
elifможно добавить другие условия, которые будут выполняться после проверки условияif; elifне может существовать безif. Ключевое словоelifуказывается только послеif;- блок
elseвыполнится, только если все условия вifиelifложные (возвращаютFalse).
Проще рассмотреть на примере:
a = 2
if (a == 2):
print("Два")
elif (a == 3):
print("Три")
else:
print("Другое число")
Как вы уже поняли, программа выведет «Два», так как условие a == 2 истинно (т.е. возвращает True):
print(a == 2) # => True
Обратите внимание, после записанного в скобках условия ставится знак «двоеточие», и последующий блок кода оформляется с отступом (табуляцией). В Python блок кода оформляется обязательным отступом, иначе интерпретатор сочтет это ошибкой. Например:
# Правильно
if (a == 2):
print("Цифра")
print("Два")
# Неправильно
if (a == 2):
print("Цифра")
print("Два")
В следующем примере будет выведено слово «Цифра», только если a равно 2, а слово «Два» будет выводиться независимо от условия:
if (a == 2):
print("Цифра")
print("Два")
Теперь разберемся, что в Python является истинным (True), а что ложным (False).
К истинным значениям в Python относятся:
- любое число не равно нулю;
- любая непустая строка;
- любой непустой объект.
К ложным значениям в Python относятся:
- ноль (
0); None;- пустая строка;
- пустой объект.
К примеру, узнать пустой список или нет можно так:
l = [1, 2, 3, 4, 5]
if (l):
print("Не пуст")
else:
print("Пуст")
Операторы сравнения уже были рассмотрены ранее. Чтобы не возвращаться вам назад, вот они:
a == b– проверяет, равны ли оба операнда и возвращает истину, если это так;a != b– проверяет, равны ли оба операнда и возвращает истину, если они различны;a > b– возвращает истину, если левый операнд (a), больше правого операнда (b);a < b– возвращает истину, если левый операнд (a), меньше правого операнда (b);a >= b– возвращает истину, если левый операнд (a), больше или равен правому операнду (b);a <= b– возвращает истину, если левый операнд (a), меньше или равен правому операнду (b).
Обратите внимание, равенство проверяется при помощи двойного символа равно. Один символ «равно» обозначает операцию присвоения. Еще один пример с операторами сравнения:
if a > b:
print("a больше b")
elif a < b:
print("b больше a")
else:
print("a и b равны")
Кстати, круглые скобки, которые использовались в условиях первого примера, необязательны, т.е. можно записывать условие без скобок.
Оператор in
В Python есть удобный оператор in, позволяющий определить наличие элемента в последовательности, например, в строке или списке:
'a' in 'abcdef' # => True
'Hello' in 'Hello, World!' # => True
1 in [1, 2, 3, 4, 5] # => True
Операторы and, or и not
Булевы операторы and, or и not не возвращают булево значение, они всегда вернут один из операндов, например:
'a' and 'b' # => b
'a' and 'b' and 'c' # => c
При использовании оператора and, значения проверяются слева направо. Мы уже выяснили, что является истинной, а что ложью. Символы a, b, c относятся к «любой непустой строке». Итак, если все элементы истинны, то будет возвращен последний элемент.
0 and 'b' # => 0
'a' and [] and 'c' # => []
В примере выше есть ложные объекты. В таком случае оператор and вернет первый ложный объект. В случае с оператором or, будет возвращаться первый истинный объект и, только если все ложные, вернет последний ложный объект.
Еще раз скажу: операторы and и or возвращают не True и False, а один из операндов (хотя, в условной конструкции это будет значить одно и то же).
Оператор not инвертирует логическое значение операнда. Если операнд ложен, то будет возвращено True, иначе False. Оператор not в Python возвращает True или False, а не операнд:
not 0 and 'b' # => b
'a' and not []# => True
Вложенные условные инструкции
В Python, как и в других языках программирования, внутри условных инструкций можно использовать другие инструкции, включая те же условные. Т.е. вы можете вкладывать одну инструкцию в другую до бесконечности, в пределах разумного, конечно. Главное не забывать про обязательные отступы:
Пример
if (a > 0): # 0 пробелов
if (a < 3): # 4 пробела или одна табуляция
if (a == 2): # 8 пробелов или две табуляции
... # 12 пробелов или три табуляции
В этом уроке мы научились использовать условную инструкцию if-elif-else в Python, вспомнили перечень истинных и ложных объектов и познакомились с операторами in, and, or и not, которые могут существенно упростить написание кода.
В следующем уроке мы будем учиться определять к какому типу данных относится объект и преобразовывать из одного в другой.
Переходите к следующему уроку курса, а так же не забудьте посмотреть новый материал на Codebra по тегу Python.
