首页 > 解决方案 > 如何使 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()是否正确使用该方法?还是我的逻辑在某个地方?

标签: python

解决方案


这应该可以解决您的问题,您不需要在函数 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

推荐阅读