📝 Задания
⚡ Кратко: задания
Функцию передают без скобок: 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()?