Питон классы задачи примеры

Классы¶

Класс — шаблон, описывающий правила создания и поведение объекта.

Объект — экземпляр, созданный на основе шаблона.

Поле — используется для хранения значения.

Метод — функция, связанная с классом.

Магический метод — зарезервированные методы, отвечающие за поведение объекта.

Преобразование к строке str(obj)

class Person: # Объявление класса def __init__(self, name, age): # Метод инициализации или по другому конструктор self.age = age # Установка значений полей self.name = name def __str__(self): return f"self.name> is self.age> years old" person = Person('John', 20) # Создание экземпляра person.name = 'James' # Установка значения поля print(person) 

Здесь __init__ определяет как будет создаваться новый объект и какие параметры будет принимать при создании.

__str__ определяет как экземпляр будет печататься на экране с помощью функции print и преобразовываться к строке с помощью str .

Задачи¶

  1. Создать класс, описывающий человека. Должны быть поля для имени, фамилии и возраста. Создать экземпляр и вывести информацию о человеке.
  2. Доработать предыдущий класс, чтобы вся информация о человеке была доступна при вызове str над экземпляром.
  3. Добавить метод greet, вызов которого будет выводить в консоль информацию о человеке в формате «Привет! Меня зовут Петров Василий, мне 12 лет» .
  4. Добавить поле grades , в котором будет храниться список оценок. Создать список учеников, заполняя оценки каждого случайными числами.
  5. Вывести информацию об учениках в порядке убывания среднего балла. Подсчёт среднего балла вынести в отдельный метод.
  6. Создайте класс Point , экземпляры которого будут создаваться из координат x и y .
  7. Создайте класс прямоугольник — Rectangle . Метод __init__ принимает две точки — левый нижний и правый верхний угол. Каждая точка представлена экземпляром класса Point . Реализуйте методы вычисления площади и периметра прямоугольника.
  8. Добавьте в класс Rectangle метод contains . Метод принимает точку и возвращает True , если точка находится внутри прямоугольника и False в противном случае.

© Copyright Revision d00c0df4 .

Versions latest Downloads html On Read the Docs Project Home Builds Free document hosting provided by Read the Docs.

Источник

10.5. Самостоятельная работа¶

При выполнении заданий используйте заготовки решений: -> Репозиторий.

В данном разделе НЕ должны использоваться сторонние модули для реализации заданной функциональности. Например, при реализации класса Дата не нужно использовать готовый модуль datetime и т.д.

10.5.1. Простой класс¶

Выберите класс под номером ЦИФРА_СБ + 1 (Таблица 10.5.1).

Таблица 10.5.1 — Классы и их описание (простой класс) ¶

Геометрический вектор на плоскости

Прежде чем перейти к написанию кода:

  • изучите предметную область объекта и доступные операции;
  • для каждого поля и метода продумайте его область видимости, а также необходимость использования свойств.

При реализации класс должен содержать:

  • __init__(self, . ) — инициализация с необходимыми параметрами;
  • __str__(self) — представление объекта в удобном для человека виде;
  • специальные методы для возможности сложения, разности и прочих операций, которые класс должен поддерживать;
  • поля, необходимые для выбранного класса;
  • метод save(self, filename) — сохраняет объект в JSON-файл filename ;
  • метод load(self, filename) — загружает объект из JSON-файла filename ;
  • прочие методы (не менее 3-х) и свойства, выявленные на этапе изучения класса.

Реализуйте класс в отдельном модуле, а также создайте main.py , который бы тестировал все его возможности.

10.5.2. Класс-контейнер¶

Создайте класс-контейнер, который будет содержать набор объектов из предыдущей задачи. Например, класс VectorCollection будет содержать объекты класса Vector .

Для класса-контейнера предусмотрите:

  • __init__(self, . ) — инициализация с необходимыми параметрами;
  • __str__(self) — представление объекта в удобном для человека виде;
  • __getitem__() — индексация и срез для класса-контейнера.
  • поле _data — содержит набор данных;
  • метод add(self, value) — добавляет элемент value в контейнер;
  • метод remove(self, index) — удаляет элемент из контейнера по индексу index ;
  • метод save(self, filename) — сохраняет объект в JSON-файл filename ;
  • метод load(self, filename) — загружает объект из JSON-файла filename .

