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

Python统计文件最高频A-Z字符时输出异常的问题排查

代码问题分析

你的代码存在多处逻辑错误,导致统计结果不符合预期,具体疏漏如下:

  • 变量名不统一:初始化计数数组时你定义的变量是array,但后续计数、遍历阶段全部用了未声明的变量a。如果运行环境里有之前残留的a变量,会直接复用该变量的内容,计数逻辑完全失效,这是你输出4个结果的核心原因。
  • 未过滤非大写A-Z字符:代码默认所有读取的字符都是大写A-Z,没有做任何校验。一旦文件里有小写字母、数字、标点、空格等其他字符,ord(x) - ord("A")的结果会超出0~25的合法索引范围,要么触发越界报错,要么错误修改其他数据,导致计数混乱。
  • 未指定文件编码:调用open()读取文件时没有显式指定编码,不同操作系统默认编码不同,读取含非ASCII字符的文件时会出现乱码,进一步干扰统计结果。
修正后参考代码
with open("24.txt", encoding="utf-8") as f:
    st = f.read()

count = [0] * 26
for x in st:
    # 仅统计大写A-Z字符
    if 'A' <= x <= 'Z':
        count[ord(x) - ord("A")] += 1

max_cnt = 0
max_char_idx = 0
for i in range(26):
    if count[i] > max_cnt:
        max_cnt = count[i]
        max_char_idx = i

print(chr(max_char_idx + ord("A")), max_cnt)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 14:39:00