Инструкция Python для короткого слова "if-else"
Существует ли версия Python следующего оператора if
- else
в С++ или аналогичном утверждении:
int t = 0;
int m = t==0?100:5;
Ответы
Ответ 1
m = 100 if t == 0 else 5 # Requires Python version >= 2.5
m = (5, 100)[t == 0] # Or [5, 7][t == 0]
Обе вышеприведенные строки приведут к тому же.
В первой строке используется версия Python "тройного оператора", доступная с версии 2.5, хотя документация Python относится к ней как Conditional Expressions
.
Вторая строка представляет собой небольшую взломать для обеспечения встроенных функций во многих (всех важных) способах, эквивалентных ?:
, найденных на многих других языках (таких как C и С++).
Документация Python - 5.11. Условные выражения
Ответ 2
Конструкция, на которую вы ссылаетесь, называется тернарный оператор. У Python есть версия (начиная с версии 2.5), например:
x if a > b else y
Ответ 3
t = 0
if t == 0:
m = 100
else:
m = 5
Красивая лучше, чем уродливая.
Явный лучше, чем неявный.
Простой лучше, чем сложный.
Из PEP 20.
Или, если вы действительно, действительно должен (работает в Python >= 2.5):
t = 0
m = 100 if t == 0 else 5
Ответ 4
Существует также:
m = t==0 and 100 or 5
Так как 0 - значение фальшивости, мы могли бы написать:
m = t and 5 or 100
Это эквивалентно первому.