其他的答案顯示什麼是你的代碼錯誤。但也有一個內置的方式做到這一點,如果你不只是做這個練習:
>>> '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