关于python中的find()函数的问题

时间:2019-02-06 11:08:14

标签: python python-3.x

我是python的新手。在练习中,我尝试运行以下代码:

def my_find(haystack,needle):
    for index,letter in enumerate(haystack):
        if letter==needle:
            return index
        return -1
print(my_find("banana","a"))

结果是-1,这不是我期望的。如何使其正常工作?

3 个答案:

答案 0 :(得分:0)

请在循环外返回该值

def checkIfDesc(self, person):
    return any(families[family].famDescendant(person) for family in self.marriages)

答案 1 :(得分:0)

如果要查找所有针并将其作为列表返回,请使用此方法:

def my_find(haystack,needle):
    matches=[]
    for index,letter in enumerate(haystack):
        if letter==needle:
            matches.append(index)
    return matches

在评论中正确地指出了第二个return语句在错误的位置。

答案 2 :(得分:0)

正确的代码应为-

def my_find(haystack,needle):
    for index,letter in enumerate(haystack):
        if letter==needle:
            return index
    return -1
print(my_find("banana","a"))

返回值应在“ for”块之外。