Форум сайта python.su
0
По заданию (учусь) пишу код, запускаю проверку, проверка выдает ошибку: помогите, расскажите как ее исправить?
отметила строки по номерам # для ориентира
ошибка в строке 7:
Traceback (most recent call last):
File “D
……..py”, line 7, in <module>
b = s
IndexError: string index out of range
если в строке 7, в квадратных скобках, вместо d ставлю 0 все работает, не так как надо для решения задачи, но ошибки никакой нет (буквы разные в примерах, пробовала решить как описано ниже)
запустила онлайн компилятор, такая же ошибка
до этого была такая же ошибка с решением другой задачи поменяла переменную i на d и все заработало
пробовала название переменной копировать вставить, чтобы точно совпадало, не помогло
http://joxi.ru/zANNJlMHv3o57A
http://joxi.ru/v29EaKRfZBPk82
скрины, на которых видно, что при замене значения в скобках с переменной на цифру, работает, с переменной в скобках не работает
код:
s = “0123456789”
l = len(s)
d = 0
b = ‘'
result = ’'
while d < l:
b = s(d) #7 скобки квадратные, по другому удаляется
result = s.replace(b, '')
s = result
d = d + 3
print(s)
Отредактировано Ulia (Сен. 19, 2019 21:24:57)
Офлайн
76
Ты же изменяешь строку. Укорачиваешь ее, а индекс берешь за ее пределами и вот поэтому ошибка. Как вариант сделать копию строки и работать с двумя строками.
sc = '0123456789' s = sc l = len(s) d = 0 b = '' result = '' while d < l: b = sc[d] result = s.replace(b, '') s = result d = d + 3 print(s)
Офлайн
0
Romissevd
Ты же изменяешь строку. Укорачиваешь ее, а индекс берешь за ее пределами и вот поэтому ошибка. Как вариант сделать копию строки и работать с двумя строками.
s = '0123456789' l = len(s) d = 0 b = '' result = '' while d < l: b = s[0] #стр7 result = s.replace(b, '') s = result d = d + 3 print(s)
Офлайн