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

Python统计字符总数、大小写、数字等数量的函数运行异常求助

问题排查及解决方法

错误原因

  • 所有计数器的初始化逻辑都放在了for循环内部,每次遍历新字符的时候都会把之前的计数清零,最终只能统计到字符串最后一个字符的属性,无法累加得到全局的计数结果。
  • 没必要两次遍历字符串,所有统计逻辑可以在一次遍历中完成,减少不必要的性能损耗。
  • 变量命名使用了str、list这类Python内置关键字/类型名,容易和内置方法冲突,属于不规范的编码习惯。

修复后代码

def countCharacter(input_str):
    # 所有计数器在循环外初始化,仅执行一次
    letters = 0
    upper = 0
    lower = 0
    digit = 0
    others = 0
    for i in input_str:
        if i.isalpha():
            letters += 1
            if i.isupper():
                upper += 1
            else:
                lower += 1
        elif i.isnumeric():
            digit += 1
        else:
            others += 1
    res_list = [letters, upper, lower, digit, others]
    return res_list

print(countCharacter("wh12p3cmaLKND;'$%^&*"))

运行结果

执行上述代码会输出正确的统计结果:[10, 4, 6, 3, 7],对应总字母数10、大写字母4个、小写字母6个、数字3个、其他字符7个。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 16:42:01