📝 Задания

⚡ Кратко: задания

Функцию передают без скобок: square, а не square().

Lambda - короткая анонимная функция из одного выражения.

Функции высшего порядка принимают или возвращают другие функции.

map() преобразует элементы, filter() отбирает элементы, reduce() сводит коллекцию к одному значению.

any() возвращает True при хотя бы одном истинном элементе.

all() возвращает True, если все элементы истинны; для пустой коллекции это True.

sorted(), min() и max() принимают key-функцию для критерия сравнения.

Сложную lambda лучше заменить именованной функцией def.

Топ-3 ошибки: передать результат функции вместо ссылки; забыть list() вокруг map/filter; писать слишком сложную lambda вместо понятной функции.

Задание 1. Список квадратов чисел

Сформируйте список квадратов без циклов и list comprehension.

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

Ожидаемый результат: [1, 4, 9, 16, 25]

Задание 2. Сортировка по возрасту

Отсортируйте список кортежей (имя, возраст) по возрасту.

people = [("Mike", 19), ("Nancy", 35), ("Charlie", 23), ("Oscar", 33), ("Eve", 29), ("Frank", 33), ("Bob", 20), ("Grace", 27), ("Isabella", 19), ("Jack", 24), ("Alice", 25), ("Kevin", 28), ("Laura", 31), ("Diana", 30), ("Henry", 19)]

Ожидаемый результат: возраст по возрастанию

Задание 3. Сортировка по возрасту и имени

Отсортируйте по убыванию возраста, а при одинаковом возрасте - по имени.

people = [...]  # используйте список из предыдущего задания

Ожидаемый результат: Nancy первой, затем Frank и Oscar

Задание 4. Данные о сотрудниках

Отфильтруйте сотрудников старше 30 лет и увеличьте их зарплату на 20%.

employees = [{"name": "Alice", "age": 25, "salary": 50000}, {"name": "Bob", "age": 35, "salary": 60000}, {"name": "Charlie", "age": 40, "salary": 70000}]

Ожидаемый результат: Bob и Charlie с увеличенной salary

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

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

Вопрос 1

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

Вопрос 2

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

Вопрос 3

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

Вопрос 4

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

Вопрос 5

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

Вопрос 6

Чем отличается = от ==?

Вопрос 7

Что делает print()?