s = input()
i = 0
count = 1
out = ''
while i< (len(s) - 1):
if s[i] == s[i+1]:
count += 1
else:
out = out + s[i] + str(count)
count = 1
i +=1
print(out+ s[i] + str(count)
Ну вот здесь отнимается от len(s) однерка
Можете пожалуйста простыми словами объяснить, только учу python и никак не пойму то говорят через python визуализатор посмотреть ничего не пойму
Объясните пожалуйста простыми словами
s = input()
i = 0
count = 1
out = ''
while i < (len(s) - 1):
if s[i] == s[i+1]:
count += 1
else:
out = out + s[i] + str(count)
count = 1
i += 1
print(out + s[i] + str(count)
Так должно быть? В Python отступы имеют значение, и без них сложно понять логику.
lehinas , если s = '123', то индекс '1' будет 0, индекс последний '3' будет 2. Почти во всех языках программирования отсчет идет с нуля, первый символ с индексом — 0. Чтобы перебрать список или строку нужно идти до "длина минус один": while index < len(array) - 1: index += 1
Не спешите себя ругать, больше разбирайтесь и погружайтесь. Все станет ясно со временем. Начало самое сложное всегда, поначалу все временами в ступор впадают.
lehinas, прочитайте внимательнее, что написал выше. Индекс последнего элемента меньше на единицу, чем длина. Если не делать - 1, то перебор индексов выйдет за пределы списка / строки.