如何在python中创建元音计数器

时间:2015-04-10 19:02:12

标签: python

标题说全部! 我想在我创建的菜单中创建一个“显示统计信息”选项。输入句子后会显示以下内容。例如: 字符串分析: 6个字 26个字符 9个元音 17辅音。 我已经制作了整个单词和字符计数器,现在我需要做元音和辅音,有人可以帮我吗?我非常感谢支持!

到目前为止我得到了什么:

def displayst():
    print()
    print("You said the following:")
    time.sleep(1)
    length = str(input("Please enter your sentence: "))
    word = dis(length)
    lengths = diss(length)
    vowel = disv(length)
    print(length)
    time.sleep(1)
    print()
    print("String Analysis:",'\n', word, "Words",'\n', lengths, "Characters",'\n',vowel,"Vowels",'\n')
    again()

元音= disv(长度)是我需要完成的,如果你可以帮助辅音,这将是伟大的!如果不是我主要需要作为辅音完成的元音,我想我可以尝试一下哈哈。

然后在我的disv(长度)中:

vowels = 'aeiou'
count = {}.fromkeys(vowels,0)
for char in length:
   if char in count:
        count[char] += 1
print(count)

这一切都很疯狂,我老老实实地提供了一个线索,我正在与这个哈哈。 请帮助欢呼。

4 个答案:

答案 0 :(得分:2)

如果您想要计数,请使用Counter dict:

from collections import Counter

inp = input("Please enter your sentence: ").lower()
cn = Counter(inp)
vowels = {v: cn[v] for v in "aeiou" if v in cn}
cons = {c: cn[c] for c in "bcdfghjklmnpqrstvwxyz" if c in cn}

如果您希望总计数只是将值相加:

 print(sum(vowels.values()))

 print(sum(cons.values()))

如果您只想要总和:

vowels = sum(cn[v] for v in "aeiou")
cons = sum(cn[c] for c in  "bcdfghjklmnpqrstvwxy")

答案 1 :(得分:0)

你没有从disv返回任何东西,这就是为什么它说元音无。你可以使用counter来获得元音数

from collections import Counter

x = Counter(length)
vowel_count = 0
for v in "aeiou":
    vowel_count += x[v]
return vowel_count

这将返回句子中元音的确切数量。

答案 2 :(得分:0)

def getInput():
    sentenceInput=input('Enter your sentence: ')
    return sentenceInput

def count(sentenceInput):
    vowelList=['a','e','i','o','u']
    vowelCount = 0
    constCount = 0
    spaceCount = 0
    for char in sentenceInput:
        if char in vowelList:
            vowelCount += 1
        elif char == ' ':
            spaceCount += 1
        else:
            constCount +=1
    print ('Length: ' + str(len(sentenceInput)) + ', Words: ' + str(spaceCount) + ', Vowels: ' + str(vowelCount) + ', Consonants: ' + str(constCount))

count(getInput())

答案 3 :(得分:0)

vcount = sum([s.count(v) for v in 'aeiou'])

[]中的列表理解返回每个元音的出现列表。外部总和总计计数以给出总元音数。