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

如何实现字符串字符频率统计并找出缺失的大写英文字母?

解决字符频率统计与缺失大写字母查找问题

你的代码存在几处语法错误和逻辑问题,导致无法正确识别缺失字母。以下是修正后的完整代码及问题说明:

问题分析

  1. 未正确引用模块属性:ascii_uppercase属于string模块,直接使用会触发NameError,需改为string.ascii_uppercase
  2. 函数定义语法疏漏:def find_missing_letter(string_1)缺少结尾的冒号:
  3. 集合运算逻辑错误:字符串不能直接与集合做差集运算,需先将输入字符串转为集合set(string_1)
  4. 内置函数大小写错误:Python中打印函数是小写print,大写Print会报错
  5. 冗余代码:list(string_1.encode('ascii'))对当前需求无实际作用,可直接删除

修正后的完整代码

import string

# 目标字符串
string_1 = 'WSXFGTYUJNMKLOIUYGFDXCVBHJKLMNBVFDEW'

# 统计字符频率
frequencies = {}
for char in string_1:
    if char in frequencies:
        frequencies[char] += 1
    else:
        frequencies[char] = 1
print(f"每个字符在'{string_1}'中的频率:\n{frequencies}")

# 查找缺失的大写英文字母
def find_missing_letters(input_str):
    # 生成所有大写字母的集合
    all_uppercase = set(string.ascii_uppercase)
    # 生成输入字符串中出现的大写字母集合
    present_chars = set(input_str)
    # 计算差集得到缺失的字母
    return all_uppercase - present_chars

missing_letters = find_missing_letters(string_1)
print("未出现的大写英文字母:", sorted(missing_letters))

代码说明

  • 字符频率统计:遍历字符串用字典记录字符出现次数,仅优化了打印语句格式(f-string更简洁),原逻辑本身是正确的
  • 缺失字母查找:利用集合差集运算快速定位未出现的大写字母,最后用sorted()将结果按字母顺序输出,提升可读性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 23:45:40