Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как вывести кол-во согласных в Python?

Дарья Вяткина Ученик (97), закрыт 7 месяцев назад
Задача: Дано слово из маленьких латинских букв. Сколько там согласных и гласных букв? Гласными называют буквы «a», «e», «i», «o», «u», «y» . Для решения задачи создайте переменную и в неё положите слово с помощью input(). А также определите количество каждой из этих гласных букв Если какой-то из перечисленных букв нет - Выведите False.

Комментарии преподавателя: 1. Для решения вам стоит воспользоваться методом строк count(). word.count('a') где word -- переменная содержащая наше слово, 'a' - символ, кол-во которых он ищет. Возвращает соответственно кол-во этой буквы в строке. 2. Вы должны использовать условия. Каждый раз когда проверяете на наличие буквы в слове, то проводите проверку, чтобы значение переменной не было нулю, если 0, то завершать работу программы выводя false.

Смогла сделать отдельно вывод количество гласных и False, когда какой-то буквы нет. Но туплю на согласных. Как их вывести в данной ситуации?

word = (input("Введите слово: "))
a = word.count('a')
e = word.count('e')
i = word.count('i')
o = word.count('o')
u = word.count('u')
y = word.count('y')
if a == 0:
print("a = False")
if e == 0:
print("e = False")
if i == 0:
print("i = False")
if o == 0:
print("o = False")
if u == 0:
print("u = False")
if y == 0:
print("y = False")
print(f"Гласных: {a + e + i + o + u}")
print(f"Согласных: .")
Лучший ответ
Лев Михайлов Мыслитель (7268) 2 года назад
 word = (input("Введите слово: ")) 
a = word.count('a')
e = word.count('e')
i = word.count('i')
o = word.count('o')
u = word.count('u')
y = word.count('y')
if a == 0:
print("a = False")
if e == 0:
print("e = False")
if i == 0:
print("i = False")
if o == 0:
print("o = False")
if u == 0:
print("u = False")
if y == 0:
print("y = False")
print(f"Гласных: {a + e + i + o + u}")
print(f"Согласных: {len(word) - (a + e + i + o + u)}")
Остальные ответы
Молот Шотландцев Высший разум (303090) 2 года назад
Так как у вас никто не делает
 vowels = 'aeiuy' 
word = (input("Введите слово: ")).lower()
print('количество согласных',
len(list(filter(lambda x: not x in vowels,word))))
Вот и всё решение
Дарья ВяткинаУченик (97) 2 года назад
дело в том, что я учусь на курсах и мне ставят задачу написать код с использованием только той теории, которую я прошла. в данном случае я не могу сдать работу с вашим решением...
Дарья Вяткина, Дело в том, что, с одной стороны, понять ваших преподавателей можно (ибо сами вы такой код пока что точно не напишите), но, с другой стороны, то, что вас заставили писать настолько ужасно с точки зрения быстродействия и напрасной траты ресурсов, что просто за голову хватаешься. Вы ШЕСТЬ РАЗ ПОДРЯД просканировали одну и ту же строку. А в коде у Молота Шотландцев строка сканируется только один раз, причем сам цикл обхода строки спрятан внутри функции filter и работает очень быстро. А сама фильтрация осуществляется при помощи лямбда-выражения . И если вы ходите на курсы не для галочки а чтобы чему-то научиться, то в этих вещах стоит попробовать разобраться.
Похожие вопросы