【办公类-16-09】“2022下学期 大班运动场地分配表-跳过节日循环排序”(python 排班表系列)
样例展示:跳过节日的运动场地循环排序表(8个班级8组内容 下学期一共20周)

背景需求:
上学期做过一次大班运动场地安排,跳过节日。2023.2下学期运动场地排班(跳过节日)又来了。
一、场地器械微调


二、排序顺序不变

三、如果让节日的格子空在正确的位置?
上学期虽然程序批量生成了跳过节日的运动场地,但是涉及到节日的部分内容还是需要手动调整。(而且是1个班级的手工剪切复制)

比如 第一周周一的2天但是跳过的节日那一周的运动是从星期一开始排的,需要人工手动把场地贴到指定的格子里(如第一周的星期一星期二的内容实际上是星期四、星期五)


本代码解决的重点——跳过节日,并补全节日名称,每周正好5个
测算场地及中间节日在五天内的总排序

根据校历计算数量、设计占位空格

2023年2月17日 2022学年下学期大班分散运动(跳过节日 20周)备份
import sys
import random
import xlrd
import xlwt
from openpyxl import load_workbook
import time
print('---------运动场地的循环------')
print('---------规则:------')
print('---------1.有8个运动场地,01 02 03 04 05 06 07 08:------')
print('---------2.大1班从01开始游戏,01 02 03 04 05 06 07 08:------')
print('---------3.大2班从02开始游戏,02 03 04 05 06 07 08,01 ------')
print('---------4.大3班从03开始游戏,03 04 05 06 07 08,01 02 ------')
print('---------依次类推,最后制作出所有大班的每周的运动排序表 ------')
print('---------通常是每周5天,需要跳过节假日 ------')
time.sleep(2)print('---------第1步:把8个运动场地循环21次(105元素组成的列表)------')# 本学期:大1,大2,大3,大4,大5,大7,大8,大9班,其中6班空缺,一共有8个大班
gradenum=['1','2','3','4','5','7','8','9']
# print(len(gradenum))# 8# radenum的长度=7,0-7,一共循环8次
for num in range(0,len(gradenum)):L=[]# 这里的L等于list,因为和最后excle合并程序中的代码有冲突,所以全部改成大写的首字母L1=[]L3=[] L2=[]# 这里是8个运动场地,因为后面有递进,所以把最后一个 08,放到01前面,这样摆放后面才会正确)L3=['小小交通车\n(平衡车、三轮车、扭扭车、自行车、木桥)',
'爬笼接力赛\n(爬笼、树屋、沙漏、书包、铃铛)',
'百变小能手\n(小足球、箩筐、百变迷宫架、垫子、马甲)',
'平衡小勇士\n(长短竹梯、三脚架、长凳、轮胎、安全垫)',
'跑跳小达人\n(轮胎、跨栏、锣鼓、接力棒)',
'勇敢者道路\n(背篓、布袋、矿泉水瓶)',
'对战投投乐\n(弹力棉球、吸盘球、飞镖盘)',
'山洞大探险\n(轮胎、安全垫、麻绳)',]# 生成8个班级8组运动(第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 # 8个班级场地“基本元素“构成了L1列表:[['01', '02', '03', '04', '05', '06', '07', '08'], ['02', '03', '04', '05', '06', '07', '08', '01'], ['03', '04', '05', '06', '07', '08', '01', '02'], ['04', '05', '06', '07', '08', '01', '02', '03'], ['05', '06', # print(L1)for b in range(22): # 把各班“场地基本元素8个”循环21次,数量多一点,便于后期提取内容for y in L1[num]: #抽取L1中的一组组内容 L1[0]=['01', '02', '03', '04', '05', '06', '07', '08']、L1[1]=['02', '03', '04', '05', '06', '07', '08', '01'],# print(y) # 在用 y提取L1[0]中的'01', '02', '03', '04', '05', '06', '07', '08'三个元素L.append(y) #把y提取的单个元素一个个加到列表里,并且依次循环22次,数量足够多print(L)# 打印出来大1班 列表组=['01', '02', '03', '04', '05', '06', '07', '08','01', '02', '03', '04', '05', '06', '07', '08','01', '02', '03', '04', '05', '06', '07', '08','01', '02', '03', '04', '05', '06', '07', '08','01', '02', '03', '04', '05', '06', '07', '08']print('---------第2步:如果一周有5天(不考虑跳过假日)------')
# # print('大{}班'.format(gradenum[num]))# for i in range(1):#共20周这是第1周,是原始的位置81234# print(L[0:5]) # 列表有8个运动项目,但只要其中5个(周一到周五)# L2.append(L[0:5])# for i in range(2,22): #共20周 这是第2-20周 ,如果是21周,把2,21 改成2,22 # L=L[5:] # 5代表前面一个数已经取过5位# L.append(L) # 将a安排到最后一个座位# print(L[0:5]) # 列表是八个循环,我只要其中5个# L2.append(L[0:5]) print('大{}班'.format(gradenum[num]))print('---------第3步:如果每周需要跳过假日(考虑跳过假日)------')# 每周需要的天数 (跳过节日.如第1周只有2天工作,9月1-2日(周四周五) ,第3周周一是中秋节放假1天,所以只有4个工作日)# day=['3','5','5','6','5','2','5','5','5','5','5','5','5','5','5','5','5','4','5','5','2']kong=''tt1='清明节'tt2='劳动节'tt3='端午节'# 第1周 第2-7周开始 第8周部分# for d in range(0,1): L2.append(kong) L2.append(kong) for kk in L[0:int(3+5*6+2)]:L2.append(kk) # 清明L2.append(tt1) # 清明后到五一前 for kk in L[int(3+5*6+2):int((3+5*6+2)+(2+5*2))]:L2.append(kk) # 23日(周日)也上班 所以一共6天 一周排5填,28号周五放到下周周一算for kk in L[int((3+5*6+2)+(2+5*2)):int((3+5*6+2)+(2+5*2)+6)]:L2.append(kk) # 劳动节休息休息3天,实际1天空格 (28日放到周一了 周二五一节) L2.append(tt2) # 劳动节456三天上班+6周5填天 1周3天(劳动节后到端午节前)for kk in L[int((3+5*6+2)+(2+5*2+6)):int((3+5*6+2)+(2+5*2+6)+3+(5*6+3))]:L2.append(kk) # 端午节三天,占一个格子在周四 周日要上班顶替周五L2.append(tt3) for kk in L[int((3+5*6+2)+(2+5*2+6)+3+(5*6+3)):int((3+5*6+2)+(2+5*2+6)+3+(5*6+3))+6]:L2.append(kk) print(L2) print('---------第4步:xls写入)------') workbook = xlwt.Workbook()# 新建xls工作簿sheet = workbook.add_sheet("Sheet")# 新建xls工作簿的工作表的名字是sheet # 第0列 写入“第1周、第2周、第3周……第21周dates=[]for i in range(1,21):n="第{}周".format(i) # 用遍历方法获得“第1周、第2周、第21周”字样,dates.append(n) # 添加到列表 print(dates) # print(date)row=1for d in range(0, len(dates)):sheet.write(row, 0, dates[d]) # 这里enumerate不能用,因为只有一列,所以就用row += 1 # 第0行 写入 星期一 '星期二','星期三','星期四','星期五 #weeks = ['周次','星期一','星期二','星期三','星期四','星期五']week = len(weeks) col=0for d in range(0, len(weeks)):sheet.write(0,col,weeks[d]) # 因为只有一行,所以就用有两种写法(enumerate和这种)col+= 1 # 输入星期的另一种写法# col=0 # for row,item in enumerate(weeks,0): # 可以这样写L2[i]=表格内的内容=item,索引数字=col 0代表在A1 1代表在B1# sheet.write(col,row,item) # 第1行第1列开始写入一行”星期X"# col+=1# 第B2开始写入 运动内容print('-----------第3步,保存到excle--------')# 以下是xls保存# 在list_date五个五个取值 list3=[]for k in range(0,21):list3.append(L2[k*5:k*5+5]) print(list3)# print(list)for opq in list3:print(opq)# arrlan2 = len(list_d)# 日期抽取5天一组arrlan = len(list3)# L2['07', '08', '01', '02', '03']的长度 21组row = 1 # 第2行for i in range(arrlan): # 遍历21组[]的总数for col,item in enumerate(list3[i],1): # 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\桌面\word2pdf2png\大{}班分散运动.xls".format(gradenum[num])) # 新建保存 只能xlsprint('计划生成成功')except e:print('失败...')print(e)print('---------第6步:把N份xls单页内容合并在1个工作簿的N个工作表内)------')
time.sleep(2)# 获取目录下所有的表
import os
import pandas as pddir = r'C:\Users\jg2yXRZ\OneDrive\桌面\word2pdf2png'
# 获取目录下所有的表
origin_file_list = os.listdir(dir)
print(origin_file_list)with pd.ExcelWriter(r'C:\Users\jg2yXRZ\OneDrive\桌面\word2pdf2png\20230217大班分散运动(编程详细版 跳过节日).xls') as writer:# 循环遍历表格for i in origin_file_list:# 拼接每个文件的路径file_path = dir + '/' + i# 把表名赋予给对应的sheetsheet_name = i[:-4]df = pd.read_excel(file_path)# 变相解决表格中第一行第一列为空的缺陷ring = "".join(list(str(i) for i in df.index))# string = .join(list(str(i) for i in df.index))# 判断如果索引都为数字,则不保留索引(根据自己代码调整)if ring.isdigit():df.to_excel(writer, sheet_name,index=False)else:df.to_excel(writer, sheet_name)
导出位置

