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

Advent Of Code 2022第1题:处理文件换行时求和数组遇阻求助

问题分析与修复

你的代码存在两个核心问题:

  • 用f.read().split("\n")分割文件内容后,空行对应的元素是空字符串"",而非"\n"——因为split方法会将分隔符本身从结果中移除,所以if i == "\n"这个判断永远不会触发。
  • 遇到空字符串时,执行int(str(i))会抛出ValueError,因为空字符串无法转换为整数。

修复后的代码

with open("input.txt") as f:
    list_array = f.read().split("\n")
    new_array = []
    current_sum = 0  # 避免使用sum作为变量名,它是Python内置函数
    for item in list_array:
        if not item:  # 直接检测是否为空字符串
            new_array.append(current_sum)
            current_sum = 0
        else:
            current_sum += int(item)  # item本身已是字符串,无需额外转换
    # 处理最后一组没有空行结尾的情况
    if current_sum != 0:
        new_array.append(current_sum)
    print(new_array)

关键改动说明

  • 将判断条件改为if not item,精准识别空行对应的元素
  • 仅对非空字符串执行转整数累加操作,避免触发转换异常
  • 循环结束后额外判断一次,确保最后一组数字的总和也被加入结果数组
  • 变量名从sum改为current_sum,避免覆盖Python内置的sum()函数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 19:31:15