Перейти к содержанию

Python: управление выполнением программы

Условные операторы

if

Оператор if позволяет разветвлять поведение кода в зависимости от текущего состояния. Применение условного оператора начинается с ключевого слова if, за которым следует выражение, которое оценивается как True или False и двоеточие.

x = 1

if x == 1:
    message = 'Привет'
    print(message)

# напечатает 'Привет'

Все объекты в Python оцениваются как True или False. Значит, вы можете использовать их как условные выражения в if. Объекты, которые оцениваются как False:

  • Константы None и False;
  • Любое числовое значение, равное нулю;
  • Что-то с нулевой длиной. Сюда входят пустые последовательности, такие как пустая строка '', пустые список [], кортеж () и словарь {}.

Почти все остальное оценивается как True.

x = [1, 2, 3]

if x:
    print('Непустой список оценивается как True')

# напечатает 'Непустой список оценивается как True'

Чтобы запустить альтернативный блок кода, когда управляющее выражение принимает значение False, используйте оператор else. Он состоит из ключевого слова else, за которым следует двоеточие и блок кода, который будет выполняться, только если предшествующее ему управляющее выражение оценивается как False.

x = 5

if x > 10:
    print('x > 10')
else:
    print('x <= 10')

# напечатает 'x <= 10'

Условные операторы можно вкладывать друг в друга.

balance = 1000
account_status = None

if balance > 0:
    account_status = 'Баланс положителен'
else:
    if balance == 0:
        account_status = 'На балансе пусто'
    else:
        account_status = 'Нам должны'

print(account_status)  # напечатает 'Баланс положителен'

В большинстве случаев, логические выражения в if компонуются на основе таких операторов:

  • проверка равенства == и неравенства !=;
  • операторы сравнения <, <=, >=, >;
  • логические операторы and и or;
  • оператор отрицания not;
  • проверка наличия элемента in.
if x == 10 and y != 5:
    ...

if x <= 10:
    ...

if (x or y) and (a or b):
    ...

if not (x > 10) and y <= 5:
    ...

if x in ['один', 'два', 'три']:
    ...

Моменты, на которые необходимо обратить внимание:

  • Большинство межтиповых операций проверки на равество возвращают False
    '1' == 1
    
    # False
    
  • А межтиповые операции сравнения выдают ошибку
    '1' > 1
    
    # Ошибка TypeError: '>' not supported between instances of 'str' and 'int
    

Однострочный if

Однострочный оператор if (его еще называют тернарным оператором) позволяет писать утверждения if-else в виде простых однострочных операторов. Синтаксис такого оператора выглядит так

[true_expr] if [condition] else [false_expr]

Оператор возвращает значение true_expr, если выражение condition оценивается как True. Иначе, возвращает False. Однострочный оператор if позволяет компактно записывать часто встречающийся блок кода

if condition:
    x = true_expr
else:
    x = else_expr

# и дальше используем x в программе

В отличие от основного if, у однострочного оператора секция else обязательна.

a = 10
b = 20

x = 'сумма больше 40' if a + b > 40 else 'сумма меньше или равна 40'
print(x) # напечатает 'сумма меньше или равна 40'

x = 'сумма больше 40' if a + b > 40
# возникнет ошибка SyntaxError: expected 'else' after 'if' expression

Циклы

for

Скоро появится

while

Скоро появится