所以我试图计算单词banana中的字母a的数字
def count_letters(letter, ch):
'''count the letter a in the fruit'''
count = 0
for char in letter:
#when char equals a then and 1 to count
if char == "ch":
count += 1
return count
print(count_letters("banana", "a"))
但是当我运行代码时,我得到0
答案 0 :(得分:3)
if char == "ch":
您正在检查char是否等于" ch",字面意思。
正确的做法是:
if char == ch:
答案 1 :(得分:3)
您的代码无效的一个原因是您将函数中的char
与常量而不是输入ch
进行比较。以下是您的算法可以实现的三种方式。
For循环
def count_letters(letter, ch):
count = 0
for i in range(len(letter)):
if letter[i] == ch:
count += 1
return count
count_letters('banana', 'a') # 3
<强> collections.Counter 强>
from collections import Counter
Counter('banana')['a'] # 3
生成器表达
sum(i=='a' for i in 'banana') # 3
答案 2 :(得分:2)
首先,你不指望是否存在字母&#39; a&#39;从你的脚本。另外,您如何期望单个字符匹配多个字符集。
正确的方法是:
char == ch