Урок 66 — Задания: Основы ООП

📁 Блок: Python Fundamentals / ООП ⏱️ Время изучения: ~40 мин 🎯 Сложность: Средняя
#class #pass #def #print #return

⚡ Кратко

Вопросы для самопроверки и две практические задачи: класс User и класс Product. Решения — в следующем разделе.

📝 Задания для закрепления (часть 1)

1. Выберите верные утверждения об объектно-ориентированном программировании

  • a. Каждый объект создаётся по шаблону, называемому классом.
  • b. Метод класса может использовать self для доступа к данным объекта.
  • c. Метод — это поле объекта.
  • d. ООП объединяет данные и поведение в единую структуру.

2. Что делает метод __init__?

  • a. Создаёт объект
  • b. Создаёт ссылку на объект
  • c. Создаёт класс
  • d. Создаёт поля объекта

3. Сопоставьте понятие с описанием

ПонятиеОписание
1. классa. Ссылка на объект
2. selfb. Всё, что доступно через точку у объекта
3. атрибутc. Функция внутри класса
4. методd. Шаблон, по которому создаются объекты

📝 Задания для закрепления (часть 2)

4. Сопоставьте элементы с описанием

ЭлементОписание
1. self.title = titlea. Метод класса
2. def show_info(self):b. Создание объекта
3. book = Book("1984", "Orwell")c. Доступ к полю
4. book.titled. Инициализация поля

📝 Практическая работа

Задача 1. Класс User

Создайте класс User, который описывает пользователя.

  • У каждого пользователя должны быть поля username, email и счётчик входов login_count.
  • Добавьте метод show_info(), который выводит имя и почту пользователя.
  • Добавьте метод login(), который приветствует пользователя и фиксирует новый вход.
  • Добавьте метод get_logins(), возвращающий текущее количество входов.
  • Создайте пользователя, выполните несколько входов и выведите информацию.

Пример вывода:

------------------------------
Пользователь: alice
Почта: alice@example.com
------------------------------
alice вошёл в систему
alice вошёл в систему
Количество входов: 2

Задача 2. Класс Product

Реализуйте класс Product, который описывает товар в магазине.

  • Каждый объект должен хранить название (name) и цену (price).
  • Добавьте метод apply_discount(), который уменьшает цену на заданный процент и выводит информацию о размере применённой скидки.
  • Добавьте метод info(), который выводит название и текущую цену товара.
  • Проверьте работу класса: создайте товар, выведите его данные, примените скидку, затем снова выведите информацию.

Пример вывода:

Название: Молоко
Цена: 120
Применяем скидку 25%
Новая цена: 90.0

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

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

Вопрос 1

Что такое класс?

Вопрос 2

Что означает self?

Вопрос 3

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

Вопрос 4

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

Вопрос 5

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

Вопрос 6

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

Вопрос 7

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