公司动态
【办公类-16-07-05】合并版“2023下学期 大班户外游戏(有场地和无场地版,两周一次)”(python 排班表系列)
背景需求制作了中班户外游戏的班级排班表有场地和无场地【办公类-16-07-04】合并版“2023下学期 中班户外游戏有场地和无场地版一周一次”python 排班表系列-CSDN博客文章浏览阅读365次点赞9次收藏4次。【办公类-16-07-04】合并版“2023下学期 中班户外游戏有场地和无场地版一周一次”python 排班表系列https://blog.csdn.net/reasonsummer/article/details/136196822同理孩子做大班的户外游戏 班级排班表有场地和无场地分析1、1-14周大班场地是2周轮一次中班是1周轮1次7*2周2、15-19周大班场地是1周轮1次中班都是1周轮1次3、大班有7个场地也是斜线循环共计7次每次2周代码展示#20230217 大班7个班级 2023学年下学期中班户外游戏安排_有场地和无场地 两个版本 7个班级 第1-14周 各班每2周玩一个场地5天, 15周-19周1周1次 ) 作者阿夏 时间2024年2月20日 # import sys # sys.path.append(/path/to/openpyxl) import sys import random import xlrd import xlwt from openpyxl import load_workbook import time # 班主任贴周计划用的按班级分类 weekweek19 # int(input(共有几周如19周 20\n)) # aaaint(input(1、需要场地、2、不要场地\n)) for aaa in [1,2]: print(---------第1步制作每个班级的游戏的总表------) # 本学期大1大2大3大4大5大7大8大9班其中6班空缺一共有8个大班 gradenum[] for g in range(1,8): gradenum.append(大{}班.format(g)) gradenum.insert(0, gradenum.pop()) # print(gradenum) # [大7班, 大1班, 大2班, 大3班, 大4班, 大5班, 大6班] # print(len(gradenum))# 7 L[]# 班级 L1[] L3[] L2[] L4[] # 这里是8个活动室游戏活动室因为后面有递进所以把最后一个 08放到01前面这样摆放后面才会正确 # L3[美术游戏,角色游戏,建构游戏,表演游戏,沙水游戏,角色游戏]原始 L3gradenum # 生成6个班级第1个元素不同 for i in range(0,len(gradenum)): # b L3.pop(0) # 在班级列表L3中 删除 第1个元素 大1班 先删除08就是从01开始 L3.append(b) # 在班级列表L3最后 添加 第1个元素 # print(L[0]) L1.append(L3[0:len(gradenum)]) # 把不断变化的内容添加到L1 # print(L1) # [[大1班, 大2班, 大3班, 大4班, 大5班, 大6班, 大7班], [大2班, 大3班, 大4班, 大5班, 大6班, 大7班, 大1班], [大3班, 大4班, 大5班, 大6班, 大7班, 大1班, 大2班], [大 # 4班, 大5班, 大6班, 大7班, 大1班, 大2班, 大3班], [大5班, 大6班, 大7班, 大1班, 大2班, 大3班, 大4班], [大6班, 大7班, 大1班, 大2班, 大3班, 大4班, 大5班], [大7班, 大1班, 大2班, 大3班, 大4班, 大5班, 大6班]] # print(len(L1)) # # 7组基本 # 第1、2周相同第3、4周相同--第1314周 # 把各班“游戏活动室基本元素8个”循环21次数量多一点便于后期提取内容 for y in L1: for b in range(2): for z in y: L.append(z) #把y提取的单个元素一个个加到列表里并且依次循环22次数量足够多 # print(L) # [大1班, 大2班, 大3班, 大4班, 大5班, 大6班, 大7班, 大1班, 大2班, 大3班, 大4班, 大5班, 大6班, 大7班, 大2班, 大3班, 大4班, 大5班, 大6班, 大7班, 大1班, 大2班, 大3班, 大4班, 大5班, 大6班, 大7班, 大1班, 大3班, 大4班, 大5班, 大6班, 大7班, 大1班, 大2班, 大3班, 大4班, 大5班, 大6班, 大7班, 大1班, 大2班, 大4班, 大5班, 大 # 6班, 大7班, 大1班, 大2班, 大3班, 大4班, 大5班, 大6班, 大7班, 大1班, 大2班, 大3班, 大5班, 大6班, 大7班, 大1班, 大2班, 大3班, 大4班, 大5班, 大6班, 大7班, 大1 # 班, 大2班, 大3班, 大4班, 大6班, 大7班, 大1班, 大2班, 大3班, 大4班, 大5班, 大6班, 大7班, 大1班, 大2班, 大3班, 大4班, 大5班, 大7班, 大1班, 大2班, 大3班, 大4班 # , 大5班, 大6班, 大7班, 大1班, 大2班, 大3班, 大4班, 大5班, 大6班] # print(len(L)) # 98 /7班14周 # 15-19周 for y in L1[:5]: # 只要5周 7组基本取前5的内容变出 35个班级 for z in y: L.append(z) # print(L) # print(len(L)) # 133 最后班级等于9835133个班级 # print(---------第2步六类游戏乘以19周(只有一个------) L4[美术游戏1滑滑梯,美术游戏2小山坡,建构游戏 东侧操场,沙水游戏 一楼中庭,角色游戏1大1班南门口,角色游戏2小农场,表演游戏 大3班南门口] # 确保5个字符4个就加一个空格 L6[] for v in range(weekweek): # 19周a for w in L4: # for l in range(5):# 美术游戏中1班一周玩5次角色 L6.append(w) # print(L6) # print(len(L6)) # 133 # 根据班级增加角色、表演旁边的场地这里不涉及班级共用场地所以直接加在游戏名称后面 # 美术游戏1滑滑梯 美术游戏2小山坡 # 角色游戏1大1班南门口 角色游戏2小农场 # 建构游戏东侧操场 表演游戏大3班南门口 L5[] for cc in range(len(L6)): L5.append(L6[cc]) # print(L5) # print(len(L5)) # 133 # 复制5次 L7[] for ff in L5: for ww in range(5): if aaa1: L7.append(ff) # 美术活动操场 if aaa2: L7.append(ff[:5]) # 美术活动 # print(L7) # print(len(L7)) # 665/5133 # 切割成5个一组 for j in range(0,int(len(L7)/5)):#第1周 L2.append(L7[j*5:j*55]) print(L2) print(len(L2)) # 133 # L2角色游戏等6类游戏的嵌套列表 # # # # # print(---------第3步如果每周需要跳过假日考虑跳过假日------) # # # # # # 每周需要的天数 跳过节日.如第1周只有2天工作9月1-2日周四周五) 第3周周一是中秋节放假1天所以只有4个工作日 # # # # # day[2,5,4,5,5,2,5,5,5,5,5,5,5,5,5,5,5,4,5,5,2] # # # # # print(大{}班.format(gradenum[num])) # # # # # # 第1周 # # # # # for d in range(0,1): # d索引数字 # # # # # print(L[0:int(day[0])]) # 列表有8个活动室项目但只要其中5个周一到周五 # # # # # L2.append(L[0:int(day[0])]) # # # # # # 第2周开始 # # # # # for d in range(1,len(day)): # 0-21 # # # # # # print(d1) # # # # # LL[int(day[d-1]):] # day[0]2 # # # # # L.append(L) # 将a安排到最后一个座位 # # # # # print(L[0:int(day[d])])# 列表是八个循环我只要其中5个 # # # # # L2.append(L[0:int(day[d])]) # # # # # 以下是跳过假日的最初的写法太长了研究上面的是2022.9.9-2023.1.17 共21周的假日安排 print(---------第4-1步xls写入------) workbook xlwt.Workbook()# 新建xls工作簿 sheet workbook.add_sheet(Sheet)# 新建xls工作簿的工作表的名字是sheet print(---------第4-2步第1行 写入 星期一等------) weeks [班级,周次,星期一,星期二,星期三,星期四,星期五,] # weeks[周次,美术游戏,角色游戏,建构游戏,表演游戏,沙水游戏,角色游戏] week len(weeks) col0 for d in range(0, len(weeks)): sheet.write(0,col,weeks[d]) # 因为只有一行,所以就用有两种写法enumerate和这种 col 1 print(---------第4-3步第2列写入周次------) # 第0列 写入“第1周、第2周、第3周……第21周 dates[] # 制作第一列的所有文字 for i in range(1,int(weekweek1)): for r in range(len(L4)): n第{}周.format(%02d%i) # 用遍历方法获得“第1周、第2周、第21周”字样 dates.append(n) # 添加到列表 s print(dates) print(len(dates)) #114 # 写入周次 row1 for d in range(0, len(dates)): sheet.write(row, 1, dates[d]) # 这里enumerate不能用,因为只有一列,所以就用 row 1 print(---------第4-3步第1列写入班级------) # 写入班级列 L班级列 row1 for h in range(0, len(L[:len(dates)])): # 只要班级列表的前114个 sheet.write(row,0,L[h]) # 因为只有一行,所以就用有两种写法enumerate和这种 row 1 print(---------第4-5步第3-9列写入游戏内容一周五次相同------) row1 # 写入游戏内容列 L2游戏内容一周五个 for i in range((len(L2))): # 遍历21组[]的总数 for col,item in enumerate(L2[i],2): # L2[i]表格内的内容item索引数字col sheet.write(row,col,item) # row,col,item 行1、列索引数字、内容表格内容 写入第一行第一列 row 1 # print(---------第5步xls保存N份工作簿每份一页------) try: workbook.save(rC:\Users\jg2yXRZ\OneDrive\桌面\周计划\大班\过渡.xls) # 新建保存 只能xls print(计划生成成功) except e: print(失败...) print(e) # print(---------第6步把1份xls按照班级分类成N个不同的工作表内班主任贴周计划用------) # https://blog.csdn.net/xo3ylAF9kGs/article/details/135856653 # 切割成同表 import pandas as pd import os df pd.read_excel(rC:\Users\jg2yXRZ\OneDrive\桌面\周计划\大班\过渡.xls) if aaa1: writer pd.ExcelWriter(rC:\Users\jg2yXRZ\OneDrive\桌面\周计划\大班\02贴墙壁版-大班户外游戏-有场地标题.xls) if aaa2: writer pd.ExcelWriter(rC:\Users\jg2yXRZ\OneDrive\桌面\周计划\大班\01贴周计划-大班户外游戏-无场地.xls) df.to_excel(writer, sheet_nameSheet, indexFalse) for j in df[班级].unique(): df[df[班级] j].to_excel(writer, sheet_namej户外游戏, indexFalse) writer.save() # 删除过渡EXCLE os.remove(rC:\Users\jg2yXRZ\OneDrive\桌面\周计划\大班\过渡.xls)重点说明如何让第1、2周的7个班级相同作品展示:一、无场地版——贴周计划用贴周计划上的空格宽度有限最好4个字符二、有场地版——贴墙用便于每天查看活动内容和区域尽量在A4一页上问题目前没有对EXCEL表格进行格式设置都是通过手动全选标签批量统一设置标题、添加黑色边框、调整行列宽度。