Рубрики
Без рубрики

Если-то-другое в одной линии Python [Video + Interactive Code Shell]

Наслаждайтесь этим руководством о том, как сжать операторы IF-ELS и IF-ELIF-ELIF, в одной строке кода Python.

Автор оригинала: Chris.

Самый простой тройной оператор х если с остальными y Возвращает выражение х Если логическое выражение C . оценивает Правда Отказ В противном случае, если выражение C . оценивает Ложь Торговый оператор возвращает альтернативное выражение y .

Вот минимальный пример:

var = 21 if 3<2 else 42
# var == 42

Хотя вы прочитаете статью, чтобы увеличить вашу мощность одной вкладыши, вы можете слушать мое подробное объяснение видео:

Введение и обзор

Python настолько мощный, вы даже можете сжать целые алгоритмы в одну строку кода. Таким образом, возникает естественный вопрос: можете ли вы написать условные операторы, если они иначе в одной строке кода? Эта статья исследует этот критический вопрос о критическом вопросе во всех деталях.

Можно ли написать оператор IF-ELSE-ELSE в одной строке кода?

Да, вы можете написать Большинство Если операторы в одной строке Python используют любой из следующих способов:

  1. Напишите Если утверждение без ветки Как Python One-Liner: Если 42 в диапазоне (100): Печать («42») Отказ
  2. Если вы хотите установить переменную, используйте Темнарный оператор : X Если «Джон» в «Менем имени Джонас» еще «Боб» Отказ
  3. Если вы хотите условно выполнить функцию, все еще используйте Темнарный оператор : Печать («42»), если 42 в диапазоне (100) еще печатается («21») Отказ

В предыдущем абзаце вы неохотно узнали о Темнарном операторе в Python. Темнарный оператор – это то, что вы увидите в самых современных базах кода, поэтому обязательно понимать его тщательно, чтение следующего раздела этой статьи.

Перед вами и я двигаюсь дальше, позвольте мне представить нашу совершенно новую книгу Python Python одноклассники .

Если вам нравятся одноклассники, вы будете любить книгу. Это научит вам все, что нужно знать о Одно строка кода Python. Но это тоже Введение в компьютерную науку , наука о данных, машин обучения и алгоритмы. Вселенная в одной строке Python!

Больше с меньшей: Купить книгу на одну лайнера Python

Книга выпускается в 2020 году с помощью книги по программированию по всему мировому классу «Ностарх» (Сан-Франциско).

Давайте погрузимся в три разных пути Напишите оператор IF-ELSE-ELSE как Python One-Liner .

Статьи по теме : Python One Line Terrary

Как написать оператор if-thane-else, как Python One-Liner?

Давайте посмотрим на все способы, как вы можете написать оператор IF-Tood в одной строке. Тривиальный ответ – просто написать его в одной строке, но только если у вас нет ветви для других:

Случай 1: у вас нет ветви для других

Рассмотрим следующий фрагмент кода, где вы проверяете номер 42, будь то в диапазоне номеров:

>>> if 42 in range(100):
>>>     print("42")
42

Этот фрагмент кода действительно будет напечатать вывод, потому что целое число 42 попадает в диапазон номеров от 0 до 99. Но как мы можем написать это, если заявление в одной строке кода? Просто используйте одну строку, как это:

>>> if 42 in range(100): print("42")
42

Два утверждения идентичны, так что это способ сделать это – если вы можете написать условное тело в одну строку кода.

Однако, если вы попытаетесь стать слишком причудливым, он не будет работать:

>>> if 42 in range(100): print("42") else print("21")
# "Error: invalid syntax"

Python не может справиться с этим: интерпретатор бросает ошибку «Неверный синтаксис».

Но не волнуйтесь, есть обходной путь: тройной оператор.

Случай 2: у вас есть ветка еще И вы хотите условно назначить значение

Если у вас есть ветка иначе, и вы хотите условно назначить значение переменной, Темнарный оператор – ваш друг. Скажем, вы хотите написать следующее утверждение, если в остальном в одной строке кода:

>>> if "Jon" in "My name is Jonas":
>>>     x = "Alice"
>>> else:
>>>     x = "Bob"
>>> print(x)
Alice

Как строка "Джон" появляется в строке «Меня зовут Джонас» переменная х будет иметь значение "Алиса" Отказ Можем ли мы написать это в одну строку? Конечно, используя так называемый Тернарный оператор Отказ

x = "Alice" if "Jon" in "My name is Jonas" else "Bob"

Темнарный оператор очень интуитивно понятен. Просто прочитайте, если слева направо И вы поймете его значение. Мы назначаем стоимость "Алиса" к переменной х В случае выполнения следующего состояния: "Джон" в «Меня зовут Джонас» Отказ В противном случае мы назначаем строку "Боб" к переменной x .

