Условная инструкция if/else в Python
- Общий формат инструкции if
- Простейшая форма инструкции if
- Управляющая конструкция if/else
- Ключевое слово elif
- Трехместное выражение if/else
- Краткие итоги параграфа
- Вопросы и задания для самоконтроля
Общий формат инструкции if
Как и в большинстве других языков программирования в Python присутствует условная инструкция if , которая в общем случае имеет следующий формат записи:
Если первое условие истинно (результатом вычислений будет True ), то выполняется первый блок инструкций. Если первое условие ложно (результатом вычислений будет False ), то проверяются по-очереди все условия необязательных блоков elif и, если найдется истинное условие, то выполняется соответствующий этому условию блок инструкций. Если все дополнительные условия окажутся ложными, выполнится запасной блок инструкций else . Обязательным является только блок инструкций if , остальные блоки могут быть опущены. При этом разрешается использовать любое количество блоков elif , но только один блок else .
Простейшая форма инструкции if
Давайте для наглядности начнем с простейшей условной инструкции. Она содержит только основную часть if , в которой вычисляется значение единственного условного выражения и по результатам вычисления принимается решение – если конечный результат имеет значение True , интерпретатор выполняет указанный фрагмент кода, а если конечный результат имеет значение False , интерпретатор пропускает данный фрагмент кода и начинает выполнять инструкцию, следующую за текущей условной инструкцией (см. пример №1 ).
# Определяем польз. функцию. def my_div(x, y): # Осуществляем проверку условного выражения. if y == 0: # Выходим из функции и возвращаем None. return None # Возвращаем частное. return x/y # Вызываем функцию и публикуем результаты. print(my_div(2, 4)) print(my_div(2, 0))
Пример №1. Условная инструкция if и ее синтаксис.
Отметим, что в теле инструкции if разрешается использовать как другие вложенные инструкции if , так и вложенные управляющие конструкции других видов, например, циклов или обработчиков ошибок, что значительно повышает возможности организации условного выполнения различных частей программы.
Управляющая конструкция if/else
Если в зависимости от результата проверки условного выражения нужно сделать выбор и выполнить только один из двух допустимых наборов инструкций, инструкция if может быть расширена при помощи ключевого слова else , которое в случае, когда значение условия равно False , позволяет выполнить альтернативный набор инструкций (см. пример №2 ).
# Определяем польз. функцию. def my_func(x, y): # Проверим равенство чисел. if x == y: print(x, 'равно', y, end='\n\n') else: print(x, 'не равно', y,) # Вызываем функцию. my_func(1.34, 1.43) my_func(3, 3.0)
1.34 не равно 1.43 3 равно 3
Пример №2. Расширение инструкции if за счет ключевого слова else.
Обратите внимание, что в нашем примере ложный результат имеет ценность для программы и не должен быть потерян. Поэтому для его обработки мы и добавили в условную инструкцию блок else .
Ключевое слово elif
Когда требуется выполнить выбор не из двух, а из нескольких подходящих вариантов, инструкция if может быть расширена при помощи требуемого количества ключевых слов elif , которые по сути служат для объединения двух соседних инструкций if (см. пример №3 ).
# Определяем польз. функцию. def my_price(f): # Осуществляем проверку условных выражений. if f == 'яблоки': m = '1.9 руб/кг.' elif f == 'апельсины': m = '3.4 руб/кг.' elif f == 'бананы': m = '2.5 руб/кг.' elif f == 'груши': m = '2.8 руб/кг.' else: m = 'Нет в продаже!' # Возвращаем результат. return m # Вызываем функцию и публикуем результаты. print(my_price('апельсины')) print(my_price('груши')) print(my_price('мандарины'))
3.4 руб/кг. 2.8 руб/кг. Нет в продаже!
Пример №3. Расширение инструкции if за счет ключевых слов elif.
Как видим, при использовании ключевых слов elif выполнение альтернативного блока инструкций происходит лишь тогда, когда соответствующее блоку условие имеет значение True , а условные выражения всех предыдущих блоков в результате вычислений дают False . В случае отсутствия совпадений, выполняется набор инструкций дополнительного блока else .
Здесь будет уместным заметить, что в Python отсутствует инструкция switch , которая может быть вам знакома по другим языкам программирования (например, PHP ). Ее роль берет на себя конструкция if/elif/else , а также ряд дополнительных приемов программирования, иммитирующих поведение этой инструкции.
Трехместное выражение if/else
Как и в случае с инструкцией присваивания, использовать условные инструкции в выражениях запрещается. Но иногда ситуации бывают настолько простые, что использование многострочных условных инструкций становится нецелесообразным. Именно по этим причинам в Python была введена специальная конструкция, называемая или , которая может использоваться непосредственно в выражениях (см. пример №4 ).
# Инициализируем переменную. x = 5 # Составляем условие. if x == 0: s = False else: s = True # Выводим результат. print(s) # Используем выражение if/else. s = True if x != 0 else False # Получим тот же результат. print(s)
Пример №4. Использование трехместного выражения if/else (часть 1).
Таким образом, трехместное выражение if/else дает тот же результат, что и предыдущая четырехстрочная инструкция if , но выглядит выражение проще. В общем виде его можно представить как A = Y if X else Z . Здесь, как и в предыдущей инструкции, интерпретатор обрабатывает выражение Y , только если условие X имеет истинное значение, а выражение Z обрабатывается, только если условие X имеет ложное значение. То есть вычисления здесь также выполняются по сокращенной схеме (см. пример №5 ).
# Инициализируем переменные. x, y = 0, 3 res = True if x > y else False # Выведет False. print(res) res = y/x if x != 0 else 'Division by zero!' # Выведет 'Division by zero!'. print(res) res = True if 'a' in 'abc' else False # Выведет True. print(res)
False Division by zero! True
Пример №5. Использование трехместного выражения if/else (часть 2).
Рассмотренные нами примеры достаточно просты, поэтому получившиеся трехместные выражения легко поместились в одну строку. В более сложных случаях, когда выражения получаются громоздкими и читабельность кода падает, лучше не мудрить, а использовать полноценную условную инструкцию if/else .
Краткие итоги параграфа
- Условная инструкция if/elif/else дает нам возможность изменить ход программы за счет выполнения только одного определенного блока инструкций, соответствующего первому попавшемуся ключевому слову с истинным условием. Обязательным является только ключевое слово if , остальные ключевые слова конструкции могут быть опущены. При этом разрешается использовать любое количество ключевых слов elif , но только одно ключевое слово else .
- Так как в Python использовать инструкции непосредственно в выражениях не разрешается, для проверки условий в них было введено специальное трехместное выражение if/else . Его еще называют тернарным оператором if/else . В общем виде конструкцию можно представить как A = Y if X else Z . Вычисления здесь выполняются по сокращенной схеме: интерпретатор обрабатывает выражение Y , только если условие X истинно, а выражение Z обрабатывается, только если условие X ложно.
Вопросы и задания для самоконтроля
1. Какие из частей условной инструкции if/elif/else не являются обязательными? Показать решение.
Ответ. Обязательным является только блок if , блоки elif и else используются по необходимости.
2. Как в языке Python можно оформить множественное ветвление? Показать решение.
Ответ. Прямым способом оформления множественного ветвления следует считать использование инструкции if с несколькими блоками elif , т.к. в Python отсутствует инструкция switch , которая присутствует в некоторых других языках программирования (например, PHP ).
3. Какой из представленных форматов соответствует условной инструкции: if/elseif/else , if/elif/else , A = Y if X else Z ? Показать решение.
4. Исправьте в коде три ошибки. Показать решение.
a = 3547 b = 155 if a/b > 25 print('a/b > 25') else if a/b > 15: print('a/b > 15') else: print('a/b
a = 3547 b = 155 if a/b > 25 print('a/b > 25') else if a/b > 15: print('a/b > 15') else: print('a/b
a = 3547 b = 155 # Не забываем про двоеточие. if a/b > 25: print('a/b > 25') # Правильно elif. elif a/b > 15: print('a/b > 15') else: # А где закрывающая скобка? print('a/b
5. Дополнительные упражнения и задачи по теме расположены в разделе «Алгоритмы ветвления» нашего сборника задач и упражнений по языку программирования Python .
Быстрый переход к другим страницам
okpython.net Copyright © 2022-2023.
Инструкция if-elif-else, проверка истинности, трехместное выражение if/else
Условная инструкция if-elif-else (её ещё иногда называют оператором ветвления) - основной инструмент выбора в Python. Проще говоря, она выбирает, какое действие следует выполнить, в зависимости от значения переменных в момент проверки условия.
Синтаксис инструкции if
Сначала записывается часть if с условным выражением, далее могут следовать одна или более необязательных частей elif, и, наконец, необязательная часть else. Общая форма записи условной инструкции if выглядит следующим образом:
Простой пример (напечатает 'true', так как 1 - истина):
Чуть более сложный пример (его результат будет зависеть от того, что ввёл пользователь):
Конструкция с несколькими elif может также служить отличной заменой конструкции switch - case в других языках программирования.
Проверка истинности в Python
- Любое число, не равное 0, или непустой объект - истина.
- Числа, равные 0, пустые объекты и значение None - ложь
- Операции сравнения применяются к структурам данных рекурсивно
- Операции сравнения возвращают True или False
- Логические операторы and и or возвращают истинный или ложный объект-операнд
Истина, если оба значения X и Y истинны.
Истина, если хотя бы одно из значений X или Y истинно.
Трехместное выражение if/else
довольно короткая, но, тем не менее, занимает целых 4 строки. Специально для таких случаев и было придумано выражение if/else:
В данной инструкции интерпретатор выполнит выражение Y, если X истинно, в противном случае выполнится выражение Z.
Для вставки кода на Python в комментарий заключайте его в теги
- Книги о Python
- GUI (графический интерфейс пользователя)
- Курсы Python
- Модули
- Новости мира Python
- NumPy
- Обработка данных
- Основы программирования
- Примеры программ
- Типы данных в Python
- Видео
- Python для Web
- Работа для Python-программистов