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

Python如何实现文本文件中单词附带数字的求和功能?

代码问题分析
  • 基础语法错误:函数定义行def rixum(file_name):后的所有函数内代码都没有缩进,Python强制要求缩进作为代码块标识,运行时会直接抛出语法错误。
  • 核心逻辑错误:找到单词中第一个数字的位置、截取后缀转为数字加入结果后,没有跳出循环,会继续遍历后续的字符,每遇到一个数字就再截一次后缀加入结果。比如单词a23会被拆成23、3两次加入列表,导致结果远大于预期。
  • 边界判断错误:while循环的条件写的是i < len(word)-1,这会直接跳过单词最后一个字符的判断,如果单词后缀只有1位数字(比如x7),会完全漏掉统计。
  • 读取逻辑限制:只调用了一次readline(),仅能处理文件的第一行内容,如果文件有多行数据,后续行的数字都会被忽略。
修正后可运行代码
def rixum(file_name):
    res = []
    # 用with上下文管理器自动处理文件关闭,避免资源泄漏
    with open(file_name, 'r', encoding='utf-8') as f:
        # 遍历文件所有行
        for line in f:
            temp = line.split()
            for word in temp:
                # 遍历字符找第一个数字的位置
                for i, char in enumerate(word):
                    if char.isdigit():
                        # 截取后缀转数字加入列表
                        res.append(int(word[i:]))
                        # 找到就跳出,不用继续遍历当前单词的后续字符
                        break
    total = sum(res)
    print(total)
    return total
验证效果

输入文件内容为a23 B55时,运行函数会输出78,符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 01:15:05