Тровый синтаксис оператора : Три операнда написаны как х если с остальными y который читает как «return x Если C . еще вернуть y “. Давайте написать это более интуитивно, как:

 if  else 
Возврат экспрессии оператора в случае, если условие оценивается к истинному
Условие, которое определяет, нужно ли возвращать или ветку.
Возврат экспрессии оператора в случае, если условие оценивает ложь

Случай 3: Что, если мы не хотим назначать какое-либо значение Но у нас есть ветвь еще?

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

if 42 in range(100):
    print("42")
else:
    print("21")

Проблема в том, что у нас нет возврата. Так мы можем все еще использовать Тернарный оператор? Как оказывается, мы можем. Давайте напишем это, если-то оператор еще в одной строке:

>>> print("42") if 42 in range(100) else print("21")
42

Мы используем тройник оператора. Возвращаемое значение Печать () Функция просто нет. Но мы не заботимся о возвращенном значении, поэтому мы не храним его в любой переменной. Мы заботимся только о выполнении функции печати на случай, если состояние IF будет выполнено.

Как написать оператор IF-ELIF – еще в одной строке Python?

В предыдущих абзацах вы узнали, что мы можем написать оператор IF-EULL в одной строке кода. Но мы можем сделать то же самое с утверждением ELIF, если у нас есть несколько условий?

Конечно вы можете!

(Если вы сомневаетесь в том, можете ли вы сделать XYZ в одной строке Python, просто предположим, что можете.)

Скажем, вы хотите написать следующее условие, если в одном случае код:

>>> x = 42
>>> if x > 42:
>>>     print("no")
>>> elif x == 42:
>>>     print("yes")
>>> else:
>>>     print("maybe")
yes

Элиф Филиал выигрывает: мы распечатаем вывод «Да» в оболочку. Но как сделать это в одной строке кода? Просто используйте Ternary Operator с оператором ELIF не будет работать (он бросит ошибку синтаксиса).

Ответ прост: гнездо двух тройных операторов, как так:

>>> print("no") if x > 42 else print("yes") if x == 42 else print("maybe")
yes

Если значение x больше 42, мы печатаем «нет» в оболочку. В противном случае мы выполняем остаток кода (который является тройным оператором сама). Если значение x равно 42, мы печатаем «Да», иначе «возможно».

Поэтому, вложении нескольких тройных операторов, мы сможем значительно увеличить нашу власть Python One-Liner!

Похожие вопросы

Давайте быстро обрабатываем кучу соответствующих вопросов:

Python One Liner: Как написать, если без остального?

Мы уже видели пример выше: мы просто пишем заявление, если в одной строке без использования оператора Ternary: Если 42 в диапазоне (100): Печать («42») Отказ Python идеально в состоянии понять простое, если заявление без ветки остального в одной строке кода.

Python One Liner: Как написать ELIF?

Мы не можем напрямую написать ветку ELIF в одной строке кода Python. Но вместо этого мы можем создавать два тройных оператора:

>>> 100 if x > 42 else 42 if x == 42 else 0
42

Python, если иначе одноклассник: Что это возвращает?

Темнарный оператор всегда возвращает результат условной оценки. Опять же, фрагмент кода 100 если x> 42 else 42 Возвращает целочисленное значение 42.

Если вы выполняете только функции в Темнарном операторе, он вернет Нет ценить.

Похожие видеоуронение

Оставьте силу единой строки кода-получи ваш Python One-listers заказать сейчас! (Amazon Link)

Куда пойти отсюда

Знание маленьких уловки одноклассников Python, таких как Тернарный оператор имеет жизненно важное значение для вашего успеха на языке Python. Каждый экспертный кодер знает их в конце концов, это то, что делает их очень продуктивными.

Если вы хотите узнать язык Python by Heart, присоединяйтесь к моим бесплатным курсу электронной почты Python. Это на 100% на основе бесплатных чис-листов Python и урокам Python. Это весело, легко, и вы можете оставить в любое время. Попытайся!

Работая в качестве исследователя в распределенных системах, доктор Кристиан Майер нашел свою любовь к учению студентов компьютерных наук.

Чтобы помочь студентам достичь более высоких уровней успеха Python, он основал сайт программирования образования Finxter.com Отказ Он автор популярной книги программирования Python одноклассники (Nostarch 2020), Coauthor of Кофе-брейк Python Серия самооставленных книг, энтузиаста компьютерных наук, Фрилансера и владелец одного из лучших 10 крупнейших Питон блоги по всему миру.

Его страсти пишут, чтение и кодирование. Но его величайшая страсть состоит в том, чтобы служить стремлению кодер через Finxter и помогать им повысить свои навыки. Вы можете присоединиться к его бесплатной академии электронной почты здесь.

Оригинал: “https://blog.finxter.com/if-then-else-in-one-line-python/”