Вы когда-нибудь слышали о написании инструкции Python if в одной строке? Здесь мы исследуем несколько способов сделать именно это, включая использование условных выражений в Python.
if Оператор является одним из самых фундаментальных операторов в Python. В этой статье мы узнаем, как написать Python if в одной строке.
if Является ключевой частью в написании кода на Python. Это позволяет разработчикам контролировать поток и логику своего кода на основе информации, полученной во время выполнения. Однако многие разработчики Python не знают, что они могут уменьшить длину и сложность своих if инструкций, записав их в одной строке.
Мы начнем с краткого описания того, как работают инструкции Python if. Затем мы рассмотрим несколько примеров того, как писать if инструкции в одной строке. Давайте начнем!
Как работает оператор if в Python
Давайте начнем с основ. if Оператор в Python используется для определения, является ли условие True или False. Затем эта информация может быть использована для выполнения определенных действий в коде, по существу управляя его логикой во время выполнения.
Структура базового if оператора следующая:
if <expression>:
<perform_action>
<expression>Это код, который принимает значение True или False. Если этот код принимает значение True, то выполняется приведенный ниже код (представленный <perform_action>).
Python использует пробелы, чтобы указать, какие строки контролируются if инструкцией. if Инструкция управляет всеми строками с отступом под ней. Обычно отступ устанавливается в четыре пробела.
В качестве простого примера приведенный ниже код выводит сообщение, тогда и только тогда, когда текущая погода солнечная:
weather = "солнечный"
if weather == "солнечный":
print("Мне нужно прогуляться на улицу!")
# выход:
# Мне нужно прогуляться на улицу!
if Инструкция в Python имеет два необязательных компонента: elif инструкцию, которая выполняется, только если предыдущие if/elif инструкции являются False; и else инструкцию, которая выполняется, только если все предыдущие if/elif инструкции являются False. Хотя у нас может быть столько elif инструкций, сколько мы захотим, у нас может быть только одна else инструкция в самом конце блока кода.
Вот базовая структура:
if <expression_01>:
<perform_action_01>
elif <expression_02>: # выполняется только в том случае, если expression_01 имеет значение False
<perform_action_02>
elif <expression_03>:
<perform_action_03>
# ... Добавляйте столько "жизней", сколько захотите
else: # выполняется только в том случае, если все приведенные выше выражения являются ложными
<perform_another_action>
</perform_another_action>
Вот как выглядит наш предыдущий пример после добавления операторов elif и else. Измените значение weather переменной, чтобы выводилось другое сообщение:
weather = "солнечный"
if weather == "солнечный":
print("Мне нужно прогуляться на улицу!")
elif weather == "облачный":
print("Я не уверен, что будет дождь. Может быть, я прогуляюсь?")
elif weather == "дождливый":
print("Идет дождь. Я останусь дома.")
else:
print("Я не знаю, какая сейчас погода...")
# output:
# Мне нужно прогуляться на улицу!
Как написать Python if в одной строке
При написании if оператора на Python (наряду с необязательными операторами elif и else) используется много пробелов. Некоторым людям может показаться запутанным или утомительным следовать каждому оператору и соответствующим строкам с отступом.
Чтобы преодолеть это, есть трюк, который многие разработчики Python часто упускают из виду: напишите if оператор в одной строке!
Хотя это и не стандарт, Python позволяет нам писать инструкцию if и связанное с ней действие в одной строке. Вот базовая структура:
if <expression>: <perform_action></perform_action></expression>
Как вы можете видеть, изменилось не так много. Нам просто нужно “вытянуть” строку с отступом <perform_action> справа от символа двоеточия (:). Это так просто!
Давайте проверим это на реальном примере. Приведенный ниже код работает так же, как и ранее, несмотря на то, что if инструкция находится в одной строке. Протестируйте это и убедитесь сами:
weather = "солнечный"
if weather == "солнечный": print("Мне нужно прогуляться на улицу!")
# output:
# Мне нужно прогуляться на улицу!
Написание инструкции Python if с несколькими действиями в одной строке
Это все хорошо, но что, если моя if инструкция имеет несколько действий под своим контролем? При использовании стандартного отступа мы разделяем различные действия в строках с несколькими отступами, как показано в структуре ниже:
if <expression>:
<perform_action_01>
<perform_action_02>
<perform_action_03>
Можем ли мы сделать это в одной строке? Неожиданный ответ - да! Мы используем точки с запятой для разделения каждого действия в одной строке, как если бы они были размещены в разных строках.
Вот как выглядит структура:
if <expression>: <perform_action_01>; <perform_action_02>; <perform_action_03>
И пример этой функциональности:
weather = "солнечный"
if weather == "солнечный": print("Солнечно."); print("Мне нужно прогуляться на улицу!"); print("Солнце очень теплое.")
# output:
# Солнечно.
# Мне нужно прогуляться на улицу!
# Солнце очень теплое.
Вы заметили, как каждый вызов print() функции отображается в отдельной строке? Это указывает на то, что мы успешно выполнили несколько действий из одной строки. Приятно!
Написание полного блока Python if / elif / else с использованием отдельных строк
Возможно, вы предвидели это, но мы даже можем написать операторы elif and else каждый в одной строке. Для этого мы используем тот же синтаксис, что и при написании if инструкции в одной строке.
Вот общая структура:
if <expression_01>: <perform_action_01>
elif <expression_02>: <perform_action_02>
elif <expression_03>: <perform_action_03>
else : <perform_another_action>
</perform_action_03></perform_action_02></perform_action_01>
Выглядит просто, не так ли? В зависимости от содержания ваших выражений и действий, вам может показаться, что эту структуру легче читать и понимать по сравнению с блоками с отступами.
Вот наш предыдущий пример полного if/elif/else блока, переписанного в виде отдельных строк:
weather = "sunny"
if weather == "солнечный": print("Мне нужно прогуляться на улицу!")
elif weather == "облачный": print("Я не уверен, что будет дождь. Может быть, я прогуляюсь?")
elif weather == "дождливый": print("Идет дождь. Я останусь дома.")
else: print("Я не знаю, какая сейчас погода...")
# output:
# Мне нужно прогуляться на улицу!
Использование условных выражений Python для записи блока if / else в одной строке
Есть еще последний трюк для написания Python if в одной строке. Условные выражения в Python (также известные как троичные операторы Python) могут запускать if/else блок в одной строке.
Условное выражение еще более компактно! Помните, что для написания блока, содержащего оба оператора if и else в нашем последнем примере, потребовалось не менее двух строк.
В отличие от этого, вот как структурируется условное выражение:
value = <value_if_true> if <expression> else <value_if_false>
Поначалу следовать синтаксису несколько сложнее, но основная идея заключается в том, что <expression> это тест. Если тест оценивается как True, то <value_if_true> это результат. В противном случае выражение приводит к <value_if_false>.
Как вы можете видеть, условные выражения в конце всегда приводят к одному значению. Они не являются полной заменой if/elif/else блока. На самом деле, в них вообще не может быть elif инструкций. Однако они наиболее полезны при определении одного значения в зависимости от одного условия.
Взгляните на приведенный ниже код, который определяет значение is_baby в зависимости от того, младше пяти лет или нет:
age = 8
if age < 5:
is_baby = True
else:
is_baby = False
print(is_baby)
# output:
# False
Это точный вариант использования условного выражения! Вот как мы перепишем этот if/else блок в одной строке:
age = 8
is_baby = True if age < 5 else False
print(is_baby)
# output:
# False
Намного проще!
Заключительные слова
Мы надеемся, что теперь вы знаете много способов написать Python if в одной строке. Мы дошли до конца статьи, но не прекращайте практиковаться сейчас!