【办公类-16-07-07】“2023下学期 中班户外游戏2(有场地和无场地版,每天不同场地)”(python 排班表系列)

作品展示

背景需求:

2024年2月教务组发放的是“每周五天内容相同,两周10天内容相同”的户外游戏安排

【办公类-16-07-05】合并版“2023下学期 大班户外游戏(有场地和无场地版,两周一次)”(python 排班表系列)-CSDN博客文章浏览阅读450次,点赞6次,收藏5次。【办公类-16-07-05】合并版“2023下学期 大班户外游戏(有场地和无场地版,两周一次)”(python 排班表系列)https://blog.csdn.net/reasonsummer/article/details/136197861

教学环节不断动态优化,2024年3月教务组又改了户外游戏安排。o(╥﹏╥)o

所以又要重新做一份“有场地”(贴墙实际操作版)和“无场地(贴会周计划)版本”

素材准备:

新的中班户外游戏安排表内容

这张表看起来,相当繁琐,

1、表格阅读繁琐

本次表格在实际使用中查看非常麻烦,如果需要先找到第4周(翻到第5张表),然后查看左侧的星期列,找到星期三,然后横向向右去查看中4班在那个位置,顺着中4班级格子向上查看是什么项目(表演游戏),然后把文档翻到最下面备注,查看场地。

因此,我努力把它“”翻译“成班级用的EXCEL。

2、转换成横排模式,突出游戏场地

以前的星期都是横排的,班级在左侧列,活动场地分布在X-Y的矩阵内。因此我想将第一周表格转换成以下样式,来确定“游戏场地”的分布情况

从第1周看,这次的场地是【12345,】,【61234】,【56123】的移动方式。从第2周看,第2周的中2的五天内容与第1周的中3内容相同。

因此代码修改如下:

