воскресенье, 10 ноября 2013 г.

Тернарный оператор на python

Нравилась мне эта конструкция в .net. Её аналог в мире python:
i = 5 if a > 7 else 0
Если верить этому, то транслируется в:
if a > 7:
   i = 5
else:
   i = 0

5 комментариев:

  1. вот так красивее и нагляднее запись:

    i = a > 7 and 5 or 0

    ОтветитьУдалить
    Ответы
    1. Насчёт нагляднее, есть вопросы. Коллега, в меньшей степени знакомый с питоном попросил так не писать)))

      Удалить
    2. Да конечно, красивее и нагляднее. А как вам такое:

      i = a > 7 and [] or [1]

      Если a > 7, вместо пустого списка в i будет список с еденицей.

      Так что нет, это не "красивее и нагляднее", это говнокод.

      Удалить
  2. Этот комментарий был удален администратором блога.

    ОтветитьУдалить
  3. Этот комментарий был удален администратором блога.

    ОтветитьУдалить