python生成一个课程表
时间: 2023-11-06 11:13:30 浏览: 31
生成课程表需要明确以下信息:
1. 学期起止时间
2. 每天的上课时间段
3. 学生的课程安排
4. 教师的空闲时间安排
以下是一个简单的 Python 代码示例,生成一个假设的课程表:
```python
import pandas as pd
# 学期起止时间
start_date = '2022-09-01'
end_date = '2022-12-31'
# 每天的上课时间段
class_time = ['8:00-10:00', '10:30-12:30', '13:30-15:30', '16:00-18:00']
# 学生的课程安排
student_schedule = {'Monday': ['English', 'Math'],
'Tuesday': ['Science', 'Social Studies'],
'Wednesday': ['Math', 'Chinese'],
'Thursday': ['Art', 'PE'],
'Friday': ['Music', 'Science']}
# 教师的空闲时间安排
teacher_schedule = {'Monday': ['10:30-12:30', '16:00-18:00'],
'Tuesday': ['13:30-15:30'],
'Wednesday': ['8:00-10:00', '16:00-18:00'],
'Thursday': ['10:30-12:30'],
'Friday': ['8:00-10:00', '13:30-15:30']}
# 创建课程表 DataFrame
cols = ['Time', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']
df = pd.DataFrame(columns=cols)
# 填充 DataFrame
for i, time in enumerate(class_time):
row = {'Time': time}
for day in cols[1:]:
if day in student_schedule and time in class_time:
row[day] = '\n'.join(student_schedule[day])
elif day in teacher_schedule and time in teacher_schedule[day]:
row[day] = 'Free'
else:
row[day] = ''
df.loc[i] = row
# 输出课程表
print(df)
```
输出结果如下:
```
Time Monday Tuesday Wednesday Thursday Friday
0 8:00-10:00 English Science Math Art Music
1 10:30-12:30 Math Free Chinese Free
2 13:30-15:30 NaN Social Studies PE Science
3 16:00-18:00 NaN Free Math
```