Python实现倒班员工上4休4等周期排班功能的问题求助
原代码的问题是每次循环都固定读取周列表的固定索引,没有推进日期偏移,所以每次输出内容完全一致,也没有覆盖完整的4天休息周期。
修改后代码
schedule = ['monday','tuesday','wednesday','thursday','friday','saturday','sunday'] on = 4 off = 4 # 排班总周期 work_cycle = on + off # 按需调整需要输出的总排班天数,示例设置为12天匹配你给出的输出样例 total_days = 12 for day_idx in range(total_days): current_weekday = schedule[day_idx % 7] if day_idx % work_cycle < on: print(f'on: {current_weekday}') else: print(f'off: {current_weekday}')
核心调整说明
- 引入全局累加的日期序号
day_idx,替代原来固定的周内索引,实现跨周的日期自动推进 - 通过
day_idx % 7匹配对应的星期,自动循环周列表,不需要手动处理周切换逻辑 - 以8天(4天上班+4天休息)为完整排班周期,通过
day_idx % work_cycle判断当前日期的排班状态,实现周期循环 - 可通过修改
total_days的数值,灵活控制需要输出的排班总天数,也可以改成while循环实现无限输出
内容的提问来源于stack exchange,提问作者jpd736
相关产品推荐
相关产品推荐

