Почему выдает ошибку IndexError: list index out of range?
Почему выдает ошибку IndexError: list index out of range если это значение есть?
Код (ещё не доделал ведь выдает ошибку)
a = input().replace(" ","")
c = []
count = 0
for i in range(len(a)):
c += a[i]
print(c[0])
while c != "":
if c[0] == "а" or 'у' or 'о' or 'и' or 'э' or 'ы' or 'я' or 'ю' or 'е' or 'ё':
while len(c) != 0:
z = len(c) - 1
c = c[:z]
else:
while len(c) != 0:
z = len(c) - 1
c = c[:z]
Само задание
Робот учится петь. Пока это непростая для него задача, и не все слова получается пропеть красиво и внятно.
Роботу удобно петь слово, если в нём буквы, обозначающие согласные звуки, чередуются с буквами, обозначающими гласные.
Например, "лалала", "ахаха" и "бада бам" — это удобные строки, а "бам бам" и "тру ля ля" — нет.
Есть строка. Выведи минимальное количество букв, которые нужно заменить, чтобы роботу было удобно её пропеть.
Обрати внимание — в строке может быть несколько слов, разделённых пробелами. Вся фраза целиком может оказаться неудобной для пения, несмотря на то, что каждое слово в отдельности — удобное.
Буквы, обозначающие гласные звуки: а, у, о, и, э, ы, я, ю, е, ё.
Ответы (1 шт):
IndexError: list index out of range - ошибка когда обращаются к несуществующему индексу Скорее всего это строка 2 в вашем коде Попробуйте перед обращение к 'c' проверить является ли он путстым
if len(c) > 0:
print(c[0])
Во вторых ошибка в строке 8 ы проверяете, равняется ли первый элемент списка c строке "а", либо строке "у", либо строке "о" и т.д. Но при использованиие or(или) - это условие всегда будет истинно, потому что любая непустая строка считается истинной Чтобы проверить, содержится ли символ в списке согласных, вам нужно написать:
if c[0] in "бвгджзйклмнпрстфхцчшщ":