Вы начинаете свою петлю в i=len(info)
, что является еще одним, чем окончательный индекс в строке. Последний индекс в строке (или другом итерабельном) равен len(string) - 1
, так как индексы начинаются с 0
.
Обратите внимание, что в Python, вы можете (и рекомендуется) использовать в конструкции языка природных и тот факт, что коллекции являются легко перебрать:
for letter in reversed(info): # Much clearer way to go backwards through a string
sys.stdout.write(letter)
Поскольку вы выяснены в ваших комментариях, что вы действительно хотите перейти вперед через текст, вы можете просто вынуть бит reversed
. Код, который вы отправили, будет повторяться в обратном направлении через текст, а не вперед - еще одно преимущество использования стандартных методов итерации заключается в том, что гораздо легче увидеть, сделали ли вы что-то, что вы не хотели делать!
for letter in info: # Very clear that you're going forward through the string
sys.stdout.write(letter)
Наконец, как уже упоминалось, вы должны добавить явный вызов sys.stdout.flush()
после каждой записи, так как в противном случае нет никакой гарантии, что вы будете видеть выход через регулярные промежутки времени (это может быть записано в буфер, но не покраснел до экрана намного позже).
ОП: вы пытаетесь пройти назад через строку? Потому что это то, что делает ваш код. – 2rs2ts
@ 2rs2ts нет, я просто хочу создать скрипт, который будет набирать текст точно так же, как это – Pythonizer
Тогда обязательно пойдите с тем, что я написал изначально. – 2rs2ts