如何计算句子中特定字母的数量?

时间:2018-02-09 00:32:28

标签: python

所以我试图计算单词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

3 个答案:

答案 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