Перейти к основному содержимому

Сокращённый If

Когда у if только одна инструкция для выполнения, её можно разместить в той же строке.

Примечание: условие всё равно должно заканчиваться двоеточием :.

Пример

if, записанный в одной строке:
Prompt
Напишите на Python однострочную инструкцию if, которая выводит сообщение, если a больше b.
Вывод: полная программа на Python

Сокращённый If ... Else

Та же идея работает с одной инструкцией для if и одной для else: они могут занимать одну строку.

В Python такая форма называется условным выражением, но вы можете услышать и название «тернарный оператор».

Пример

Вывод одного из двух значений с помощью однострочного if/else:
Prompt
Напишите на Python однострочный if/else с условным выражением, который выводит "A" или "B" в зависимости от результата сравнения.
Вывод: полная программа на Python

Присваивание значения с помощью If ... Else

Однострочный if/else также может выбрать значение, которое вы сохраните в переменной.

Общий шаблон выглядит так:

Пример

Prompt
Напишите программу на Python, которая с помощью тернарного выражения присваивает переменной большее из двух значений и выводит его.
Вывод: полная программа на Python
main.py
variable = value_if_true if condition else value_if_false

Несколько условий в одной строке

Условные выражения можно объединять в цепочку. Только остановитесь раньше, чем строку станет трудно читать:

Пример

Три возможных результата из одной строки:
Prompt
Напишите однострочник на Python с цепочкой условных выражений, который выводит "A", "=" или "B" в зависимости от того, больше ли a, чем b, равно ему или меньше.
Вывод: полная программа на Python

Практические примеры

Тернарные операторы особенно хорошо подходят для простых присваиваний и инструкций return.

Пример

Выбор большего из двух чисел:
Prompt
Напишите программу на Python, которая с помощью тернарного оператора находит и выводит максимальное из двух чисел.
Вывод: полная программа на Python

Пример

Использование значения по умолчанию:
Prompt
Напишите программу на Python, которая с помощью тернарного оператора задаёт отображаемое имя по умолчанию, если имя пользователя пустое.
Вывод: полная программа на Python

Когда использовать сокращённый If

Сокращённый if или тернарный оператор — хороший выбор, когда:

  • и условие, и действия простые
  • код становится легче читать
  • переменной быстро нужно значение, зависящее от условия

Важно: более короткий код не всегда лучше, поэтому не полагайтесь на эту форму при сложных условиях. Когда логика сложная или занимает несколько строк, обычную инструкцию if-else читать легче.