尝试找出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")
问题是,当我运行这个时,我只为每个元音得到一个字符,这意味着我的代码实际上并没有按照我想要的方式计算单个元音。任何人根据我提出的代码输入如何解决这个问题将不胜感激
答案 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']))