Education 1.1 Help

Задачи

Задача 1

Напишите класс LittleBell, который при вызове метода sound печатает слово " ding ".

Пример 1

Ввод

# Ваш код bell = LittleBell() bell.sound()

Вывод

ding

Пример 2

Ввод

# Ваш код bell = LittleBell() bell.sound() bell.sound() bell.sound()

Вывод

ding ding ding

Задача 2

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

Метод click увеличивает количество нажатий, метод click_count возвращает число нажатий. Метод reset обнуляет количество нажатий.

Пример 1

Ввод

# Ваш код button = Button() button.click() button.click() print(button.click_count()) button.click() print(button.click_count())

Вывод

2 3

Пример 2

Ввод

# Ваш код button = Button() button.click() button.click() print(button.click_count()) button.reset() button.click() print(button.click_count())

Вывод

2 1

Пример 3

Ввод

# Ваш код button = Button() button.click() print(button.click_count())

Вывод

1

Задача 3

Напишите класс Balance для описания весов с двумя чашами. На левую и правую чашу объекта будут добавляться грузы с различным весом, ваша задача определить положение чаш. Метод add_right принимает целое число — вес, положенный на правую чашу весов, add_left — на левую чашу. Метод result должен возвращать символ =, если вес на чашах одинаковый, R — если перевесила правая, L — если перевесила левая.

Пример 1

Ввод

# Ваш код balance = Balance() balance.add_right(10) balance.add_left(9) balance.add_left(2) print(balance.result())

Вывод

L

Пример 2

Ввод

# Ваш код balance = Balance() balance.add_right(10) balance.add_left(5) balance.add_left(5) print(balance.result()) balance.add_left(1) print(balance.result())

Вывод

= R

Задача 4

Напишите класс OddEvenSeparator, в который можно добавлять числа, получая потом отдельно чётные и нечётные. Числа добавляются в объект с помощью метода add_number. Методы even и odd должны возвращать списки чётных и нечётных чисел соответственно. Числа в списке должны идти в том же порядке, что и при добавлении в объект.

Пример 1

Ввод

# Ваш код separator = OddEvenSeparator() separator.add_number(1) separator.add_number(5) separator.add_number(6) separator.add_number(8) separator.add_number(3) print(' '.join(map(str, separator.even()))) print(' '.join(map(str, separator.odd())))

Вывод

6 8 1 5 3

Задача 5

Напишите класс BigBell, который при вызове метода sound печатает попеременно слова ding и dong, начиная c ding.

Пример 1

Ввод

# Ваш код bell = BigBell() bell.sound() bell.sound() bell.sound()

Вывод

ding dong ding

Задача 6

Напишите класс MinMaxWordFinder. Класс должен уметь анализировать текст и находить в нём слова наименьшей и наибольшей длины. Текст состоит из предложений, которые добавляются в обработку методом add_sentence. Метод shortest_words возвращает список самых коротких на данный момент слов, метод longest_words — самых длинных. Слова, возвращаемые методами shortest_words и longest_words, должны быть отсортированы по алфавиту. Если одно из самых коротких слов встретилось в исходных предложениях несколько раз, оно должно столько же раз повториться в списке самых коротких слов. Самые длинные слова наоборот должны входить в список без повторов.

Пример 1

Ввод

# Ваш код finder = MinMaxWordFinder() finder.add_sentence('hello abc world') finder.add_sentence('def asdf qwert') print(' '.join(finder.shortest_words())) print(' '.join(finder.longest_words()))

Вывод

abc def hello qwert world

Пример 2

Ввод

# Ваш код finder = MinMaxWordFinder() finder.add_sentence('hello') finder.add_sentence('abc') finder.add_sentence('world') finder.add_sentence('def') finder.add_sentence('asdf') finder.add_sentence('qwert') print(' '.join(finder.shortest_words())) print(' '.join(finder.longest_words()))

Вывод

abc def hello qwert world

Пример 3

Ввод

# Ваш код finder = MinMaxWordFinder() finder.add_sentence('hello') finder.add_sentence(' abc def ') finder.add_sentence('world') finder.add_sentence(' abc ') finder.add_sentence('asdf') finder.add_sentence('qwert') print(' '.join(finder.shortest_words())) print(' '.join(finder.longest_words()))

Вывод

abc abc def hello qwert world

Задача 7

Создайте класс BoundingRectangle, который обрабатывает точки на плоскости и строит по ним прямоугольник минимального размера, в который входят все эти точки. Если точка лежит на границе прямоугольника, считается, что она в него входит. Нужно определить следующие методы (rect – экземпляр BoundingRectangle):

  • rect.add_point(x, y) — добавить новую точку.

  • rect.width() — ширина прямоугольника.

  • rect.height() — высота прямоугольника.

  • rect.bottom_y() — Y-координата нижней границы прямоугольника.

  • rect.top_y() — Y-координата верхней границы прямоугольника.

  • rect.left_x() — X-координата левой границы прямоугольника.

  • rect.right_x() — X-координата правой границы прямоугольника.

Гарантируется, что хотя бы одна точка будет добавлена в экземпляр до вызова методов, возвращающих описание прямоугольника.

Пример 1

Ввод

# Ваш код rect = BoundingRectangle() rect.add_point(-1, -2) rect.add_point(3, 4) print(rect.left_x(), rect.right_x()) print(rect.bottom_y(), rect.top_y()) print(rect.width(), rect.height())

Вывод

-1 3 -2 4 4 6

Пример 2

Ввод

# Ваш код rect = BoundingRectangle() rect.add_point(10, 20) rect.add_point(5, 7) rect.add_point(6, 3) print(rect.left_x(), rect.right_x()) print(rect.bottom_y(), rect.top_y()) print(rect.width(), rect.height())

Вывод

5 10 3 20 5 17

Пример 3

Ввод

# Ваш код rect = BoundingRectangle() rect.add_point(-11, -12) rect.add_point(13, -14) rect.add_point(-15, 10) print(rect.left_x(), rect.right_x()) print(rect.bottom_y(), rect.top_y()) print(rect.width(), rect.height()) print() rect.add_point(-21, -12) rect.add_point(13, -14) rect.add_point(-15, 36) print(rect.width(), rect.height()) print(rect.left_x(), rect.right_x()) print(rect.bottom_y(), rect.top_y()) print() rect.add_point(-21, 78) rect.add_point(13, -14) rect.add_point(-55, 36) print(rect.bottom_y(), rect.top_y()) print(rect.width(), rect.height()) print(rect.left_x(), rect.right_x())

Вывод

-15 13 -14 10 28 24 34 50 -21 13 -14 36 -14 78 68 92 -55 13
Last modified: 12 June 2024