Форум сайта python.su
0
Добрый день.
Дана задача (в теме), написал цикл
s=input()
a=len(s)
for i in range(-a,0,3):
s=s.replace(s,'')
print (s)
Не могу понять, если вводишь слово Heglo, после выполнения остается ego,
если вводишь Hello - остается eo.
питон двум одинаковым буквам присваивает один индекс??
Офлайн
6
Нет. А ты нигде и не обращаешься по индексу.
replace - замена подстроки в строке. Подстрока может быть найдена не в одном месте.
И этот код у тебя не может вывести то, что ты пишешь, он просто стирает ВСЁ.
s = input() a = len(s) for i in range(-a+2,0,3): s = s[:i] + s[i+1:] print (s)
Отредактировано Vintets (Авг. 14, 2017 16:31:01)
Офлайн
11
s = "1234567890" b = [s[i] for i in range(len(s)) if (i+1) % 3 != 0] print ("".join(b))
Отредактировано krok64 (Авг. 14, 2017 16:46:46)
Офлайн
0
почему то криво вставилось и обращение к индексу потерялось в квадратных скобках, занесу его в фигурные скобки
s=input()
a=len(s)
for i in range(-a,0,3):
s=s.replace(s{i},'')
print (s)
работает для всех слов, кроме слов, у которых третий и четвертый символ одинаковый
Отредактировано LLIAMAH (Авг. 15, 2017 04:08:28)
Офлайн
0
прошу оказать консультацию, никак не могу победить задание
Офлайн
857
>>> s = 'abcdefghi' >>> >>> out = ''.join(c for i, c in enumerate(s) if (i + 1) % 3 != 0) >>> out 'abdegh' >>>
Офлайн
88
оффтопик
j'c for i, c in enumerate(s) if (i + 1) % 3 != 0'
Офлайн
0
Здорово, конечно, но я пока до такого не дошел в учебнике))
в итоге задание прошел через костыли, но я так и не понял почему мой цикл не срабатывает на слове, если у него две одинаковые буквы подряд?? это самый главный вопрос
ниже ссылка на само задание:
Задание
Офлайн
857
LLIAMAHstr.replace() заменяет все вхождения, а не только первое.
почему мой цикл не срабатывает на слове, если у него две одинаковые буквы подряд?
Офлайн
0
по-моему мой replace должен заменять только каждое третье вхождение
видимо я пока малое еще понимаю, буду разбираться, спасибо
Офлайн