📝 Практические задания

⚡ Кратко

Идите от простых задач к сложным.

После каждого решения проверьте исходные данные и ожидаемый вывод.

Если задача меняет исходный список, явно убедитесь, что изменился именно он.

Топ-3 ошибки: путать ссылку и копию; ожидать порядок там, где его нет; усложнять выражение, когда обычный цикл читается лучше.

Задание 1. Взрослые

Что выведет [age for age in ages if age >= 18] для ages = [12, 17, 24, 18, 30]?

[24, 18, 30]

Задание 2. Форматирование имён

Преобразуйте имена длиннее 3 символов в lower(), остальные в upper().

names = ['John', 'Anna', 'Zoe', 'Mark']

Задание 3. Разворот матрицы

Умножьте каждый элемент матрицы на 2 и получите плоский список.

matrix = [[7, 8], [9, 10], [11, 12]]

Задание 4. zip разной длины

Что вернёт list(zip([10, 20, 30], [1, 2]))?

[(10, 1), (20, 2)]

Задание 5. Очередь deque

Определите состояние очереди после append(1), append(2), popleft(), append(3).

deque([2, 3])

Задание 6. Зеркальные строки больше трёх

Решите практическую задачу из источника.

words = ['cat', 'elephant', 'dog', 'bird', 'lion', 'ant']

Задание 7. Суммы элементов

Создайте список сумм строк матрицы.

matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

Проверка понимания

Выберите один вариант ответа. После клика правильный ответ подсветится зелёным.

Вопрос 1

Что хранит dict?

Вопрос 2

Что гарантирует set?

Вопрос 3

Какой стиль имён переменных обычно рекомендует PEP 8?

Вопрос 4

Зачем использовать f-strings в современном Python?

Вопрос 5

Когда полезен ранний возврат из функции?

Вопрос 6

Что делает аннотация типа в Python?

Вопрос 7

Как лучше обрабатывать ожидаемую ошибку преобразования?