Посмотреть все уроки курса
Выбрать другой урок из курса
Поиск по сайту
Теория урока

9. Условная инструкция if-elif-else в Python

Оглавление урока

В предыдущем уроке мы научились форматировать строки с использованием метода 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("Пуст")

Операторы сравнения уже были рассмотрены в этой практике. Чтобы не возвращаться назад, вот они:

  1. a == b – проверяет, равны ли оба операнда и возвращает истину, если это так;
  2. a != b – проверяет, равны ли оба операнда и возвращает истину, если они различны;
  3. a > b – возвращает истину, если левый операнд (a), больше правого операнда (b);
  4. a < b – возвращает истину, если левый операнд (a), меньше правого операнда (b);
  5. a >= b – возвращает истину, если левый операнд (a), больше или равен правому операнду (b);
  6. 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, которые могут существенно упростить написание кода.

Похожие уроки и записи блога

Первое знакомство с PythonЗнакомство с Python
Типы данных в PythonЗнакомство с Python
Обработка исключений (try/except) в PythonЗнакомство с Python
Работа с файлами в Python Знакомство с Python
Написание модулей в PythonЗнакомство с Python
Модули в PythonЗнакомство с Python
Погружение в PythonЗнакомство с Python
Структуры данных в PythonЗнакомство с Python
Аргументы и параметры функций, операторы * и ** в PythonЗнакомство с Python
<
×
>
Раздел «Знакомство с Python»
1. УРОК: Первое знакомство с Python
2. ТЕСТ: Небольшой первый тест по Python
3. УРОК: Переменные и комментарии в Python
4. ТЕСТ: Тест по основным понятиям и работе с сайтом
Самые основы
5. УРОК: Погружение в Python
6. ТЕСТ: Второй вводный тест по Python
7. УРОК: Типы данных в Python
8. УРОК: Форматирование строк в Python
УРОК 9. Условная инструкция if-elif-else в Python
Вы здесь
10. УРОК: Преобразование и проверка типов в Python
11. УРОК: Вызов методов цепочкой в Python
Циклы
12. УРОК: Первое знакомство с циклами в Python
13. ТЕСТ: Тест по циклам Python
Немного рандома
14. УРОК: Генерируем случайные числа на Python
15. ТЕСТ: Тест по модулю random Python
Структуры данных
16. УРОК: Структуры данных в Python
17. ТЕСТ: Тест по структурам Python
Списки
18. УРОК: Списки в Python
19. ТЕСТ: Тест по спискам Python
20. УРОК: Изменение списка на месте в Python
21. УРОК: Дополнительно про списки в Python
22. УРОК: Конкатенация и сортировка списков в Python
23. ТЕСТ: Заключительный тест по спискам в Python
Словари
24. УРОК: Словари в Python
25. ТЕСТ: Тест по словарям Python
26. УРОК: Словари и списки: еще глубже
27. УРОК: Перебор элементов словаря в Python
28. УРОК: Внутреннее устройство и сортировка словаря в Python
29. УРОК: Методы словарей и функция len() в Python
30. ТЕСТ: Заключительный тест по словарям
Множества
31. УРОК: Множества в Python
32. УРОК: Методы и особенности множеств в Python
33. УРОК: Отношения между множествами и операции над ними
34. ТЕСТ: Тест по методам множеств в Python
35. ТЕСТ: Тест по операциям над множествами в Python
Кортежи
36. УРОК: Кортежи в Python
37. УРОК: Более подробно о кортежах в Python
38. ТЕСТ: Тест по кортежам в Python
Снова циклы и немного исключений
39. УРОК: Контроль хода выполнения программы в Python
40. УРОК: Цикл while в Python
41. УРОК: Операторы break, continue и pass в Python
42. УРОК: Циклы for/else и while/else в Python
43. УРОК: Обработка исключений (try/except) в Python
44. ТЕСТ: Тест по циклам и управляющим конструкциям
45. ТЕСТ: Тест по обработке исключений
Работаем с файлами
46. УРОК: Работа с файлами в Python
47. УРОК: Оператор with/as для работы с файлами в Python
48. ТЕСТ: Тест по работе с файлами в Python
Итераторы
49. УРОК: Итераторы в Python
50. УРОК: List/dict/set comprehensions (включения) в Python
51. ТЕСТ: Тест по включениям в Python
Функции
52. УРОК: Основы функций в Python
53. ТЕСТ: Тест по основам функций в Python
54. УРОК: Область видимости в Python
55. ТЕСТ: Тест по области видимости в Python
56. УРОК: Замыкания и оператор nonlocal в Python
57. ТЕСТ: Тест по замыканиям и nonlocal в Python
58. УРОК: Аргументы и параметры функций, операторы * и ** в Python
59. ТЕСТ: Тест по аргументам и параметрам функций в Python
60. ТЕСТ: Тест по операторам * и ** в Python
61. УРОК: Анонимные функции: выражения lambda
62. УРОК: Функциональное программирование: map, filter и reduce
63. ТЕСТ: Тест по парадигме функционального программирования
64. УРОК: Генераторы и оператор yield в Python
65. ТЕСТ: Тест по генераторным функциям и выражениям
Модули
66. УРОК: Модули в Python
67. УРОК: Написание модулей в Python
68. УРОК: Пакеты модулей в Python
69. УРОК: Еще о возможностях модулей в Python
70. ТЕСТ: Тест по модулям и пакетам в Python
Объектно-ориентированное программирование
71. УРОК: Основы объектно-ориентированного программирования (ООП) в Python
72. ТЕСТ: Тест по основам ООП в Python
73. УРОК: Основы написания классов в Python
74. УРОК: Продолжаем написание классов в Python
75. УРОК: Более глубокое изучение классов в Python
76. УРОК: Что дальше?
Впервые на сайте Codebra?

Извините за это всплывающее окно, меня они тоже раздражают.

Образовательный ресурс codebra.ru полностью посвящен программированию. Все курсы и уроки находятся на главной странице. Ради интереса можете посмотреть на содержимое курсов по Python, HTML и CSS, JavaScript, C++ и другие, размещенные на главной странице.

Если что-то не нашли, то воспользуйтесь поиском по сайту, который находится на главной странице в самом верху.

Удачи в обучении!

Закрыть окно