📝 Задания для самопроверки
⚡ Кратко
Выполните задания по порядку: сначала базовые, затем практические. Перед просмотром решений проверьте код на нескольких примерах.
Вопрос 1. Сопоставьте понятия
Сопоставьте понятие с описанием:
- 1. Абстрактный класс
- 2.
@abstractmethod - 3.
ABC
- a. Определяет обязательный метод без реализации
- b. Класс, от которого нельзя создать объект напрямую
- c. Базовый класс для создания абстрактных классов
Вопрос 2. Docstrings
Укажите верные утверждения о документации классов:
- a. Документация пишется после объявления класса в тройных кавычках.
- b. Документация классов должна содержать список атрибутов и методов.
- c. Документация обязательна для всех методов.
- d. Документация доступна через атрибут
__doc__.
Вопрос 3. Найдите ошибку
from abc import ABC, abstractmethod
class Vehicle(ABC):
@abstractmethod
def move(self):
print("Moving")
class Car(Vehicle):
def drive(self):
print("Driving")
c = Car()
c.move()
Вопрос 4. Итерация
Укажите верные утверждения:
- a.
__next__()должен выбрасыватьStopIteration, когда элементы закончились. - b. Без
__iter__()объект нельзя использовать в циклеfor.
Вопрос 5. Сопоставьте методы сравнения
Сопоставьте метод с оператором:
- 1.
__eq__() - 2.
__lt__() - 3.
__ge__() - 4.
__ne__() - 5.
__gt__() - 6.
__le__()
- a.
== - b.
!= - c.
> - d.
< - e.
<= - f.
>=
Вопрос 6. __getitem__ и __setitem__
Укажите верные утверждения:
- a.
__getitem__используется для получения значения по индексу или ключу. - b.
__getitem__используется для получения значения по ключу. - c.
__setitem__позволяет удалять элемент из объекта. - d.
__setitem__автоматически запрещает пустые значения.
Вопрос 7. Сопоставьте арифметические методы
Сопоставьте метод с оператором:
- 1.
__iadd__() - 2.
__mul__() - 3.
__truediv__() - 4.
__isub__() - 5.
__add__()
- a.
+ - b.
-= - c.
/ - d.
+= - e.
*
Вопрос 8. Назначение методов
Сопоставьте метод с его назначением:
- 1.
__call__() - 2.
__bool__() - 3.
__iadd__() - 4.
__str__()
- a. Сложение с присваиванием
- b. Делает объект вызываемым
- c. Возвращает строковое представление объекта
- d. Определяет, как объект ведёт себя в логических выражениях
Практика 1. Степень числа
Создайте класс Power, который при создании принимает степень, а при вызове как функции obj(x) возвращает x в эту степень.
square = Power(2)
cube = Power(3)
print(square(4)) # 16
print(cube(2)) # 8
Практика 2. Журнал оценок
Создайте класс StudentGrades, в котором:
- можно добавлять оценку по предмету:
grades["Math"] = 5; - повторное присваивание добавляет ещё одну оценку к тому же предмету;
- получение
grades["Math"]возвращает список всех оценок; "Math" in gradesпроверяет, сдавался ли предмет;len(grades)возвращает количество предметов.
Проверка понимания
Выберите один вариант ответа. После клика правильный ответ подсветится зелёным.
Вопрос 1
Как лучше использовать summary-урок?
Вопрос 2
Что показывает хороший результат после повторения блока?
Вопрос 3
Какой вопрос стоит задать себе после каждого ответа?
Вопрос 4
Какой стиль имён переменных обычно рекомендует PEP 8?
Вопрос 5
Зачем использовать f-strings в современном Python?
Вопрос 6
Когда полезен ранний возврат из функции?
Вопрос 7
Что делает аннотация типа в Python?
Вопрос 8
Как лучше обрабатывать ожидаемую ошибку преобразования?