计算字符串中的字母

2024-03-29 06:59:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道如何计算字符串中的特定字母。我脑子里首先想到的是len函数。出于好奇,有没有一种方法可以在不使用内置函数和len的情况下编写此代码?在

有一个问题被问到与此类似,我很难理解它。在

def count_letters(word, char):
  count = 0
  for c in word:
    if char == c:
      count = count + 1
  return count

if char == c:和{}中到底发生了什么?我理解这个人为什么开始使用for循环,但我不明白为什么在后面加一个if?在


Tags: 方法函数字符串代码forlenifdef
3条回答

字符串有一个内置的count()方法:

>>> s = 'aaabbbccc'
>>> s.count('a')
3
>>> s.count('aa')
1

需要使用if,因为您只想计算特定字符char的实例。如果没有它,您将最终对字符串中的每个字符执行count = count + 1,这样就可以得到完整的字符串长度,而不是要查找的特定字符的数量。在

代码中有注释:

for c in word:            # go through each character in code
    if char == c:         # if the character is the one we're counting
        count = count + 1 # add one to the current count of characters

你试过Python Wiki吗?在

它声明任何具有迭代函数的对象都可以循环,这回答了您的第二个问题。在

因为您不想使用len函数,所以您可以在链接的答案中使用类似于这样的for循环来遍历对象(字符串word),查找字符char,并记录每次用count找到{}。在

参数char需要在word参数中找到,因此c只是一个变量,在它循环使用word时,它只是一个设置为每个字母(或字符,不是字符串的所有部分都是字母)的变量。在

if语句的原因是,当循环变量c等于char时,可以执行块。在这个特定的块中,count被向上迭代(count = count + 1),一旦函数遍历for循环,它将返回count(找到char的次数,有效地按您的要求计算字符串中的特定字母)。在

长篇大论,但简而言之,是的,你发布的函数将给你一个字母在单词中出现的次数。在

相关问题 更多 >