Небольшая проблема в циклах
Код должен превратить все гласные в строке b в 1, а согласные в 0
a=['а', 'у', 'о', 'и', 'э', 'ы', 'я', 'ю', 'е', 'ё']
b=list(input().replace(' ',''))
print(b)
c=[]
for i in range(len(b)):
for p in range(len(a)):
if b[i]==a[p]:
c.append(1)
elif b[i]!=a[p]:
c.append(0)
print(c)
Вот что получается
['т', 'р', 'у', 'л', 'я', 'л', 'я']
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0]
Ответы (2 шт):
Автор решения: Aleksandr Fetisov
→ Ссылка
В вашем коде есть ошибка при вложенном цикле for Если исправить будет так
a=['а', 'у', 'о', 'и', 'э', 'ы', 'я', 'ю', 'е', 'ё']
b=list(input().replace(' ',''))
c=[]
# перебираем все символы строки b
for i in range(len(b)):
# проверяем, является ли текущий символ гласной буквой
if b[i] in a:
c.append(1) # если да, добавляем 1 в список c
else:
c.append(0) # иначе добавляем 0 в список c
result = ''.join(c)
print(result)
Автор решения: Алексей Р
→ Ссылка
Список гласных лучше сделать множеством - поиск значительно быстрее. Введенное слово не нужно преобразовывать в список. Для сопоставления 1 и 0 гласным и согласным можно использовать логическое выражение i in a с преобразованием в int.
a = set('ауоиэыяюеё')
b = input('Введите слово: ')
out = [int(i in a) for i in b]
print(b, out, sep='\n')
Введите слово: труляля
труляля
[0, 0, 1, 0, 1, 0, 1]
Однострочник
print([int(i in 'ауоиэыяюеё') for i in input('Введите слово: ')])