'''
中班6个班级
2023学年下学期中班户外游戏安排_有场地和无场地 两个版本
(6个班级 每周每天换一个场地5天,)
作者:阿夏
时间:2024年3月20日
'''# import sys
# sys.path.append('/path/to/openpyxl')import sys
import random
import xlrd
import xlwt
from openpyxl import load_workbookimport time# '''班主任贴周计划用的(按班级分类)'''
weekweek=19
# int(input('共有几周?(如19周 20)\n'))
# aaa=int(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(2,8):gradenum.append('中{}班'.format(g))print(gradenum)# gradenum.insert(0, gradenum.pop())print(len(gradenum))#     # # ['2','3','4','5','6','7']L8=[]# 班级数列for b in range(19):for d in gradenum:        L8.append(d)print(L8)print(len(L8))# 制作19*5*6个元素,以便替换(备注)内容L1=[]# 班级for b in range(19):for d in gradenum:for c in range(5):L1.append(d)print(L1)print(len(L1))# 570# # print('---------第2步:制作六类游戏的五天列表------')  ts =19*5L=[]# 班级L11=[]L3=[]  L2=[]L4=[]# 这里是8个活动室游戏活动室,因为后面有递进,所以把最后一个 08,放到01前面,这样摆放后面才会正确)L3=['美术游戏(滑梯)','角色游戏','沙水游戏(中庭)','表演游戏','建构游戏(三楼露台)','角色游戏',]# 将1移动到5的后面L3.append(L3.pop(0))# 循环提取,获得5天一组的基础L11=[]for i in range(6):# 将5移动到1的前面L3.insert(0, L3.pop())# print(L3)L11.append(L3[0:5])# print(L11)# ['美术游戏(滑梯)', '角色游戏', '沙水游戏(中庭)', '表演游戏', '建构游戏(三楼露台)']# ['角色游戏', '美术游戏(滑梯)', '角色游戏', '沙水游戏(中庭)', '表演游戏']# ['建构游戏(三楼露台)', '角色游戏', '美术游戏(滑梯)', '角色游戏', '沙水游戏(中庭)']# ['表演游戏', '建构游戏(三楼露台)', '角色游戏', '美术游戏(滑梯)', '角色游戏']# ['沙水游戏(中庭)', '表演游戏', '建构游戏(三楼露台)', '角色游戏', '美术游戏(滑梯)']# ['角色游戏', '沙水游戏(中庭)', '表演游戏', '建构游戏(三楼露台)', '角色游戏']# 6种基本形体,遍历20次L12=[]for o1 in range(20):for o2 in L11:        L12.append(o2)# print(L12)# print(len(L12))# 120L13=[]for i in range(19):# 将5移动到1的前面L13.append(L12[i:i+6])print(L13)L6=[] for b1 in L13:for b2 in b1: for b3 in b2:L6.append(b3)print(L6)print(len(L6))# # 根据班级,增加角色、表演旁边的场地# # 中2班角色游戏、表演游戏场地——树屋                         中3班角色游戏、表演游戏场地——小农场# # 中4班角色游戏、表演游戏场地——中1班南门口                 中5班角色游戏、表演游戏场地——中3班南门口# # 中6班角色游戏、表演游戏场地——天台                         中7班角色游戏、表演游戏场地——天台L5=[]coom=['2','3','4','5','6','7']room=['树屋','小农场','大1班南门','大3班南门','天台','天台',]print(len(L1))print(len(L6))for cc in range(len(L6)):    if L6[cc]=='角色游戏' or L6[cc]=='表演游戏': # print(L6[cc])         for kk in range(len(room)) :if L1[cc]=='中{}班'.format(coom[kk]) :L5.append('{}({})'.format(L6[cc],room[kk])) else:L5.append(L6[cc])print(L5)print(len(L5))L7=[]for ff in L5:if aaa==1:L7.append(ff)        # 美术活动(操场)if aaa==2:L7.append(ff[:4])      # 美术活动print(L7)print(len(L7))# 570/5=114# #     print('---------第2步:如果一周有5天(不考虑跳过假日)------')# 限制19周的     for j in range(0,int(len(L7)/5)):#第1周L2.append(L7[j*5:j*5+5])print(L2)print(len(L2))    print('---------第4-1步:xls写入)------') workbook = xlwt.Workbook()# 新建xls工作簿sheet = workbook.add_sheet("Sheet")# 新建xls工作簿的工作表的名字是sheet print('---------第4-2步:第1行 写入 星期一等)------')    weeks = ['班级','周次','星期一','星期二','星期三','星期四','星期五',]# weeks=['周次','美术游戏','角色游戏','建构游戏','表演游戏','沙水游戏','角色游戏']week = len(weeks) col=0for 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(weekweek+1)):for r in range(len(gradenum)):n="第{}周".format('%02d'%i)    # 用遍历方法获得“第1周、第2周、第21周”字样,dates.append(n)          # 添加到列表    sprint(dates)  print(len(dates))  #114 # 写入周次row=1for d in range(0, len(dates)):sheet.write(row, 1, dates[d])         # 这里enumerate不能用,因为只有一列,所以就用row += 1    print('---------第4-3步:第1列写入班级)------') # 写入班级列 L=班级列row=1for h in range(0, len(L8[:len(dates)])):        # 只要班级列表的前114个        sheet.write(row,0,L8[h])         # 因为只有一行,所以就用有两种写法(enumerate和这种)row += 1      print('---------第4-5步:第3-9列写入游戏内容一周五次相同)------') row=1    #  写入游戏内容列 L2=游戏内容一周五个for i in range((len(L2))):         # 遍历21组[]的总数for col,item in enumerate(L2[i],2):            # L2[i]=表格内的内容=item,索引数字=colsheet.write(row,col,item)  # row,col,item 行=1、列=索引数字、内容=表格内容 写入第一行第一列row += 1 #print('---------第5步:xls保存N份工作簿(每份一页)------')             try:workbook.save(r"C:\Users\jg2yXRZ\OneDrive\桌面\周计划\测试.xls")    # 新建保存 只能xlsprint('计划生成成功')except e:print('失败...')print(e)# print('---------第6步:把1份xls按照班级,分类成N个不同的工作表内(班主任贴周计划用)------')      # https://blog.csdn.net/xo3ylAF9kGs/article/details/135856653# 切割成同表import pandas as pdimport osdf = pd.read_excel(r'C:\Users\jg2yXRZ\OneDrive\桌面\周计划\测试.xls')if aaa==1:writer = pd.ExcelWriter(r'C:\Users\jg2yXRZ\OneDrive\桌面\周计划\20240310 下学期中班户外游戏一周五天不同区域有场地(班主任用).xls')if aaa==2:writer = pd.ExcelWriter(r'C:\Users\jg2yXRZ\OneDrive\桌面\周计划\20240310 下学期中班户外游戏一周五天不同区域无场地(班主任用).xls')df.to_excel(writer, sheet_name='Sheet', index=False)for j in df['班级'].unique():df[df['班级'] == j].to_excel(writer, sheet_name=j+'户外游戏', index=False)writer.save()# # 删除过渡EXCLE
os.remove(r'C:\Users\jg2yXRZ\OneDrive\桌面\周计划\测试.xls')

