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

Python工作日计算代码问题:结果数量不符且排序错误求助

修正后的物流查询系统代码

你的代码存在以下核心问题:

  1. 逻辑错误:从起始日期加n天后往回遍历,会漏掉大量工作日,导致收集到的数量不足n个
  2. 输出顺序错误:倒序遍历导致输出为降序,不符合要求
  3. 未使用输入的起始星期参数,无法验证输入一致性

以下是修正后的代码:

from datetime import datetime, timedelta

# 读取输入
input_weekday = input().strip()
required_days = int(input().strip())
start_date_str = input().strip()

# 解析起始日期
start_date = datetime.strptime(start_date_str, '%d-%m-%Y')

# 验证输入的星期与起始日期匹配(可选,用于防止输入错误)
if start_date.strftime('%A') != input_weekday:
    print("输入的起始星期与起始日期不匹配")

# 收集指定数量的工作日
work_days = []
current_date = start_date

while len(work_days) < required_days:
    # 判断是否为工作日(0-4对应周一到周五)
    if current_date.weekday() < 5:
        work_days.append(current_date)
    # 日期往后推一天
    current_date += timedelta(days=1)

# 按升序输出每个工作日
for date in work_days:
    print(date.strftime('%d-%m-%Y'))

代码说明:

  • 核心逻辑:从起始日期开始逐个往后遍历,筛选出周一到周五的日期,直到收集到required_days个工作日为止,确保不会遗漏且顺序为升序
  • 输入验证:增加了起始星期与起始日期的一致性检查,避免用户输入错误的匹配信息
  • 格式规范:严格按照要求的dd-mm-YYYY格式输出日期

用你的测试场景验证:
输入假设为:

Friday
4
01-03-2019

输出将与预期完全一致:

01-03-2019
04-03-2019
05-03-2019
06-03-2019

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 21:25:37