Re[25]: Oberon???????????????????????????????????
От: eugals Россия  
Дата: 16.11.04 09:21
Оценка:
Здравствуйте, 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>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.