Курс → Урок 36 → 📝 Задания
📝 Практические задания
⚡ Кратко 📚 Подробно
⚡ Кратко: задания fromkeys() создаёт словарь с одинаковым значением для набора ключей.
Если передать fromkeys() изменяемый объект, все ключи будут ссылаться на один и тот же объект.
get() безопасно возвращает значение или default вместо KeyError.
setdefault() возвращает значение ключа, а если ключа нет - добавляет его.
keys(), values() и items() возвращают динамические view objects.
Вложенные словари позволяют хранить иерархичные данные.
copy() копирует словарь поверхностно, deepcopy() копирует вложенные объекты.
Dict comprehension создаёт словарь в одну читаемую конструкцию.
Топ-3 ошибки: использовать dict.fromkeys(keys, []) для независимых списков; ожидать, что list(dictionary.keys()) будет обновляться вместе со словарём; путать shallow copy и deep copy во вложенных структурах.
Задание 1. fromkeys без ловушки Создайте словарь с ключами a, b, c и независимыми пустыми списками.
keys = ["a", "b", "c"]Задание 2. get() Получите city из словаря пользователя с default Unknown.
user = {"name": "Alice", "age": 30}Задание 3. setdefault() Сгруппируйте имена студентов по названию группы.
pairs = [("Python", "Alice"), ("Python", "Bob"), ("QA", "Eva")]Задание 4. items() Выведите строки key: value для словаря.
person = {"name": "Alice", "age": 30, "city": "New York"}Задание 5. Вложенный доступ Добавьте ученика Daisy в class1.
school = {...}Задание 6. Dict comprehension Создайте словарь квадратов чисел.
numbers = [1, 2, 3, 4]Задание 7. Сравнение Проверьте, равны ли словари с разным порядком ключей.
dict1 = {"a": 1, "b": 2}; dict2 = {"b": 2, "a": 1}Задание 8. ДЗ: распределение Разделите студентов по группам успеваемости.
students = {"Аня": 92, "Боря": 76, "Ваня": 65, "Галя": 48, "Дима": 88, "Ева": 54}
Проверка понимания
Выберите один вариант ответа. После клика правильный ответ подсветится зелёным.
Вопрос 1
Что хранит dict?
Пары ключ-значение
Только уникальные значения
Только отсортированные числа
Только функции
Вопрос 2
Что гарантирует set?
Сохранение дублей
Доступ по индексу
Порядок сортировки по алфавиту
Уникальность элементов
Вопрос 3
Какой стиль имён переменных обычно рекомендует PEP 8?
UPPERCASE для локальных переменных
Имена с пробелами для читаемости
snake_case для переменных и функций
camelCase для всех имён
Вопрос 4
Зачем использовать f-strings в современном Python?
Они ускоряют импорт модулей
Они делают форматирование строк читаемым и компактным
Они автоматически валидируют типы
Они заменяют обработку исключений
Вопрос 5
Когда полезен ранний возврат из функции?
Когда нужно быстро обработать особый случай и не углублять вложенность
Когда нужно скрыть ошибку
Когда функция не должна ничего возвращать
Когда хочется сделать код длиннее
Вопрос 6
Что делает аннотация типа в Python?
Всегда проверяет тип во время выполнения
Компилирует код в машинный язык
Запрещает использовать другие библиотеки
Документирует ожидаемый тип и помогает инструментам анализа
Вопрос 7
Как лучше обрабатывать ожидаемую ошибку преобразования?
Игнорировать ошибку
Перезапустить интерпретатор
Поймать конкретное исключение, например ValueError
Поймать все исключения пустым except