我需要Python的帮助 - 在函数中搜索

时间:2011-09-09 20:07:07

标签: python

def find(word, letter):
    index = 0
    while index < len(word):
        if word[index] == letter:
            return index
        index = index + 1
    return -1

我明白了......

练习说:

  

修改find​​以使其具有第三个参数,即word中的索引where   它应该开始寻找。

请原谅我的新意,但......当它说修改'find'时它有第三个参数...... find(word,letter,thirdparameter)或者在函数定义中放置第三个参数?它应该开始寻找单词中的索引,我不太确定我是否会误解,但是它想要一个单词中的索引并开始查看随机索引号? ħ

5 个答案:

答案 0 :(得分:2)

  

当它说修改'find'所以它有第三个参数... find(word,letter,thirdparameter)

右。

  

或在函数定义中添加第三个para?

庵。那是一回事。在函数定义中添加第三个参数。

答案 1 :(得分:2)

问题是要求您为起始索引创建第三个参数。新签名类似find(letter, word, startindex)。它会像这样工作:

>>> find('red blue', 'd', 0) # starts at index 0 and finds 'd' at index 2
2
>>> find('red blue', 'd', 3) # starts at index 3 and finds no d's
-1
>>> find('red blue', 'e', 3) # starts at index 3, so misses the 'e' at index 1
7

答案 2 :(得分:2)

这意味着您应该修改该函数,以便它需要一个额外的参数,该参数将是在查找匹配项之前在字符串中开始的索引。

以下是进行此更改后的一些示例输出,可帮助您理解:

>>> find('abc abc', 'b', 0)  # starting at beginning, will find the first 'b'
1
>>> find('abc abc', 'b', 2)  # starting after first 'b', will find the second 'b'
5
>>> find('abc abc', 'b', 6)  # starting after both 'b's, won't find a match
-1

答案 3 :(得分:1)

目前需要两个参数wordletter。代码中已经有一个用于索引的变量,因此将其拉出并将其提升为具有默认值的参数。

答案 4 :(得分:0)

def find(word, letter, startat):
    try:
        return word[startat:].index(letter)+startat
    except:
        return -1

保持原始实施:

def find(word, letter, startat):
    for index in range(startat, len(word)+1):
        if word[index] == letter:
            return index
    return -1