Найти - Пользователи
Полная версия: Создать класс, работающего со строками
Начало » Python для новичков » Создать класс, работающего со строками
1
DUDOSatacker
Создать класс, работающего со строками. Класс должен содержать следующие поля: массив для хранения строки, его максимальную длину, время создания строки. Фактическая длина строки сохраняется в начале строки. Класс должен предоставлять простые функции для работы с этими структурами: изменение строки, отображение строки, нахождение внутренней строки из строки. Не пойму как сделать(
py.user.next
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 .
DUDOSatacker
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)
что я делаю не так?
marvellik
DUDOSatacker
что я делаю не так?
а в чем проблемы? код работает выводит то что задуманно
py.user.next
DUDOSatacker
что я делаю не так?
Не трогай метод __init__(), я его написал уже полностью. Не трогай метод __str__(), я его написал уже полностью. Добавляй новые методы.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB