Python трехместный условный оператор

Условная инструкция if/else в Python

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 и ее синтаксис.

Читайте также:  Авторизация через телеграмм php

Отметим, что в теле инструкции 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

Python 3 логотип

Условная инструкция 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-программистов

Источник

Оцените статью