小学分年级分班级自动排课Python代码示例
以下是一个简单的Python代码示例,用于自动排课:
import random
# 定义班级和课程信息
classes = {
'1年级': ['语文', '数学', '英语'],
'2年级': ['语文', '数学', '英语'],
'3年级': ['语文', '数学', '英语'],
}
# 定义教师和课时信息
teachers = {
'张老师': 10,
'李老师': 8,
'王老师': 6,
}
# 定义排课函数
def schedule(classes, teachers):
schedule_table = {}
for grade, subjects in classes.items():
schedule_table[grade] = {}
for subject in subjects:
schedule_table[grade][subject] = {}
while teachers:
teacher = random.choice(list(teachers.keys()))
if teachers[teacher] > 0:
schedule_table[grade][subject][teacher] = 1
teachers[teacher] -= 1
break
else:
del teachers[teacher]
return schedule_table
# 调用排课函数
result = schedule(classes, teachers)
# 打印排课结果
for grade, subjects in result.items():
print(f'{grade}:')
for subject, teachers in subjects.items():
print(f' {subject}:')
for teacher, hours in teachers.items():
print(f' {teacher}: {hours}课时')
在这个代码中,班级和课程信息以字典的形式定义,其中键为班级名称,值为课程列表。教师和课时信息也以字典的形式定义,其中键为教师名称,值为课时量。
排课函数根据班级和课程信息以及教师和课时信息,生成一个排课表。在排课过程中,随机选择一个教师,并检查该教师的课时量是否大于0,如果是,则将该教师安排到相应的班级和课程中,并将该教师的课时量减1。如果该教师的课时量已经为0,则从教师列表中删除该教师,并重新选择一个教师。最终生成的排课表以字典的形式返回。
在示例代码中,排课结果通过打印输出到控制台上。你可以根据自己的需求修改输出的格式或将结果保存到文件中。
原文地址: https://www.cveoy.top/t/topic/qorL 著作权归作者所有。请勿转载和采集!