感悟:

一、通过Python程序,将户外游戏安排表(总表)上的内容,转换为班本化的,可以实现:

1、标明各班每周每天的户外游戏内容(场地),便于班主任快速查看操作

2、制作无场地的户外游戏表,便于黏贴周计划。

二、更迅速应对工作中的“反复”,调整心态。

有了程序,在面对“上级”的“课(fan)程(fu)优(wu)化(chang),我就能多一些控制感,少一些抱怨,快速适应变化。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/772359.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

YOLOv7 | 注意力机制 | 添加ECA注意力机制

目录 原理简介 代码实现 yaml文件实现(tips:可以添加不同的位置) 检查是否添加执行成功 完整代码分享 论文创新必备(可帮忙做实验) 启动命令 ECA是通道注意力机制的一种实现形式,是基于SE的扩展。…

Data Interpreter: An LLM Agent For Data Science 论文解读

论文地址:https://arxiv.org/abs/2402.18679 Github:MetaGPT: The Multi-Agent Framework 数据解释器(Data Interpreter)是一个基于大型语言模型(LLM)的代理,专门为解决数据科学问题而设计。它…

数据丢失大救星:格式化后如何高效恢复文件

一、格式化危机:如何逆转数据流失 在数字时代,数据丢失无疑是一场灾难。当我们的电脑硬盘、手机或闪存盘不慎被格式化后,重要文件仿佛在一瞬间消失得无影无踪。面对这一突发状况,很多人会陷入迷茫和焦虑之中。那么,格…

Django(三)-搭建第一个应用(2)

一、编写更多视图 问题详情页——展示某个投票的问题和不带结果的选项列表。问题结果页——展示某个投票的结果。投票处理器——用于响应用户为某个问题的特定选项投票的操作。 # 1.问题详情页:展示某个投票的问题和不带结果的选项列表 def detail(request,questi…

放弃 Rust 选择 Zig,Xata 团队推出 pgzx —— 计划使用 Zig 开发基于 PG 的分布式数据库

Summary Xata 公司在基于 PostgresSQL 开发自己的分布式数据库,出于 Zig 和 C 语言以及 PostgreSQL 的 API 有更好的互操作性的考虑,他们选择了 Zig 而非当红炸子鸡语言 Rust。他们的博客文章中对 pgzx 进行了介绍。让我们来看下他们对 Zig 和 Rust 语言…

clickhouse学习笔记02(小滴课堂)

ClickHouse核心基础-常见数据类型讲解 插入数据: decimal类型的数据,整数部分超了会报错,小数部分超了会截取。 查看表结构: 查询: 插入: 更新操作: 这个和mysql的语句不太一样。 删除语句和my…

Kafka总结问题

Kafka Kafka Kafka Kafka的核心概念/ 结构 topoic Topic 被称为主题,在 kafka 中,使用一个类别属性来划分消息的所属类,划分消息的这个类称为 topic。topic 相当于消息的分配标签,是一个逻辑概念。主题好比是数据库的表&#xff0…

【SpringBoot】实现一个简单的图片上传

前端上传表单 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title> </head> <body> <form enctype"multipart/form-data" method"post" action&q…

MCGS学习——弹框报警

弹框报警的制作流程 先绘制一个弹框窗口&#xff0c;在弹框窗口里绘制弹框标志&#xff0c;记得绘制完成之后点击合成单元&#xff0c;此外&#xff0c;打开报警信息按钮中是打开报警界面 绘制好之后&#xff0c;如果我们想让弹窗出现在我们想让他出现的位置&#xff0c;那我…

Likeshop回收租赁系统:回收租赁超方便!

尊敬的各位&#xff0c;很高兴有机会向大家介绍一款备受瞩目的系统——全新的Likeshop回收租赁系统。 无论是电子产品、衣服还是书本&#xff0c;越来越多人选择在二手平台上进行交易或租用&#xff0c;商品回收、租赁的需求越来越大&#xff0c;很多想入场的兄弟们都苦于没有…

(分享)一个图片添加水印的小demo的页面,可自定义样式