10.5.3. Иерархия классов¶

Выберите вариант под номером (ЦИФРА_СБ % 5) + 1 (Таблица 10.5.2).

Таблица 10.5.2 — Иерархия классов ¶

Плеер, АудиоПлеер, ВидеоПлеер, DvdПлеер

ПищущаяПринадлежность, Карандаш, Ручка, ГелеваяРучка

ТранспортноеСредство, ВодноеТС, КолесноеТС, Автомобиль

ДенежныйПеревод, ПочтовыйПеревод, БанковскийПеревод, ВалютныйПеревод

ПроезднойБилет, БезлимитныйБилет, БилетСОграничением, БилетСОграничениемПоездок

  • выстройте классы в иерархию, продумайте их общие и отличительные характеристики и действия;
  • добавьте собственную реализацию методов базового класса в каждый из классов, предусмотрев:
  • необходимые параметры для базовых методов (например, в метод воспроизведения в Dvd-плеере можно передать абстрактный DVD-диск);
  • необходимые поля для функционирования базовых методов (например, при остановке Dvd-плеера имеет смысл сохранить текущую позицию воспроизведения); классы должны содержать как минимум по одному общедоступному, не общедоступному и закрытому полю/методу;
  • вывод на экран работы метода (например, вызов метода остановки в Dvd-плеере должен сообщать на экране, что плеер установлен на определенной позиции).

Реализуйте все классы в отдельном модуле, а также создайте main.py , который бы тестировал все его возможности.

По согласованию иерархия может быть расширена или выбрана самостоятельная индивидуальная тема для данной задачи.

Версия: 2023. Обновлено: 16.05.2023.

Источник

Класс Python — Упражнения, практика, решение

3. Напишите класс Python, чтобы найти правильность строки скобок, ‘(‘, ‘)’, », ‘[‘ и ‘]. Эти скобки должны быть закрыты в правильном порядке, например, «()» и «() [] <>» допустимы, но «[)», «(

4. Напишите класс Python, чтобы получить все возможные уникальные подмножества из набора различных целых чисел. — Перейти к редактору
Вход: [4, 5, 6]
Вывод: [[], [6], [5], [5, 6], [4], [4, 6], [4, 5], [4, 5, 6]]

5. Напишите класс Python, чтобы найти пару элементов (индексы двух чисел) из данного массива, сумма которых равна конкретному целевому числу. — Перейти к редактору
Ввод: цифры = [10,20,10,40,50,60,70], цель = 50
Выход: 3, 4

6. Напишите класс Python, чтобы найти три элемента, которые суммируют до нуля из набора из n действительных чисел. — Перейти к редактору
Входной массив: [-25, -10, -7, -3, 2, 4, 8, 10]
Выход: [[-10, 2, 8], [-7, -3, 10]]

7. Напишите класс Python для реализации pow (x, n). — Перейти к редактору

8. Напишите класс Python, чтобы поменять строку слово за словом. — Перейти к редактору
Входная строка: ‘привет. Py’
Ожидаемый результат: ‘.py hello’

9. Напишите класс Python, который имеет два метода get_String и print_String. get_String принимает строку от пользователя и print_String печатает строку в верхнем регистре. — Перейти к редактору
Нажмите меня, чтобы увидеть решение

10. Напишите класс Python с именем Rectangle, построенный по длине и ширине, и метод, который будет вычислять площадь прямоугольника. — Перейти к редактору
Нажмите меня, чтобы увидеть решение

11. Напишите класс Python с именем Circle, построенный по радиусу, и два метода, которые будут вычислять площадь и периметр круга. — Перейти к редактору
Нажмите меня, чтобы увидеть решение

12. Напишите программу на Python, чтобы получить имя класса экземпляра в Python. — Перейти к редактору
Нажмите меня, чтобы увидеть решение

Редактор кода Python:

Еще не все !

Не отправляйте решение вышеупомянутых упражнений здесь, если вы хотите внести вклад, перейдите на соответствующую страницу упражнения.

Источник

Читайте также:  Php replace line endings
Оцените статью