Python конденсируется, если /else в одну строку? Возможный дубликат: Терминальный оператор Python Включение простой инструкции if-then в одну строку Есть ли способ сжать оператор if/else в одну строку в Python? Я часто вижу всевозможные ярлыки и подозреваю, что он может применяться и здесь. Ответ 1 Пример метода Python для выполнения "тройных" выражений: i = 5 if a > 7 else 0 означает if a > 7: i = 5 else: i = 0 Это действительно полезно при использовании списков или иногда в операторах return, иначе я не уверен, что это помогает в создании читаемого кода. Вопрос о читаемости был подробно рассмотрен в этом недавнем вопросе SO лучше, чем использование инструкции if-else в python. Он также содержит различные другие умные (и несколько запутанные) способы выполнения одной и той же задачи. Это стоит прочитать только на основе этих сообщений. Ответ 2 Python if может использоваться как тернарный оператор: >>> 'true' if True else 'false' 'true' >>> 'true' if False else 'false' 'false' Ответ 3 Только для использования в качестве значения: x = 3 if a==2 else 0 или return 3 if a==2 else 0 Ответ 4 Существует условное выражение: a if cond else b но это выражение, а не утверждение. В выражениях if, if (или elif или else) могут быть записаны в той же строке, что и тело блока, если блок является одним из следующих: if something: somefunc() else: otherfunc() но это обескураживается как вопрос форматирования.
Ответ 1 Пример метода Python для выполнения "тройных" выражений: i = 5 if a > 7 else 0 означает if a > 7: i = 5 else: i = 0 Это действительно полезно при использовании списков или иногда в операторах return, иначе я не уверен, что это помогает в создании читаемого кода. Вопрос о читаемости был подробно рассмотрен в этом недавнем вопросе SO лучше, чем использование инструкции if-else в python. Он также содержит различные другие умные (и несколько запутанные) способы выполнения одной и той же задачи. Это стоит прочитать только на основе этих сообщений.
Ответ 2 Python if может использоваться как тернарный оператор: >>> 'true' if True else 'false' 'true' >>> 'true' if False else 'false' 'false'
Ответ 3 Только для использования в качестве значения: x = 3 if a==2 else 0 или return 3 if a==2 else 0
Ответ 4 Существует условное выражение: a if cond else b но это выражение, а не утверждение. В выражениях if, if (или elif или else) могут быть записаны в той же строке, что и тело блока, если блок является одним из следующих: if something: somefunc() else: otherfunc() но это обескураживается как вопрос форматирования.