Найти - Пользователи
Полная версия: Ошибка с заменой символов в строке
Начало » Python для новичков » Ошибка с заменой символов в строке
1
mummer
Добрый день!

На питонтьюторе делаю задачу по удалению каждого третьего символа в строке.
Там есть несколько иное решение, у меня своё:
 a = str(input())
s = len(a)
for i in range(s):
    if i%3 == 0 and i != 0: # чтоб он не возвращал символ с нулевым индексом
        print(a[i]) #тут идет проверка, точно ли он показывает нам каждый третий символ
        b = a.replace(a[i], '')
        print(b)
И вот тут начинается катавасия.
Если в слове нет одинаковых букв, всё заходит на “ура”.
Даже если они есть, пятая строка выдает верные индексы, всё ок.
Но стоит ввести слово с повторяющимися символами, программа после третьего прохода удаляет ВСЕ символы, замеченные ей более одного раза. Вот, например, что она выдает при введенном слове “mandragora”:
mandragora
d
manragora
g
mandraora
a
mndrgor
Где ошибка, подскажите, плз.
Учу язык сам, поэтому некоторые моменты объяснить некому((
BOBAH
a = list(input())
c = len(a)
print(c)
for i in range(2, c):
if i % 3 == 0 and i - (i / 3 - 1) <= c: # символ с нулевым индексом проверку не проходит см. строка выше
index = int(i - (i / 3 - 1) - 1) # для компенсации смещения
print(a[index]) #тут идет проверка, точно ли он показывает нам каждый третий символ
a.pop(index)
print(''.join(a))
c = len(a)

обрати внимание, что питон при обращении по индексу считает 1-ый символ как 0-вой, 2-ой как 1-ий и тд.
Так же после начала цикла значение range(2, c), а вот значение действительной длинны а меняется, по-этому наблюдается некоторое смещение
BOBAH
replace заменяет символ не по индексу, а все символы подходящие символы.
BOBAH
mummer
программа после третьего прохода удаляет ВСЕ символы
Не после 3-го, а после каждого, попробуй в свой скрипт ввести слово rtnrtrnrnt, и переменная b у тебя бесполезная все символы, которые ты удаляешь, на следующей итерации цикла восстанавливаются
mummer
Понял, огромное спасибо!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB