其他的答案显示什么是你的代码错误。但也有一个内置的方式做到这一点,如果你不只是做这个练习:
>>> 'banana'.count('a')
3
Danben给这个修改后的版本:
def count_letters(word, char):
count = 0
for c in word:
if char == c:
count += 1
return count
这里有一些其他方式来做,希望他们会教你更多关于Python的知识!
相似,但较短的for
循环。利用这样的事实布尔可如果假的变成1,如果真和0:
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])
我觉得你的代码是缩进正确。你会得到一个缩进错误。 – Lucas 2010-05-28 21:12:16