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

⚡ Кратко

Идите от простых задач к сложным.

После каждого решения проверьте исходные данные и ожидаемый вывод.

Если задача меняет исходный список, явно убедитесь, что изменился именно он.

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

Задание 1. Уникальность

Что выведет my_set = {5, 10, 15, 5, 20}?

Множество с уникальными элементами {5, 10, 15, 20}; порядок вывода не гарантирован.

Задание 2. Нехешируемый список

Что произойдёт при my_set = {my_list}, если my_list = [1, 2, 3]?

Будет TypeError: unhashable type: 'list'.

Задание 3. add дубликата

Что изменится после my_set.add(3), если 3 уже есть?

Ничего.

Задание 4. remove отсутствующего

Что сделает my_set.remove(0), если 0 нет?

Вызовет KeyError.

Задание 5. discard

Как удалить элемент без ошибки, если его нет?

my_set.discard(element).

Задание 6. Объединение

Что вернёт {1, 2, 3} | {3, 4, 5}?

{1, 2, 3, 4, 5}.

Задание 7. intersection_update

Как изменить множество, оставив только общие элементы?

set1.intersection_update(set2).

Задание 8. Подмножество

Что вернёт {1, 2}.issubset({1, 2, 3})?

True.

Задание 9. isdisjoint

Что вернёт {5, 6, 7}.isdisjoint({8, 9, 10})?

True.

Задание 10. Практика

Создайте список уникальных символов строки без пробелов.

text = 'hello world'

Задание 11. Практика

Найдите элементы без повторов, присутствующие в обоих списках.

list1 = [1, 2, 3, 4, 5]; list2 = [3, 4, 5, 6, 7]

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

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

Вопрос 1

Что хранит dict?

Вопрос 2

Что гарантирует set?

Вопрос 3

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

Вопрос 4

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

Вопрос 5

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

Вопрос 6

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

Вопрос 7

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