Написать класс Dots, генерирующий заданное количество точек на заданом отрезке
При создании объекта типа Dots задаются вещественные границы отрезка
Объект d типа Dots должен поддерживать индексирование по таким правилам:
d[n] — последовательность из n равноудалённых точек от начала до конца отрезка (включая конец)
d[i:n] — i-я точка такой последовательности
d[i:j:n] — последовательность начиная с i-той и заканчивая j-1-й точкой такой последовательности
- Выход за границы отрезка означает экстраполяцию (см. пример)
Подсказка: надо по-хитрому написать метод __getitem__(self, item), в котором item будет означать совсем не то, что в известных нам последовательностях
a = Dots(0,40) print(*a[5]) print(a[0:5]) print(a[2:5]) print(a[4:5]) print(a[7:5]) print(a[-7:5]) print(*a[1:3:5]) print(*a[:3:5]) print(*a[2::5]) print(*a[::5]) print(*a[-2:6:5])
Вспоминаем, что приезжает в a.__getitem__(arg), когда используются конструкции:
a[i]
a[i:j] или a[i,j,k] (slice object)
0.0 10.0 20.0 30.0 40.0 0.0 20.0 40.0 70.0 -70.0 10.0 20.0 0.0 10.0 20.0 20.0 30.0 40.0 0.0 10.0 20.0 30.0 40.0 -20.0 -10.0 0.0 10.0 20.0 30.0 40.0 50.0