If ... esle - тернарный оператор - Python


Тернарный оператор, от слова "три". Если очень просто, то в одну строку пишут три операнда. В зависимости от выполнения условия одного из операндов, возвращается второй или третий операнд. Ну а если "не просто" - то тогда на Вики.

Для сравнения, я попробовал обычную и альтернативную форму записи If ... else.

Синтаксис. Почему-то первым значением идёт False, вторым True и только потом само условие:
(False, True)[condition]

Задаём простой вопрос, обрабатываем и выдаём ответ:
question = input("Do you like ternary operators? ") answer = ("Nonsense", "Python rulezz!!")[question == "Yes"] print(answer)

Хорошо, теперь посмотрим обычную записать:
question = input("Do you like ternary operators? ") if question == "Yes": print("Python rulezz!!") else: print("Nonsense")

В итоге обе команды делают одно и тоже. Но, как мне кажется, обычная форма намного проще для понимания. Каждый момент описан отдельной строкой. Также можно вносить изменения и не боятся очень длинных строк. Например вот так:
if question.lower() == "yes":

Если такой впихнуть в альтернативную версию - то будет немного не удобно.

Файл с кодами на GitHub-е.

Написано по мотивам статьи с Хабра.

Комментариев нет:

Отправка комментария