Форум сайта python.su
Создать класс, работающего со строками. Класс должен содержать следующие поля: массив для хранения строки, его максимальную длину, время создания строки. Фактическая длина строки сохраняется в начале строки. Класс должен предоставлять простые функции для работы с этими структурами: изменение строки, отображение строки, нахождение внутренней строки из строки. Не пойму как сделать(
Офлайн
DUDOSatacker
Создать класс, работающего со строками. Класс должен содержать следующие поля: массив для хранения строки, его максимальную длину, время создания строки. Фактическая длина строки сохраняется в начале строки.
>>> import datetime >>> >>> class String: ... ... def __init__(self, seq, maxsize=10): ... self.seq = list(seq) ... self.seq.insert(0, len(self.seq)) ... self.maxsize = maxsize ... self.created = datetime.datetime.now() ... ... def __str__(self): ... return ( ... str(self.seq) ... + ' max ' + str(self.maxsize) ... + ' created ' + str(self.created) ... ) ... ... __repr__ = __str__ ... >>> >>> s1 = String('abc') >>> s1 [3, 'a', 'b', 'c'] max 10 created 2021-02-03 12:35:10.865794 >>> >>> s2 = String('abcdef') >>> s2 [6, 'a', 'b', 'c', 'd', 'e', 'f'] max 10 created 2021-02-03 12:35:20.355043 >>>
DUDOSatackerДальше добавляешь методы, которые меняют список и размер через self.seq .
Класс должен предоставлять простые функции для работы с этими структурами: изменение строки, отображение строки, нахождение внутренней строки из строки.
Отредактировано py.user.next (Фев. 3, 2021 03:37:02)
Офлайн
py.user.next
import datetime class String: def __init__(self, seq, maxsize=10): self.seq = list(seq) self.seq.insert(0, len(self.seq)) self.maxsize = maxsize self.created = datetime.datetime.now() self.insert = self.seq.insert(1, 'n') def __str__(self): return ('Измененная строка:' + str(self.insert) + str(self.seq) + ' Максимальная длина: ' + str(self.maxsize) + ' Время создания строки: ' + str(self.created) ) __repr__ = __str__ s1 = String('abc') print(s1) s2 = String('abcdef') print(s2) s3 = String('abcdefgh') print(s3)
Офлайн
DUDOSatackerа в чем проблемы? код работает выводит то что задуманно
что я делаю не так?
Офлайн
DUDOSatackerНе трогай метод __init__(), я его написал уже полностью. Не трогай метод __str__(), я его написал уже полностью. Добавляй новые методы.
что я делаю не так?
Отредактировано py.user.next (Фев. 3, 2021 11:36:41)
Офлайн