← Назад к вопросам

Что такое else?

1.0 Junior🔥 151 комментариев
#Python Core

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI22 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

else в Python — Различные применения

else в Python — это универсальный блок, который выполняется, когда основное условие НЕ выполняется. Но else работает не только с if!

1. else с if

Основной и самый известный вариант:

age = 15

if age >= 18:
    print('Ты взрослый')
else:
    print('Ты ребёнок')

# Output: Ты ребёнок

2. elif — цепочка условий

grade = 85

if grade >= 90:
    print('Отлично')
elif grade >= 80:
    print('Хорошо')
elif grade >= 70:
    print('Удовлетворительно')
else:
    print('Неудовлетворительно')

# Output: Хорошо

3. else с циклом for

Очень полезно, но часто упускается. else выполняется, если цикл завершился НОРМАЛЬНО (без break):

numbers = [1, 2, 3, 4, 5]

# Поиск числа 10
for num in numbers:
    if num == 10:
        print('Найдено!')
        break
else:
    print('Числа 10 нет в списке')

# Output: Числа 10 нет в списке

# Если бы было 5:
for num in numbers:
    if num == 5:
        print('Найдено!')
        break
else:
    print('Числа 5 нет в списке')

# Output: Найдено! (else НЕ выполнится, потому что был break)

Это эквивалентно:

found = False
for num in numbers:
    if num == 10:
        found = True
        break

if not found:
    print('Числа 10 нет в списке')

4. else с циклом while

То же самое, но для while:

i = 0
while i < 3:
    print(i)
    i += 1
else:
    print('Цикл завершился нормально')

# Output:
# 0
# 1
# 2
# Цикл завершился нормально

# С break else не выполнится:
i = 0
while i < 10:
    if i == 2:
        print('Вышли из цикла')
        break
    i += 1
else:
    print('Цикл завершился нормально')  # Это НЕ выполнится

# Output: Вышли из цикла

5. else с try-except

else в try-except выполняется, если НЕ было исключений:

try:
    result = 10 / 2
except ZeroDivisionError:
    print('Деление на ноль!')
else:
    print(f'Результат: {result}')

# Output: Результат: 5.0

# Со сбоем:
try:
    result = 10 / 0
except ZeroDivisionError:
    print('Деление на ноль!')
else:
    print(f'Результат: {result}')

# Output: Деление на ноль! (else НЕ выполнится)

6. try-except-else-finally

Полная конструкция:

def read_file(filename):
    try:
        file = open(filename, 'r')
        content = file.read()
    except FileNotFoundError:
        print('Файл не найден')
    else:
        print('Файл успешно прочитан')
        print(f'Размер: {len(content)} символов')
    finally:
        print('Завершение операции')
        if 'file' in locals():
            file.close()

read_file('data.txt')

Практический пример: Поиск в базе

def find_user(user_id, users_list):
    """Поиск пользователя в списке"""
    
    for user in users_list:
        if user['id'] == user_id:
            print(f'Найден: {user["name"]}')
            return user
    else:
        print(f'Пользователь с ID {user_id} не найден')
        return None

users = [
    {'id': 1, 'name': 'Алиса'},
    {'id': 2, 'name': 'Боб'},
    {'id': 3, 'name': 'Виктор'},
]

find_user(2, users)  # Output: Найден: Боб
find_user(999, users)  # Output: Пользователь с ID 999 не найден

else в list comprehension

Это не совсем else, это условное выражение:

numbers = [1, 2, 3, 4, 5]

# Условное выражение (тернарный оператор)
result = [x * 2 if x % 2 == 0 else x * 3 for x in numbers]
# [3, 4, 9, 8, 15]
# Чётные * 2, нечётные * 3

Шпаргалка

# if-else
if condition:
    code_if_true
else:
    code_if_false

# for-else
for item in iterable:
    if break_condition:
        break
else:
    # Выполнится, если НЕ было break
    code

# while-else
while condition:
    if break_condition:
        break
else:
    # Выполнится, если НЕ было break
    code

# try-except-else
try:
    code
except Exception:
    code
else:
    # Выполнится, если НЕ было исключения
    code

На интервью

Ответи так:

"else в Python используется в разных контекстах. Основной — с if. Но менее известный факт: else можно использовать с for/while циклом, и он выполнится, если цикл завершился без break. Также else работает в try-except, выполняясь только если не было исключений. Это очень полезно для более читаемого кода без флагов."

Что такое else? | PrepBro