Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中创建元音计数器_Python - Fatal编程技术网

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

如何在python中创建元音计数器,python,Python,标题说明一切! 我试图在我创建的菜单中创建一个“显示统计信息”选项。输入一个句子后,它将显示以下内容。例如: 字符串分析: 6个字 26个字符 9个元音 17个辅音。 我已经做了整个单词和字符计数器现在我需要做元音和辅音,有人能帮我吗?我非常感谢您的支持 到目前为止,我得到的是: def displayst(): print() print("You said the following:") time.sleep(1) length = str(input("P

标题说明一切! 我试图在我创建的菜单中创建一个“显示统计信息”选项。输入一个句子后,它将显示以下内容。例如: 字符串分析: 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(长度)中:

这太疯狂了,我真的不知道我要去哪里,哈哈。
请帮我干杯。

您没有从disv返回任何东西,这就是为什么它说元音无。您可以使用
计数器
获取元音计数

from collections import Counter

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

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

如果要计数,请使用计数器:

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")

[]侧的列表返回每个元音出现的列表。外和将计数相加,得出总元音计数

那么问题是什么呢?您的代码似乎正常工作…当我运行程序时,我得到以下信息:您说了以下内容:{'a':0'o':1'u':0'e':1'i':0}您好字符串分析:1个单词5个字符无元音您想再做一次选择吗?1.是的。不,“这都是疯狂的”不是一个足够的问题描述(除非你处理时区)。是的,我所说的疯狂是,它给我:{'a':0,'o':1,'u':0,'e':1,'i':0}当我输入“hello”时,我想让它告诉我句子中到底有多少个元音。哇,非常感谢!它工作得很好。我花了这么多时间试图改变现状,找到一个可行的解决方案,巴尤姆!马上回答,谢谢。是的,我不明白为什么每个人都用柜台。这很好。@PadraicCunningham你什么意思?是的,我不理解相关性,除非你指的是时间复杂性。否则,这将完成所需的任务;去掉方括号,就会得到一个生成器表达式,它通常更节省时间和空间。这在这里没有多大区别,但了解它是件好事。
vowels = sum(cn[v] for v in "aeiou")
cons = sum(cn[c] for c in  "bcdfghjklmnpqrstvwxy")
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())
vcount = sum([s.count(v) for v in 'aeiou'])