Python 循环和计数w/find

Python 循环和计数w/find,python,Python,因此,我正在努力为我的家庭作业做一些例子,却遇到了另一个错误 原件: word = 'banana' count = 0 for letter in word: if letter == 'a': count = count + 1 print count 嗯。看起来很简单 然后,我在函数名计数中使用了这段代码,并对其进行了泛化,以便它接受字符串和字母作为参数 def count1(str, letter):

因此,我正在努力为我的家庭作业做一些例子,却遇到了另一个错误

原件:

    word = 'banana'
    count = 0
    for letter in word:
        if letter == 'a':
            count = count + 1
    print count
嗯。看起来很简单

然后,我在函数名计数中使用了这段代码,并对其进行了泛化,以便它接受字符串和字母作为参数

    def count1(str, letter):
        count = 0             
        word = str            
        for specific_letter in word: 
            if specific_letter == letter: 
                count = count + 1 

        print count
这就是我仍然不确定自己做错了什么的地方

我必须重写这个函数,这样它就不用遍历字符串,而是使用上一节中的find的三参数版本。这是:

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


        return -1
这就是我能走多远。。。但是这个程序没有按我希望的方式运行

    def find(str, letter, startat):
        index = startat
        word = str   
        count = 0
        while index <= len(word):
            if word[index] == letter:
                for specific_letter in word:
                    if specific_letter == letter:
                        count = count + 1

                print count
            index = index + 1

有人能给我指一下正确的方向吗。我想了解我在做什么,而不是仅仅给出答案。谢谢。

我们的想法是使用find查找给定信件的下一个索引


在代码中不使用find函数。

其思想是使用find来查找给定字母的下一个索引


在代码中,您不使用find函数。

如果您想尝试一些有趣的pythonic方法:将原始find更改为yield index,并删除最终返回-1。哦,如果你想尝试一些有趣的和pythonic的东西,请修复:将原来的find更改为yield index,并删除最终的return-1。哦,修复这个练习的重点是使用先前定义的函数find作为构建块来实现新的函数count。所以,当您应该尝试更改count的实现时,尝试重新定义find是错误的


但是,该查找有一个缺陷,因为您给出了一个轻微的错误,您需要更改练习的重点是使用先前定义的函数find作为构建块来实现新的函数计数。所以,当您应该尝试更改count的实现时,尝试重新定义find是错误的


然而,在这个发现中有一个折痕,因为你给出了一个轻微的错误,你需要改变这里是我想到的:这应该有效

def find(word, letter, startat)
    index = startat
    count = 0
    while index < len(word):
        if word[index] == letter:
           count = count + 1  ##This counts when letter matches the char in word
    index = index + 1
print count



>>> find('banana', 'a', 0)
3
>>> find('banana', 'n', 0)
2
>>> find('mississippi', 's', 0)
4
>>> 

我想到的是:这应该行得通

def find(word, letter, startat)
    index = startat
    count = 0
    while index < len(word):
        if word[index] == letter:
           count = count + 1  ##This counts when letter matches the char in word
    index = index + 1
print count



>>> find('banana', 'a', 0)
3
>>> find('banana', 'n', 0)
2
>>> find('mississippi', 's', 0)
4
>>> 
尝试使用:

def find_count(srch_wrd, srch_char, startlookingat):
counter = 0
index = startlookingat
while index < len(srch_wrd):     
    if srch_wrd[index] == srch_char:
        counter += 1
    index += 1 
return counter`
尝试使用:

def find_count(srch_wrd, srch_char, startlookingat):
counter = 0
index = startlookingat
while index < len(srch_wrd):     
    if srch_wrd[index] == srch_char:
        counter += 1
    index += 1 
return counter`

@Ben Jackson我想做的是在字符串上选择一个spotindex,然后计算从这一点起选择的“字母”的数量。至少,这就是我阅读练习要求我的内容的方式。我不会理解这个。感谢大家的帮助。@Ben Jackson我想做的是在字符串上选择一个spotindex,然后计算从这一点起选择的“字母”的数量。至少,这就是我阅读练习要求我的内容的方式。我不会理解这个。谢谢大家的帮助。@Wim这个练习是。。。重写此函数,使其使用上一节中的find的三参数版本,而不是遍历字符串。我们刚开始这门课,并没有复习最后一部分:if name=='main':print count'banana','a'我已经做了5个小时了,非常感谢你们的回答,但我认为这不是他们练习的问题。我不知道了。。。我甚至不知道这个问题在问我什么。我的解释是这样的:我想选择一个单词和该单词中的一个字母,并选择该单词的起始点,然后计算从起始点开始该单词中有多少字母。@Wim该练习是。。。重写此函数,使其使用上一节中的find的三参数版本,而不是遍历字符串。我们刚开始这门课,并没有复习最后一部分:if name=='main':print count'banana','a'我已经做了5个小时了,非常感谢你们的回答,但我认为这不是他们练习的问题。我不知道了。。。我甚至不知道这个问题在问我什么。这就是我对它的解释:我想选择一个单词和该单词中的一个字母,并选择该单词的起始点,然后从起始点开始计算该单词中有多少字母。
def find_count(srch_wrd, srch_char, startlookingat):
counter = 0
index = startlookingat
while index < len(srch_wrd):     
    if srch_wrd[index] == srch_char:
        counter += 1
    index += 1 
return counter`