Member 13304887 Ответов: 1

Простой код работает, то не


когда я это сделаю:
открытый текст= " промозглые мемы"
i=0
рейлон=""
railTwo=""
в то время как я< len(открытый текст):
railOne+=открытый текст[i]+" "
i+=1
railTwo+=" "+открытый текст[i]
i+=1
печать (рейлон)
печать (railTwo)
это работает

но когда я ничего не меняю, кроме удаления пространства между данком и мемами, это дает мне ошибки

Что я уже пробовал:

но когда я ничего не меняю кроме удаления пространства между данком и мемами это дает мне ошибки

Richard MacCutchan

Потому что ваш код будет работать только со строкой, состоящей из четного числа символов. Шагая по коду с помощью отладчика или просто работая с ним ручкой и бумагой, вы поймете, почему.

1 Ответов

Рейтинг:
11

Patrice T

Та же проблема, что и с Код Railfence ничего не печатает Python[^]

Вы пытаетесь использовать символы после конца строки.
Ваш код будет разбиваться каждый раз, когда у вас есть нечетное количество символов, потому что цикл использует символы 2 на 2, но вы не проверяете, есть ли по крайней мере 2 оставшихся символа.
ваш цикл должен проверить, что есть по крайней мере 2 доступных символа.

Отладчик показал бы вам, где и когда возникает проблема.

Существует инструмент, который позволяет вам видеть, что делает ваш код, его имя отладчик Это также отличный инструмент обучения, потому что он показывает вам реальность, и вы можете увидеть, какие ожидания соответствуют реальности.
Когда вы не понимаете, что делает ваш код или почему он делает то, что делает, ответ таков: отладчик.
Используйте отладчик, чтобы увидеть, что делает ваш код. Просто установите точку останова и посмотрите, как работает ваш код, отладчик позволит вам выполнять строки 1 на 1 и проверять переменные по мере их выполнения.

Отладчик-Википедия, свободная энциклопедия[^]
27.3. ПДБ — отладчика Python — питон 3.6.1 документации[^]
Отладка в Python | Python покоряет Вселенную[^]
pdb-интерактивный отладчик-Python модуль недели[^]
Отладчик здесь для того, чтобы показать вам, что делает ваш код, и ваша задача-сравнить его с тем, что он должен делать.
В отладчике нет никакой магии, он не находит ошибок, он просто помогает вам. Когда код не делает того, что ожидается, вы близки к ошибке.


0x01AA

+5

Patrice T

Спасибо