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

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

Практикум 9 закрепляет set, dict, frozenset и вложенные структуры.

Для чисел, кратных 3 или 5, подходит set comprehension с условием.

Общие ключи двух словарей удобно искать через пересечение set(dict1) & set(dict2).

Список строк превращается в словарь длин через dict comprehension.

Подмножество словаря означает совпадение пар ключ-значение, а не только ключей.

Пустые значения можно удалить comprehension с проверкой truthiness.

frozenset нужен как ключ, когда набор элементов не должен зависеть от порядка.

В задачах с вводом отделяйте чистую логику от input(), чтобы проще тестировать.

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

Задание 1. Числа кратные 3 или 5

Создайте множество чисел, кратных 3 или 5.

numbers = [16, 18, 1, 6, 3, 2, 6, 2, 14, 3, 20, 15, 19, 4, 18, 15, 15, 4, 20, 18]

Задание 2. Проверка уникальности ключей

Выведите одинаковые ключи двух словарей или '-'.

dict1 = {"a": 1, "b": 2, "c": 3}; dict2 = {"b": 5, "d": 7, "a": 8}

Задание 3. Строки с длиной

Преобразуйте список строк в словарь длин.

words = ["apple", "banana", "cherry", "date"]

Задание 4. Проверка подмножества

Проверьте, что пары первого словаря содержатся во втором.

dict1 = {"a": 1, "b": 2}; dict2 = {"a": 1, "b": 2, "c": 3}

Задание 5. Удаление пустых значений

Удалите пары, где значение None, пустая строка или пустой список.

data = {"a": None, "b": 2, "c": "", "d": [], "e": [1, 2]}

Задание 6. Потерянные страницы книги

Замените None на "Страница потеряна".

book = {1: "Начало истории", 2: None, 3: "Глава 1", 4: None, 5: "Глава 2"}

Задание 7. База оценок студентов

Сохраните оценки и средний балл во вложенном словаре.

grades = {...}

Задание 8. Рецепты по ингредиентам

Сгруппируйте рецепты по набору ингредиентов и найдите доступные.

recipes = {...}

Задание 9. Одинаковые предметы

Сгруппируйте студентов по frozenset предметов.

students = {...}

Задание 10. Перевод и расширение словаря

Дайте перевод, а если слова нет, предложите добавить его.

english_words = {...}

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

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

Вопрос 1

Что важнее всего в практическом задании?

Вопрос 2

Как безопаснее двигаться в практикуме?

Вопрос 3

Что делать, если решение не совпадает с ожидаемым результатом?

Вопрос 4

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

Вопрос 5

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

Вопрос 6

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