2015-01-31 1 views
-1

я хочу знать разницуя получаю THS ошибка: индекс строки из диапазона

Когда я запускаю этот код

message = "Three can keep a secret, if two of them are dead." 
translated = "" 
i = len(message) 
while i >= 0: 
    translated = translated + message[i] 
    i = i - 1 
print translated  

я получаю ошибку:

IndexError: строка индекса вне диапазона

, когда я изменил его:

message = "Three can keep a secret, if two of them are dead." 
translated = "" 
i = len(message) - 1 
while i >= 0: 
    translated = translated + message[i] 
    i = i - 1 
print translated  

сейчас работает, но почему! ???

Почему я должен ввести LEN (массаж) - 1

Благодаря

ответ

2

Индексы начинаются с 0. Индекс первого элемента 0.

Таким образом, индекс последнего элемента ... (facepalm).

+0

Len («яблоко») результат: 5 –

+0

и я могу отправить вам если вы не верите мне :(поэтому первый элемент равен 1 в результате :( –

+0

Длина 5, но ваши индексы будут 0,1,2,3,4. – andyhasit

0

Возьмите короткую строку, например str = "hello", она состоит из 5 символов.

str[0] is 'h' 
srt[1] is 'e' 
... 
srt[4] is 'o' 
str[5] does not exist! 

Вот почему вы можете идти только до LEN (ул) -1, индекс начинается с 0, а не 1.

Смежные вопросы