计算字符串中的特定字符 - Python

时间:2018-03-03 20:31:28

标签: python string count character

尝试找出Python中允许用户输入句子的最佳方法,然后计算该句子中的字符数,以及计算元音的数量。我希望输出返回字符总数,加上A的总数,O的总数,U的总数等。这是我的代码到目前为止:

# prompt for input    
sentence = input('Enter a sentence: ')

# count of the number of a/A occurrences in the sentence
a_count = 0    
# count of the number of e/E occurrences in the sentence
e_count = 0   
# count of the number of i/I occurrences in the sentence      
i_count = 0
# count of the number of o/O occurrences in the sentence         
o_count = 0
# count of the number of u/U occurrences in the sentence        
u_count = 0     

# determine the vowel counts and total character count

length=len(sentence)

if "A" or "a" in sentence :
     a_count = a_count + 1

if "E" or "e" in sentence :
     e_count = e_count + 1

if "I" or "i" in sentence :
     i_count = i_count + 1

if "O" or "o" in sentence :
     o_count = o_count + 1

if "U" or "u" in sentence :
     u_count = u_count + 1

#Display total number of characters in sentence
print("The sentence", sentence, "has", length,"characters, and they are\n",
    a_count, " a's\n",
    e_count, "e's\n",
    i_count, "i's\n",
    o_count, "o's\n",
    u_count, "u's")

问题是,当我运行这个时,我只为每个元音得到一个字符,这意味着我的代码实际上并没有按照我想要的方式计算单个元音。任何人根据我提出的代码输入如何解决这个问题将不胜感激

1 个答案:

答案 0 :(得分:3)

使用Counter from collections模块计算字母,然后迭代计数器,如果字母是元音,则将其计数添加到vowel_count。

from collections import Counter
counts = Counter(input('Enter a sentence: '))

vowel_count = 0
for letter in counts:
   if letter in ['A', 'E', 'I', 'O', 'U', 'a', 'e', 'i', 'o', 'u']:
       vowel_count += counts[letter]

例如,要获得(A,a)'的总数:

print('Count of A\'s is: {}'.format(counts['A'] + counts['a']))