python - 如何使 index() 方法返回一个整数而不是 None?
问题描述
我正在尝试使用以下函数返回字符串中第一个元音的索引值:
def is_vowel(c):
v = 'aeiou'
for l in v:
if l == c:
return True
else:
return False
def index_of_first_vowel(string):
for l in string:
if is_vowel(l):
index = int(string.index(l))
return index
所以字符串 'hello' 应该返回 1。
我尝试了许多不同的方法来编写第二个函数,并且每次它返回None
。我index()
是否正确使用该方法?还是我的逻辑在某个地方?
解决方案
这应该可以解决您的问题,您不需要在函数 is_vowel 中循环输入字母列表,您只需查看 c 是否在其中。
此外,每次您不通过“a”时,您的循环都会在第一次通过时被中断
>>> def is_vowel(c):
... if c in "aeiou":
... return True
... return False
...
>>> def index_of_first_vowel(string):
... for l in string:
... if is_vowel(l):
... index = int(string.index(l))
... return index
...
>>> print(index_of_first_vowel("hello"))
1