You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python代码统计字符串中'Hamza'出现次数返回0的问题排查

问题分析与解决

你的代码存在两个核心问题,导致统计结果始终为0:

  • 遍历逻辑错误:for sub_str in string是逐个遍历字符串的单个字符,每个sub_str都是单个字母,永远不可能匹配长度为5的"Hamza",因此条件判断永远不触发,count值始终为初始的0。
  • 缩进错误:原代码中return count写在了for循环的缩进块内,哪怕遍历逻辑正确,第一次循环就会直接返回结果,根本无法完成完整遍历。

修正方案1:使用字符串内置count()方法(最简高效)

直接利用Python字符串的内置方法,一行就能完成统计:

string = "Hamza flew his kite today. But Hamza forgot to play basketball"

def count_name():
    return string.count("Hamza")

print(count_name())  # 输出:2

修正方案2:手动遍历子串(适合理解底层逻辑)

如果需要手动实现遍历逻辑,需按目标子串的长度截取片段进行匹配:

string = "Hamza flew his kite today. But Hamza forgot to play basketball"

def count_name():
    count = 0
    target = "Hamza"
    target_length = len(target)
    # 遍历到字符串末尾前target_length的位置,避免索引越界
    for i in range(len(string) - target_length + 1):
        # 截取从i开始的target_length个字符进行匹配
        if string[i:i+target_length] == target:
            count += 1
    return count

print(count_name())  # 输出:2

内容的提问来源于stack exchange,提问作者Hamza Khatib

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 03:25:15