这是我的代码:
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'对象不能解释为整数
答案 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))