最初的样式是这样的(节日已经写进去了)

全选每张表格,进行格式设置。

第11-12周 五一劳动节的排班比较乱,所以加彩色底纹,最下面备注号这一周的“星期排序”(周六周日要补班)

大3班的运动排序情况

大7班的运动排序情况

(没有大6班,所以7班就用6班的场地场地,8班用7班场地,9班用8班场地)
实用效果:
组长强推收藏

特别感悟:

第二次用这个代码做运动场地排列,我感觉人工排场地很费时费力,没有必要。利用程序提高文本资料产生的效率,更精确,更快速。
学以致用,提升效率。节约时间去做更有价值的事情。
相关文章:
【办公类-16-09】“2022下学期 大班运动场地分配表-跳过节日循环排序”(python 排班表系列)
样例展示:跳过节日的运动场地循环排序表(8个班级8组内容 下学期一共20周)背景需求:上学期做过一次大班运动场地安排,跳过节日。2023.2下学期运动场地排班(跳过节日)又来了。一、场地器械微调二、…...
全网多种方法分析解决HTTP Status 404资源未找到的错误,TCP的3次握手,dns域名解析,发起http请求以及cookie和session的区别
文章目录1. 文章引言2. 简述URL3. http完整请求3.1 DNS域名解析3.2 TCP的3次握手3.3 发起http请求3.4 浏览器解析html代码3.5 浏览器对页面进行渲染呈现给用户4. 解决404错误的方法5. 补充知识点5.1 cookie和session的区别5.2 ChatGPT的介绍1. 文章引言 正赶上最近ChatGPT很火…...
Django图书商场购物系统python毕业设计项目推荐
mysql数据库进行开发,实现了首页、个人中心、用户管理、卖家管理、图书类型管理、图书信息管理、订单管理、系统管理等内容进行管理,本系统具有良好的兼容性和适应性,为用户提供更多的网上图书商城信息,也提供了良好的平台&#x…...
基于模型预测控制(MPC)的悬架系统仿真分析
目录 前言 1.悬架系统 2.基于MPC的悬架系统仿真分析 2.1 simulink模型 2.2仿真结果 2.3 结论 3 总结 前言 模型预测控制是无人驾驶中较为热门的控制算法,但是对于悬架等这类系统的控制同样适用。 我们知道模型预测控制主要可以划分为三个部分: …...
Word处理控件Aspose.Words功能演示:使用 Java 拆分 MS Word 文档
Aspose.Words 是一种高级Word文档处理API,用于执行各种文档管理和操作任务。API支持生成,修改,转换,呈现和打印文档,而无需在跨平台应用程序中直接使用Microsoft Word。此外,API支持所有流行的Word处理文件…...
图扑数字孪生智慧机场,助推民航“四型机场“建设
前言 民航局印发的《智慧民航建设路线图》文件中,明确提出智慧机场是智慧民航的四个核心抓手之一。并从机场全域协同运行、作业与服务智能化、智慧建造与运维方面,为智慧机场的发展绘制了清晰的蓝图。 效果展示 图扑软件应用自主研发核心产品 HT for …...
内网安装管家婆软件如何实现外网访问?内网穿透的几种方案教程
管家婆软件从网络架构上分两种版本:web(浏览器http端口)访问的版本和客户端(211固定端口sqlserver数据库)访问的版本。公司库管经常用仓库登录管家婆,一旦需要在公司外部登陆访问管家婆客户端,就…...
CCNP350-401学习笔记(1-50题)
1、Which function does a fabric edge node perform in an SD-Access deployment?A. Connects endpoints to the fabric and forwards their traffic. B. Encapsulates end-user data traffic into LISP. C. Connects the SD-Access fabric to another fabric or external La…...
基于微信小程序的新冠肺炎服务预约小程序
文末联系获取源码 开发语言:Java 框架:ssm JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7/8.0 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包:Maven3.3.9 浏览器…...
网站项目部署在k8s案例与Jenkins自动化发布项目(CI/CD)
在K8s平台部署项目流程 在K8s平台部署Java网站项目 制作镜像流程 第一步:制作镜像 使用镜像仓库(私有仓库、公共仓库): 1、配置可信任(如果仓库是HTTPS访问不用配置) # vi /etc/docker/daemon.json { "…...
网络原理 (1)
网络原理 文章目录1. 前言: 2. 应用层2.1 XML2.2 json2.3 protobuffer3. 传输层3.1 UDP3.1 TCP4. TCP 内部的工作机制 (重点)1. 确认应答 2.超时重传3. 连接管理3.1 建立联系 :三次握手3.2 断开连接 : 四次挥手4. 滑动窗口5. 流量…...
LeetCode-1139. 最大的以 1 为边界的正方形【前缀和,矩阵】
LeetCode-1139. 最大的以 1 为边界的正方形【前缀和,矩阵】题目描述:解题思路一:前缀和。前缀和来记录边长。解题思路二:0解题思路三:0题目描述: 给你一个由若干 0 和 1 组成的二维网格 grid,请…...
windows10/11,傻瓜式安装pytorch(gpu),在虚拟环境anaconda
安装anaconda地址 :Anaconda | The Worlds Most Popular Data Science Platform安装选项全默认点击next就行。查看支持cuda版本cmd命令行输入nvidia-smi。下图右上角显示11.6为支持的cuda版本。要是显示没有nvidia-smi命令。得安装nvidia驱动,一般情况都…...
Revit导出PDF格式图纸流程及“批量导出图纸”
一、Revit导出PDF格式图纸流程 1、点击左上方“应用程序菜单”即“R”图标,进择“打印”选项。 2、在弹出的对话框中,需要设置图纸“打印范围”,选择“所选的视图/图纸选项”,点击“选择”,按钮,选择我们需…...
【自学Linux】 Linux文件目录结构
Linux文件目录结构 Linux文件目录结构教程 在 Linux 中,有一个很经典的说法,叫做一切皆文件,因此,我们在系统学习 Linux 之前,首先要了解 Linux 的文件目录结构。Linux 主要的目录有三大类,即根目录(/)&a…...
如何让APP在Google Play中成为特色
Google Play覆盖了 190 多个地区,数十亿的用户,所以开发者都会希望APP在应用商店中获得推荐位。 Google Play 上的精选热门应用类型:热门游戏或应用,畅销应用,安装量增长的应用,产生最多收入的应用。 那么…...
【C++】cin的处理过程
使用cin进行输入时,程序将输入视为一系列的字节,其中每个字节都被解释为字符编码。不管目标数据 类型是什么,输入一开始都是字符数据——文本数据。然后,cin对象负责将文本转换为其他类型。 为说明这是如何完成的,来看…...
读取Sentinel和Landsat 压缩包数据,直接进行波段重组、影像裁剪或者匀色镶嵌处理
波段重组在软件中查找:菜单栏-》影像基本处理-》波段处理-》波段重组,弹出如下对话框:根据对话框中的提示,输入需要处理的数据。注意:1、输入数据添加之后,需要点击其中任意一条数据,获取数据波…...
Yakit Web Fuzzer 终极能力强化:热加载 Fuzz
Background 在 HTB:BountyHunter 中,我们发现 Web Fuzzer 在使用中可以 “更强”,我们需要编写 Yak 脚本的事情,如果可以经过某些 Web Fuzzer 的优化,可以达到同样的效果。 在一个标签中,我们实现{{base6…...
Qt新手入门指南 - 如何创建模型/视图(三)
每个UI开发人员都应该了解ModelView编程,本教程的目标是为大家提供一个简单易懂的介绍。Qt 是目前最先进、最完整的跨平台C开发工具。它不仅完全实现了一次编写,所有平台无差别运行,更提供了几乎所有开发过程中需要用到的工具。如今ÿ…...
MPNet:旋转机械轻量化故障诊断模型详解python代码复现
目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...
HTML 语义化
目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案: 语义化标签: <header>:页头<nav>:导航<main>:主要内容<article>&#x…...
脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)
一、数据处理与分析实战 (一)实时滤波与参数调整 基础滤波操作 60Hz 工频滤波:勾选界面右侧 “60Hz” 复选框,可有效抑制电网干扰(适用于北美地区,欧洲用户可调整为 50Hz)。 平滑处理&…...
DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径
目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...
安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件
在选煤厂、化工厂、钢铁厂等过程生产型企业,其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进,需提前预防假检、错检、漏检,推动智慧生产运维系统数据的流动和现场赋能应用。同时,…...
CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...
高等数学(下)题型笔记(八)空间解析几何与向量代数
目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...
视频字幕质量评估的大规模细粒度基准
大家读完觉得有帮助记得关注和点赞!!! 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用,因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型(VLMs)在字幕生成方面…...
IT供电系统绝缘监测及故障定位解决方案
随着新能源的快速发展,光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域,IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选,但在长期运行中,例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...
自然语言处理——循环神经网络
自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元(GRU)长短期记忆神经网络(LSTM)…...
