Не удалось воспроизвести ошибку.Однако у вас есть
Ошибка индекса вне диапазона.
Это потому, что отступ начинается с 0. Таким образом, string[stringLen]
выходит за пределы на первой итерации,Чтобы решить эту проблему, просто сдвиньте ее на единицу с помощью простой операции -1
.
Кроме того, поскольку мы сейчас движемся в обратном направлении, мы должны остановиться, когда счетчик строго превосходит 0. Если вы поднимаетесьна 0
вы напечатаете первый символ (перезапуская итерацию).
Здесь код:
string = "This is a string, but I want to print it backwards"
stringLen = len(string)
newString = []
while stringLen > 0:
# Here string is shifted by 1
newString.append(string[stringLen-1])
stringLen = stringLen - 1
result = ''.join(newString)
print(result)
# sdrawkcab ti tnirp ot tnaw I tub ,gnirts a si sihT
Вы можете проверить вывод, просто позвонив:
print(string[::-1])
# sdrawkcab ekil skool txet siht woh rednow I
Некоторые объяснения здесь
Надеюсь, это поможет!