Большинство других ответов, кажется, подсчитывают каждый символ отдельно, а затем суммируют результаты, что означает, что код должен многократно перебирать строку ввода и несколько неэффективен. Более эффективным было бы подсчитать все вхождения всех символов за один раз, используя collections.Counter
:
import collections
s = "This is an example sentence."
counter = collections.Counter(s)
consonants = 'bcdfghjklmnpqrstvwxyzBCDFGHJKLMNPQRSTVWXYZ'
num_consonants = sum(counter[char] for char in consonants)
# result: 14
vowels = 'aeiouAEIOU'
num_vowels = sum(counter[char] for char in vowels)
# result: 9