{/'title/': /'Python 排班系统代码示例:自动分配 7 位老师和 20 位班主任/', /'description/': /'使用 Python 代码实现一个排班系统,自动分配 7 位老师和 20 位班主任到 20 周内的工作日,满足每个老师的可用时间和班主任的固定工作日。代码提供示例,并解释如何进行排班和输出结果。/', /'keywords/': /'Python, 排班系统, 自动排班, 老师, 班主任, 工作日, 代码示例, 算法, 自动化/', /'content/': /'///'import random////n////n# 定义人员列表////npeople = ['张莹', '范艾利', '温海霞', '柯乔', '冀腾宇', '程姣姣', '曹立帆']////n# 定义可选的工作日列表////navailable_days = {////n '张莹': ['周一'],////n '范艾利': ['周一', '周三', '周四'],////n '温海霞': ['周三'],////n '柯乔': ['周一', '周二', '周六'],////n '冀腾宇': ['周四', '周二', '周三'],////n '程姣姣': ['周一', '周二', '周三', '周四', '周五', '周六', '周日'],////n '曹立帆': ['周一', '周二', '周三', '周四', '周五', '周六', '周日']////n}////n////n# 定义班主任列表////ntutors = list(range(1, 21))////n# 定义班主任需要排班的日期////ntutor_days = ['周五']////n////n# 初始化排班字典////nschedule = {}////nfor i in range(1, 21):////n schedule[i] = []////n////n# 循环填充每周的排班////nfor week in range(1, 21):////n # 随机排序人员列表////n random.shuffle(people)////n ////n # 分配人员到工作日////n for day in ['周一', '周二', '周三', '周四', '周五', '周六', '周日']:////n if day in tutor_days:////n # 每周五排班给班主任////n schedule[week].append(tutors.pop(0))////n else:////n # 平均分配其他人员////n for person in people:////n if day in available_days[person]:////n schedule[week].append(person)////n people.remove(person)////n break////n////n# 打印所有20周的排班////nfor week in range(1, 21):////n print(f/'Week {week}: {schedule[week]}/')////n/'}/


原文地址: http://www.cveoy.top/t/topic/osDK 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录