首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >“如何像计算机科学家一样思考(python)”中的练习7.9测量字符在字符串中的出现次数

“如何像计算机科学家一样思考(python)”中的练习7.9测量字符在字符串中的出现次数
EN

Stack Overflow用户
提问于 2011-01-17 05:45:34
回答 4查看 611关注 0票数 1

问题是如何用python编写一个程序来测量一个字符在字符串中出现的次数。

我写的代码:

代码语言:javascript
运行
复制
def countLetters(str, ch):
   count=0
   index=0
   for ch in str:
     if ch==str[index]:
       count=count+1
     index=index+1
   print count

当我使用这个函数时,它测量字符串的长度,而不是字符在字符串中出现的次数。我做错什么了?写这段代码的正确方式是什么?

EN

Stack Overflow用户

回答已采纳

发布于 2011-01-17 05:58:00

你正在覆盖你的'ch‘变量:

代码语言:javascript
运行
复制
def countLetters(str, ch):
#                      ^ the character you are looking for
    count=0
    index=0
    for ch in str:
#        ^ the string character you are trying to check
        if ch==str[index]:  # ???
            count=count+1
        index=index+1
    print count

(而且,返回值通常比仅仅打印它更有用)。

内置方法是str.count:

代码语言:javascript
运行
复制
"aaabb".count("a")  -> 3

如何重写代码:

代码语言:javascript
运行
复制
def countLetters(search_in, search_for):
    count = 0
    for s in search_in:    # iterate by string char, not by index
        if s==search_for:
            count += 1
    return count

和一个快速的巨蟒替换:

代码语言:javascript
运行
复制
def countLetters(search_in, search_for):
    return sum(1 for s in search_in if s==search_for)
票数 5
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4708273

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档