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

如何修改Python函数返回文本文件各区间的偶数数字个数

修复后的区间偶数数量统计函数

原代码存在的问题

  • 最终返回的last变量未定义,应该返回存储结果的lst
  • 计数逻辑错误:当前代码是累加偶数的数值,需求是统计偶数的个数
  • 区间识别逻辑缺失:没有按照START和END的包裹范围划分统计区间,直接对所有数字行做处理
  • 行读取逻辑错误:进入循环后第一时间就读取下一行,会跳过开头的START标记识别

修复后的完整代码

from typing import TextIO, List

def evens(number_file: TextIO) -> List[int]:
    lst = []
    current_count = 0
    in_interval = False  # 标记是否在START-END的统计区间内
    
    line = number_file.readline().strip()
    while line != '':
        if line == 'START':
            in_interval = True
            current_count = 0  # 新区间开始,重置计数
        elif line == 'END':
            in_interval = False
            lst.append(current_count)  # 区间结束,存入计数
        elif in_interval and line.isdigit():
            num = int(line)
            if num % 2 == 0:  # 判断是否为偶数
                current_count += 1
        line = number_file.readline().strip()
    
    return lst

验证说明

针对示例numbers.txt文件运行该函数:

  1. 第一个START到END区间内有1、2两个数字,偶数只有2,计数为1
  2. 第二个START到END区间内只有3,为奇数,计数为0
  3. 第三个START到END区间内有4、5、6,偶数为4和6,计数为2
    最终返回结果为[1, 0, 2],符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 20:15:06