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

编写类处理含文字与整数的文本文件,生成带平均值的新文件

解决方案:识别文本中的整数并计算平均值

没问题,我来帮你搞定这个需求。首先我们得明确核心任务:从混杂着文字的文本里揪出所有整数,然后算出它们的平均值。下面我用Python实现一个类,专门处理这个逻辑,还考虑了边界情况(比如文本里没有整数的情况,避免除以0报错)。

核心思路

  • 读取文本内容后,把内容拆分成一个个独立的元素(按空格分割)
  • 遍历每个元素,尝试转换成整数,能成功转换的就收集起来
  • 计算收集到的整数的总和和数量,进而得到平均值;如果没有整数,返回None或者提示信息

完整代码实现

class IntegerAverageCalculator:
    def __init__(self, text_content):
        self.text_content = text_content
        self.integers = []
        self._extract_integers()

    def _extract_integers(self):
        """从文本内容中提取所有整数"""
        # 按空格分割文本成单个元素
        elements = self.text_content.split()
        for element in elements:
            # 尝试转换为整数,处理可能的异常
            try:
                num = int(element)
                self.integers.append(num)
            except ValueError:
                # 不是整数,跳过
                continue

    def calculate_average(self):
        """计算提取到的整数的平均值"""
        if not self.integers:
            # 没有找到整数的情况
            return None
        total = sum(self.integers)
        count = len(self.integers)
        return total / count

# 测试示例
if __name__ == "__main__":
    # 用你提供的示例文本测试
    sample_text = "blah blah 4 blah blah 2 3 blah 3 blah blah blah blah etc..."
    calculator = IntegerAverageCalculator(sample_text)
    average = calculator.calculate_average()
    print(f"提取到的整数: {calculator.integers}")
    print(f"平均值: {average}")  # 输出应该是3.0

代码说明

  • __init__方法初始化类,接收文本内容,然后调用提取整数的私有方法
  • _extract_integers是私有方法,负责遍历文本元素,筛选出所有符合要求的整数
  • calculate_average方法计算平均值,特意处理了无整数的边界情况,避免出现除以0的错误

如果你之后要扩展生成新文件的功能,只需要在这个类里加一个方法即可,比如:

def write_new_file(self, original_file_path, new_file_path):
    """生成新文件,内容和原文件一致,底部追加平均值"""
    # 读取原文件内容
    with open(original_file_path, 'r') as f:
        content = f.read()
    # 计算平均值
    average = self.calculate_average()
    # 准备追加的内容
    append_content = f"\n\n所有整数的平均值: {average}" if average is not None else "\n\n未找到任何整数"
    # 写入新文件
    with open(new_file_path, 'w') as f:
        f.write(content + append_content)

这样整个功能就完整啦,你可以根据自己的需求调整细节~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 09:07:47