计算字符串中的元音数量(python)

时间:2017-10-04 07:31:34

标签: python-3.x

这是我的代码:

word='azcbobobegghakl'

cout=0

for leter in range(word):

    if leter=='a' or leter=='e' or leter=='i' or leter=='o' or leter=='u':  

        cout += 1

print('Number of vowels: '+ str(cout))

我收到错误:

TypeError:'str'对象不能解释为整数

3 个答案:

答案 0 :(得分:1)

您已选择范围(字)中的字母[sic]而不是for leter[sic] in word

在你的python控制台中试试这个:

>>> range("word")
Traceback (most recent call last):
File "<input>", line 1, in <module>
TypeError: 'str' object cannot be interpreted as an integer

这是你得到的错误。

这应修复您的代码:

word='azcbobobegghakl'

cout=0

for leter in word:

    if leter=='a' or leter=='e' or leter=='i' or leter=='o' or leter=='u':  

        cout += 1

print('Number of vowels: '+ str(cout))

答案 1 :(得分:0)

您已经有固定版本但是有解释。您正在使用范围(单词)。 Word是一个字符串,而范围需要一个数字。如果你需要一个单词的长度,你可以使用len()。

答案 2 :(得分:0)

让我告诉你,范围是一个函数,它给你的值列表在整数,即范围(10)将给我0,1,2,3,4,5, 6,7,8,9。 这仅适用于数字。 你可以改成它  for letter in word:

`for letter in range(len(word)):`





  `if word[leter]=='a' or word[leter]=='e' or word[leter]=='i' or` word[leter]=='o' or word[leter]=='u':  





cout += 1

这是bacuse len(word)给我的长度和范围给我一个迭代器从0迭代到len-1 现在我可以使用索引来访问每个字母 这是我的代码:

 word='azcbobobegghakl'

cout=0

for leter in word:



if leter=='a' or leter=='e' or leter=='i' or leter=='o' or leter=='u': 





 cout += 1

print('Number of vowels: '+ str(cout))

word='azcbobobegghakl'

cout=0

for leter in range(len(word)):



if word[leter]=='a' or word[leter]=='e' or word[leter]=='i' or word[leter]=='o' or word[leter]=='u':  
cout += 1

print('Number of vowels: '+ str(cout))