Курс → Урок 37 → 📝 Задания
📝 Практические задания
⚡ Кратко 📚 Подробно
⚡ Кратко: задания Практикум 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?
Имена с пробелами для читаемости
snake_case для переменных и функций
camelCase для всех имён
UPPERCASE для локальных переменных
Вопрос 5
Зачем использовать f-strings в современном Python?
Они делают форматирование строк читаемым и компактным
Они автоматически валидируют типы
Они заменяют обработку исключений
Они ускоряют импорт модулей
Вопрос 6
Когда полезен ранний возврат из функции?
Когда нужно скрыть ошибку
Когда функция не должна ничего возвращать
Когда хочется сделать код длиннее
Когда нужно быстро обработать особый случай и не углублять вложенность