Форум сайта python.su
Доброго времени суток, меня интересует вопрос каким способом можно посчитать количество гласных и согласных букв в строке, естественно с учетом регистра
Офлайн
Не придумал ничего, кроме самого очевидного
# -*- coding: utf-8 -*-
def countChars(chars, text):
n = 0
for char in text:
if char in chars or char in chars.upper():
n += 1
return n
text = u"Текст, в кОТОРом будЕм считатЬ гласные И соГЛАсные"
g = countChars(u"аеёиоуыэюя", text)
s = countChars(u"бвгджзклмнпрстфхцчшщ", text)
print u"гласных: %i, согласных: %i" % (g, s)
Офлайн
# -*- coding: utf-8 -*-
CONS = u"бвгджзклмнпрстфхцчшщ"
VOV = u"аеёиоуыэюя"
text = u'Мама мыла раму'
cons = sum(1 for t in text.lower() if t in CONS)
vov = sum(1 for t in text.lower() if t in VOV)
print cons, vov
Офлайн
Вопрос по этой тематике:
как с помощью функции добиться того, чтобы программа отсортировала все введенные пользователем слова по количеству согласных букв в них?
Офлайн
>>> lst = ["bbaa", "bbbb", "abe", "defdefdef", "ab"]
>>> lst.sort(key=lambda i: sum(ltr in "bcdfghjklmnpqrstvwxz" for ltr in i))
>>> print(lst)
['abe', 'ab', 'bbaa', 'bbbb', 'defdefdef']
>>>
Офлайн