Да, вы можете. Каждая часть в троичном выражении a if b else c
является выражением, которое снова может быть троичным, таким образом, вы можете связать множество троичных слов друг с другом, например, a if b else c if d else e
. Без скобок порядок оценки будет слева направо, т. Е. Так же, как вы читали бы его, но вы также можете добавить парены и, например, использовать троичную форму для условия. Является ли это очень читабельным, это другой вопрос.
Говоря о читабельности: хотя вы можете объединять их в цепочку, вы можете подумать о том, чтобы не объединять их все в одну строку для лучшего компромисса между краткостью и читабельностью:
def factorial(n):
return -1 if n < 0 else \
1 if n < 2 else \
n * factorial(n-1)
Помните продолжение строки \
или ставьте скобки вокруг всего выражения. Однако обратите внимание, что ни continue
, ни break
нельзя использовать, поскольку они работают только внутри циклов.