有时候想给某张图片添加一个自己的水印&#xff0c;但是又懒的下载相应软件&#xff0c;用js canvas制作一个静态页面&#xff0c;对于单张图片添加自定义文字水印&#xff0c;大小 间距&#xff0c;角度可调。 页面如下&#xff1a; 选择图片&#xff0c;设置相应参数&#x…

公众号超牛鼻的爆文仿写机器人,原创三篇只需6分钟,篇篇是爆文基因

大家好&#xff0c;我是大胡子&#xff0c;专注于RPA提效​&#xff0c;今天就介绍一款公众号超牛鼻的爆文仿写机器人​。 和以前的公众号爆文机器人不太一样&#xff0c;以前的爆文机器人需要手动插入图片、添加封面、插入话题&#xff0c;然后今天这个机器人就完全解决这几个…

代码随想录算法训练营第五十五天|583. 两个字符串的删除操作、72. 编辑距离

583. 两个字符串的删除操作 刷题https://leetcode.cn/problems/delete-operation-for-two-strings/description/文章讲解https://programmercarl.com/0583.%E4%B8%A4%E4%B8%AA%E5%AD%97%E7%AC%A6%E4%B8%B2%E7%9A%84%E5%88%A0%E9%99%A4%E6%93%8D%E4%BD%9C.html视频讲解https://…

详解:写作和赚钱的 4 个关系!看完你一定会忍不住想开始写!

飞书文档的加密很强&#xff0c;也没有和自家的豆包大模型融合&#xff0c;所以只能通过其他方式获取文档的内容。 &#xff08;1&#xff09;将飞书文档转换为PDF&#xff0c;要用到浏览器插件&#xff1a; GoFullPage - Full Page Screen Capture - Microsoft Edge Addons …

RT-Thread动态内存扩展,使用多块不连续的RAM作为动态内存

开发环境 MCU&#xff1a;STM32F429VET6&#xff08;1M Flash&#xff0c;192K64K共256K SRAM&#xff09; 编译环境&#xff1a;MDK5.38 实时系统&#xff1a;RT-Thread标准版 目的 这颗MCU的SRAM默认是使用192K&#xff0c;即从地址0x20000000开始&#xff0c;最大0x30000…

第九届蓝桥杯大赛个人赛省赛(软件类)真题C 语言 A 组-分数

solution1 直观上的分数处理 #include <iostream> using namespace std; int main() {printf("1048575/524288");return 0; }#include<stdio.h> #include<math.h> typedef long long ll; struct fraction{ll up, down; }; ll gcd(ll a, ll b){if…

2024中国闪存市场观察:AI助推闪存全面起势?

过去两年&#xff0c;闪存市场一直处于低迷状态&#xff0c;但去年第四季度闪存颗粒资源的上涨&#xff0c;导致闪存产品价格一路上扬&#xff0c;市场遂发生反转。 2024年&#xff0c;中国闪存市场会彻底走向复苏&#xff0c;还是急转直下&#xff1f;中国AI热潮&#xff0c;…

MATLAB 自定义生成平面点云(可指定方向,添加噪声)(48)

MATLAB 自定义生成平面点云(可指定方向,添加噪声)(48) 一、算法介绍二、算法步骤三、算法实现1.代码2.效果一、算法介绍 通过这里的平面生成方法,可以生成模拟平面的点云数据,并可以人为设置平面方向,平面大小,并添加噪声来探索不同类型的平面数据。这种方法可以用于…

数据结构进阶篇 之 【二叉树】详细概念讲解(带你认识何为二叉树及其性质)

有朋自远方来&#xff0c;必先苦其心志&#xff0c;劳其筋骨&#xff0c;饿其体肤&#xff0c;空乏其身&#xff0c;鞭数十&#xff0c;驱之别院 一、二叉树 1、二叉树的概念 1.1 二叉树中组分构成名词概念 1.2 二叉树的结构概念 1.3 特殊的二叉树 2、二叉树的存储结构 …

全面:vue.config.js 的完整配置

vue.config.js是Vue项目的配置文件&#xff0c;用于配置项目的构建、打包和开发环境等。 在Vue CLI 3.0之后&#xff0c;项目的配置文件从原来的build和config目录下的多个配置文件&#xff0c;合并成了一个vue.config.js文件。这个文件可以放在项目的根目录下&#xff0c;用于…