其他答案表明您的代码出了什么问题。但是,如果您不只是为了锻炼,还可以通过内置的方式进行此操作:
>>> 'banana'.count('a')3Danben给出了以下更正版本:
def count_letters(word, char): count = 0 for c in word: if char == c: count += 1 return count
还有其他一些方法,希望它们能教给您更多关于Python的知识!
类似,但
for循环更短。利用了布尔值可以为1(如果为true)和0(如果为false)的事实:
def count_letters(word, char): count = 0 for c in word: count += (char == c) return count
循环的缩写通常可以转化为列表/生成器理解。这将创建一个与每个字母相对应的整数列表,如果字母不匹配则为0,如果字母不匹配
char则为1,然后将它们求和:
def count_letters(word, char): return sum(char == c for c in word)
下一个过滤掉所有不匹配的字符
char,并计算剩余的字符数:
def count_letters(word, char): return len([c for c in word if c == char])



