Тернарный оператор, от слова "три". Если очень просто, то в одну строку пишут три операнда. В зависимости от выполнения условия одного из операндов, возвращается второй или третий операнд. Ну а если "не просто" - то тогда на Вики.
Для сравнения, я попробовал обычную и альтернативную форму записи 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-е.
Написано по мотивам статьи с Хабра.
Комментариев нет:
Отправить комментарий