用Python 2.7计算元音

时间:2016-01-23 19:31:29

标签: python string

我已被标记为'发布一个重复的问题。然而,我的问题并不相同,因为其他程序员正在询问如何计算字符串中特定字符的出现次数"。我的输出不计算特定字符的出现次数,而是计算字符串中特定字符(所有元音)的总数。例如,另一个人正在寻找输出:

A:1 E:6 I:2

我也在寻找总数,所以我的输出应该是:9(我们在两个代码中都说同一个字符串)。"

我创建了一段代码,但由于某种原因它会计算所有字母,而不仅仅是元音。我无法弄清楚我错在哪个部分。

vowels = 'a', 'e', 'i', 'o', 'u'

ip_str = raw_input("Enter a string: ")
ans = str(raw_input)

count = (0)

for letters in ans:
    if letters in vowels:
        count += 1

print str(count)

4 个答案:

答案 0 :(得分:3)

您将输入存储在ip_str变量中,但您再也不会实际使用该变量。您希望在迭代时使用该变量。请注意,在您的代码中有:

>>> str(raw_input)
'<built-in function raw_input>'

这实际上获取了内置函数的名称,并将其存储在ans而不是您的输入中。因此,每次运行时,您都会在'<built-in function raw_input>'而不是输入中获得元音数量,这将始终为9。

答案 1 :(得分:0)

我已经修改了一些代码,这对我来说完全没问题。

vowels = 'a', 'e', 'i', 'o', 'u'

inp = input("Enter a string: ")

count = 0

for letters in inp:
    if letters in vowels:
        count += 1


print("Count: " + str(count))

答案 2 :(得分:0)

raw_input("string") 

这是一个函数,它接受一个字符串作为参数,打印该字符串,从用户获取输入,然后将其存储在您存储整个函数的valueable中(如:variable1 = raw_input(“string”)将提示您使用“string”然后等待输入,然后将输入存储在variable1)

答案 3 :(得分:0)

我们在这里遇到了一些问题。首先,让我纠正它,然后我会解释:

vowels = ('a', 'e', 'i', 'o', 'u')

ans = raw_input("Enter a string: ")

count = 0
for letters in ans:
    if letters in vowels:
        count += 1

print str(count)

raw_input是一个函数,而不是一个变量。我认为你的意思是str(ip_str),但是没有必要这样做,因为raw_input将始终返回一个字符串:

  

然后函数从输入中读取一行,将其转换为字符串(剥离尾部换行符),然后返回该行。

因此,我们可以直接设置ans = raw_input("Enter a string: ")

现在,对于一些风格问题:vowels是一个元组,并且在()周围放置它会使它更清晰。无论哪种方式都可以。 count只是一个简单的int,并且在定义中不需要任何()

简而言之,唯一真正错误的是你如何定义ans