Подтвердить что ты не робот

Инструкция Python для короткого слова "if-else"

Существует ли версия Python следующего оператора if - else в С++ или аналогичном утверждении:

  int t = 0;
  int m = t==0?100:5;
4b9b3361

Ответ 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

Это эквивалентно первому.