Здравствуйте, faulx, Вы писали:
F>Здравствуйте, faulx, Вы писали:
F>>Здравствуйте, eugals, Вы писали:
E>>>Здравствуйте, faulx, Вы писали:
F>>>>Думаю, подстроку с 3 по 5 элемент. Нет?
E>>>>>>>>> "012345678"[3:5]
E>>>'34'
E>>>
F>>То есть индексация начинается с 0? В данном случае это не принципиально (хотя, кстати, это может создать трудность при обучении). В x.substring(3,5) тоже неясно, откуда начинается индексация.
F>Не увидел сразу, что дело не только в начале индексации, а еще и в том, что 5 указывает на позицию после желаемого последнего символа. Понятно, сделано как в STL. Тоже при обучении может возникнуть трудность.
Да.
Впрочем, при обучении это легко усваивается, если человеку сначала показать такую конструкцию:
>>> x[:5]
Здесь все поймут, что вернется первые пять элементов последовательности.
Потом можно показать такую:
>>> x[3:]
Здесь будет получена строка,
исключая первые три элемента.
Ну, а потом уже очевидное обобщение:
>>> x[3:5]
Кстати, немного рекламы.
В этой конструкции (да и вообще в доступе к элементам последовательностей) в питоне допускаются отрицательные индексы:
>>> x = "012345678"
>>> x[-2:] # два последних элемента
'78'
>>> x[:-2] # все элементы, исключая два последних
'0123456'
>>> x[:len(x)-2] # демострация простоты логики отображения отрицательных индексов в обычные.
'0123456'
... << RSDN@Home 1.1.4 beta 3 rev. 215>>