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

Python Pangram函数输出优化:如何将缺失字母统一输出为一行?

Pangram问题输出格式修正

你的代码核心功能没问题,但非pangram场景下的输出逻辑有误——循环里每次调用print会导致每行输出一个缺失字母。只需修改输出部分的逻辑,先收集所有缺失字母再一次性打印即可。

修改后的完整代码

def panagram(input_str):
    import string
    alphabet = string.ascii_lowercase
    for char in alphabet:
        if char not in input_str.lower():
            return False
    return True

user_input = input()
if panagram(user_input):
    print("panagram")
else:
    import string
    alphabet = string.ascii_lowercase
    missing_letters = []
    # 先收集所有缺失字母
    for char in alphabet:
        if char not in user_input.lower():
            missing_letters.append(char)
    # 一次性输出汇总结果
    print(f"missing {' '.join(missing_letters)}")

优化版代码(更高效)

用集合运算替代循环遍历,能更快找出缺失字母,同时避免重复导入模块:

import string

def check_pangram(input_str):
    alphabet = set(string.ascii_lowercase)
    input_chars = set(input_str.lower())
    missing = sorted(alphabet - input_chars)
    return len(missing) == 0, missing

user_input = input()
is_pangram, missing_letters = check_pangram(user_input)
print("panagram" if is_pangram else f"missing {' '.join(missing_letters)}")

说明

  • 原代码的问题在于else分支中循环内直接print,导致每行输出一个字母;修改后先把所有缺失字母存入列表,再用' '.join()拼接成字符串,一次性输出
  • 优化版使用集合的差集运算,比逐个遍历判断更高效,同时函数返回结果和缺失字母,避免重复处理输入字符串

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 05:22:17