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

Python从stdin读取TXT生成大写首字母缩写程序问题求助

问题原因及解决方案

问题原因

  1. 输入处理逻辑错误:你把存储所有行的列表inpt1直接转成字符串传给make_acronym,列表转字符串后会变成类似['access point', 'American National Standards Institute']的格式,调用split()后第一个元素是'[',取首字符后再转大写,自然不是每行术语的首字母缩写;而且你没有逐行处理输入内容,导致所有行被当成一个整体处理,完全偏离需求。
  2. 函数内冗余代码:make_acronym里第一个return oupt之后的代码永远不会执行,属于无效代码,不过这不是导致丢失字符的直接原因。

修正后的代码

import sys

def main():
    def make_acronym(stng):
        # 拆分字符串为单词,取每个单词首字母拼接后转大写
        return ''.join(word[0].upper() for word in stng.split())

    # 逐行读取输入并处理
    for line in sys.stdin:
        term = line.strip()
        if not term:  # 跳过空行
            continue
        acronym = make_acronym(term)
        print(f"The acronym of '{term}' is: {acronym}.")

if __name__ == "__main__":
    main()

代码说明

  • 简化了make_acronym的实现逻辑,去掉冗余代码,直接生成大写首字母缩写。
  • 改为逐行读取并处理输入,符合你读取多行TXT内容的需求。
  • 添加空行判断,避免处理空行导致的无效输出。
  • 使用f-string实现你要求的输出格式,直接将术语和对应缩写插入到指定字符串结构中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 05:05:54