2015-10-22 2 views
2

Я хочу, чтобы изменить строку следующим образом:Python индекс строки из границ

def reverse(s): 
    for i in range(len(s),0,-1): 
     var = s[i] # getting an out of range error? 
     ... 

Может кто-нибудь объяснить, почему?

+6

Len (s) == N, s [N] находится вне границ, последний действительный индекс - N-1 – user1514631

+1

do 'for i в диапазоне (len (s) -1, -1, -1)' вместо – user1514631

+0

Спасибо, ребята, за быстрые ответы! Теперь я понимаю :) – patrickhuang94

ответ

3

Если длина строки равна n, действительные индексы от 0 до n-1 (элементы подсчитываются от 0, а не от 1).

В вашем коде for Условие петли len(s) должно быть изменено на len(s) - 1. Ответ

+1

Благодарим за быстрый и простой ответ! Примите ответ за 7 минут. – patrickhuang94

+1

Добро пожаловать! – Ziezi

1

simplicis настолько хорошо, но вот простой способ изменить строку, как это:

print('Hello'[::-1]) 

Выход:

olleH 
+0

Спасибо за ответ! Я делаю учебник Codecademy, и они специально поручили не использовать его таким образом;) но я ценю это! – patrickhuang94

+1

Хорошо, просто подсказка. Если вы хотите изменить строку, это лучший способ: P –

+1

@homerboy Было бы неплохо добавить это в ваш вопрос. –

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