LLIAMAH
Авг. 14, 2017 13:19:03
Добрый день.
Дана задача (в теме), написал цикл
s=input()
a=len(s)
for i in range(-a,0,3):
s=s.replace(s,'')
print (s)
Не могу понять, если вводишь слово Heglo, после выполнения остается ego,
если вводишь Hello - остается eo.
питон двум одинаковым буквам присваивает один индекс??
Vintets
Авг. 14, 2017 16:27:50
Нет. А ты нигде и не обращаешься по индексу.
replace - замена подстроки в строке. Подстрока может быть найдена не в одном месте.
И этот код у тебя не может вывести то, что ты пишешь, он просто стирает ВСЁ.
s = input()
a = len(s)
for i in range(-a+2,0,3):
s = s[:i] + s[i+1:]
print (s)
krok64
Авг. 14, 2017 16:45:27
s = "1234567890"
b = [s[i] for i in range(len(s)) if (i+1) % 3 != 0]
print ("".join(b))
LLIAMAH
Авг. 15, 2017 04:06:25
почему то криво вставилось и обращение к индексу потерялось в квадратных скобках, занесу его в фигурные скобки
s=input()
a=len(s)
for i in range(-a,0,3):
s=s.replace(s{i},'')
print (s)
работает для всех слов, кроме слов, у которых третий и четвертый символ одинаковый
LLIAMAH
Авг. 15, 2017 06:46:15
прошу оказать консультацию, никак не могу победить задание
py.user.next
Авг. 15, 2017 07:00:17
>>> s = 'abcdefghi'
>>>
>>> out = ''.join(c for i, c in enumerate(s) if (i + 1) % 3 != 0)
>>> out
'abdegh'
>>>
Shaman
Авг. 15, 2017 07:06:41
оффтопик
j'c for i, c in enumerate(s) if (i + 1) % 3 != 0'
-подобный синтаксис хорошо бы смотрелся
LLIAMAH
Авг. 15, 2017 07:15:36
Здорово, конечно, но я пока до такого не дошел в учебнике))
в итоге задание прошел через костыли, но я так и не понял почему мой цикл не срабатывает на слове, если у него две одинаковые буквы подряд?? это самый главный вопрос
ниже ссылка на само задание:
Задание
py.user.next
Авг. 15, 2017 07:33:27
LLIAMAH
почему мой цикл не срабатывает на слове, если у него две одинаковые буквы подряд?
str.replace() заменяет все вхождения, а не только первое.
LLIAMAH
Авг. 15, 2017 08:03:57
по-моему мой replace должен заменять только каждое третье вхождение
видимо я пока малое еще понимаю, буду разбираться, спасибо