Для студентов МГТУ им. Н.Э.Баумана по предмету ИнформатикаЭмуляция контейнеровЭмуляция контейнеров
2025-01-052025-01-05СтудИзба
Задача: Эмуляция контейнеров
Описание
Напишем свой аналог листа таблицы Excel. Нужно написать структуру данных
Если запрашивается правильный формат ячейки, но в нашем контейнере такого ключа нет, то нужно вернуть None. Например:
Field
, в которой доступ к значениям будет осуществляться по ключам. Ключом будет пара "буква" - "число", по аналогии с адресом ячейки в Excel. Возможные форматы обращения к одной и той же "ячейке" данных: field = Field()
field[1, 'a'] = 25
field['a', 1] = 25
field['a', '1'] = 25
field['1', 'a'] = 25
field['1a'] = 25
field['a1'] = 25
field[1, 'A'] = 25 # Все то же самое работает и с заглавными буквами
field['A', 1] = 25
field['A', '1'] = 25
field['1', 'A'] = 25
field['1A'] = 25
field['A1'] = 25
25
в ячейку с одним и тем же ключом. Соответственно, по любому из перечисленных ключей должно быть можно получить это число из объекта field
. Также должны быть реализованы удаление элемента из структуры (через оператор del
) и возможность использования оператора in
, например: (1, 'a') in field
: True"A1" in field
: True('D', '4') in field
: False
TypeError
. При некорректном значении строки или элементов кортежа нужно вызывать исключение ValueError
. Корректными значениями будет считать одиночные буквы и неотрицательное целое число любой длины, т.е. правильные варианты ключей: - А1
- А222543
- Z89
- AA5
- Q2.5
- -6F
- A
- 27
- GG
Если запрашивается правильный формат ячейки, но в нашем контейнере такого ключа нет, то нужно вернуть None. Например:
field = Field()
print(field["C5"] is None) # Выводит: True
Примечания
В своем решении этого задания я использовал в качестве ключей хранимого словаря frozenset, а проверку на ValueError реализовал через регулярку. Также рекомендую проверку типов и преобразование поступившего ключа в тот вид, в котором он хранится "под капотом", вынести в отдельный метод и вызывать его из всех описываемых магических методов.Характеристики решённой задачи
Предмет
Учебное заведение
Учебная пора
Программы
Просмотров
1
Качество
Идеальное компьютерное
Размер
2,81 Kb
Список файлов
base-6.1.txt

Vladelo