Python >
Разработка программных модулей
2024-2025 учебный год
Практические занятия
Практика 12
Коллекции
1.
Дан файл, содержащий 10 слов (по одному слову в строке). Создать новый файл,
который будет содержать эти же слова, но записанные в обратном порядке.
2.
Дан файл, содержащий 10 слов (по одному слову в строке). Создать новый файл,
который будет содержать по три слова в ряд (слова берутся из первого файла).
3.
Подсчитать сколько раз данное слово встречается в файле.
4.
Дан файл, содержащий 10 предложений. Создать новый файл,
в котором заменить одно слово на другое.
5.
Класс Dog.
Создайте класс Dog. В нем должен быть метод bark, который выводит на экран: 'Woof-woof!'.
Объявите экземпляр класса и вызовите у него метод bark.
Подсказка. На этот раз не делайте метод класса статичным.
6.
Терминаторы 1.
Создайте класс Terminator и реализуйте в нем два метода:
1. say_greetings, печатающий фразу 'I am T-700, give me your ride and jacket!';
2. say_goodbye, печатающий фразу 'I'll be back!'.
Объявите два экземпляра вашего класс: T700 и T800. Вызовите каждый из методов
для каждого экземпляра класса поочередно.
Тесты
Входные данные: --
Выходные данные:
I am T-700, give me your ride and jacket!
I'll be back!
I am T-700, give me your ride and jacket!
I'll be back!
7.
Класс Constructor и его методы.
Создайте класс Constructor и реализуйте в нем два метода:
1. add_attribute, принимающий на вход название атрибута
в виде строки, а также значение этого атрибута.
Данный метод создает новый атрибут у экземпляра класса и наполняет его значением.
2. get_attributes, который выводит информацию магического
метода __dict__ для экземпляра класса.
Подсказка.
Самостоятельно поищите информацию о методе setattr и воспользуйтесь им.
Код
# Ваш код
# ...
# не изменяйте код ниже, он нужен для проверки
a = Constructor()
a.get_attributes() # Выводит {}
a.add_attribute('shape', 'circle') # shape — название атрибута, circle — значение атрибута
a.add_attribute('cost', 150)
a.get_attributes() # Выводит {'shape': 'circle', 'cost': 150}
8.
Расстояние между точками.
Создайте класс Point с одним методом set_coord, который принимает
две координаты x и y и сохраняет их в соответствующие атрибуты экземпляра класса.
Также создайте функцию get_dist вне класса, которая принимает на вход
два аргумента — точки p1 и p2, являющиеся экземплярами класса Point
и вычисляет расстояние между ними.
Координаты для точек p1 и p2 должны передаваться пользователем
на вход программы, а расстояние между точками должно быть выведено
на экран в результате работы программы.
Подсказка.
Помочь вычислить расстояние между точками (x1, y1) и (x2, y2) вам поможет
теорема Пифагора. Вспомните, что извлечение корня это эквивалент возведения в степень 0,5.
Код
# Ваш код
# ...
# не изменяйте код ниже, он нужен для проверки
p1 = Point()
p2 = Point()
x1 = int(input())
y1 = int(input())
x2 = int(input())
y2 = int(input())
p1.set_coord(x1, y1)
p2.set_coord(x2, y2)
d = get_dist(p1, p2)
print(d)
Тесты
Входные данные:
0
3
3
7
Выходные данные:
5.0
Входные данные:
2
2
7
14
Выходные данные:
13.0
9. Класс Pen инкапсуляция, сокрытие данных, закрытые поля класса
методы «геттеры» и «сеттеры». Выполнить пример 8.1 из лекции.
10. Выполнить по примеру 8.2 из лекции рефакторинг класса Pen, применив свойства property
и лямбда-функцию.
11. Выполнить по примеру 8.3 из лекции рефакторинг класса Pen, изменив реализацию
класса для атрибута класса color вместо типа str использовать тип int.
12. Классы Car и Rect свойство read-only.
Написать программу по примерам 8.4 и 8.5 из лекции.
Домашнее задание
Коллекции.
Параметризованные классы.
Примеры программ с коллекциями.
Списки.
Словари.
Очереди.
Стеки.
Деревья.
Графы.
Гиперсети.
-
Перейти Стандартный документ «Описание программы»