【 办公类-03】 VS Python 大8班“运动场地”的周次安排。
办公需求:
开学了,周计划教案的模板又要调整了。其中“分散活动”的内容需要按一定排序规律,每周填入不同的场地。
为了避免每个班级每天用的场地产生重复,组长制定了场地安排规则。
以大八班为例,
1.第1周(周一到周五)的场地:
“8号对战投投乐”“”1号场地山洞大冒险““2号场地小小交通车””“3号场地爬龙接力赛”和“4号百变小能手”
2.第2周(周一到周五)的场地:
”1号场地山洞大冒险““2号场地小小交通车””“3号场地爬龙接力赛”和“4号百变小能手”“5号平衡小勇士”“
2.第3周(周一到周五)的场地:
““2号场地小小交通车””“3号场地爬龙接力赛”和“4号百变小能手”“5号平衡小勇士”“”6号跑跳小达人‘
依次类推……
操作需求:
作为周计划中相对固定有规律的填写内容,我会首先考虑将它们填写完成。但是通知中只有两条提示“第一周81234,第二周12345”,实际填写中,我还是需要按周次把场地数字一一写出来(写出20周的5组数字),然后按索引去拷贝相应的填写内容……在学习了Python后,我再也不想手动完成这类机械的工作。
实践过程:
第一步:个人尝试
我套用风变编程基础课的“轮流排座位“代码,写出了大8班的20周每周5天的场地排序列表。(下图)
问题:但是用已知方法都无法把终端里生成的值保存的TXT或者excel里。
二、高手指导
无奈之下,只能再次求助马先生。马先生用两天时间20220219-20220220陆续写了六个py代码。将全部8个班级20周的场地随机、样式随机、班号、周次等信息逐行保存,使用map、zip、enumerate等参数,成功将数据保存到不同抬头的xls内。
问题:六款代码使用和反复引用列表,让我对马先生的高超的编程技术叹为观止。虽然我也尝试注释,但短时间内还是吃不透原理,不会应用。
第三步:套用保存部分代码
于是我尝试直接将马先生代码的“xls保存”部分的代码套用到“轮流排座位”的代码里,希望能让终端里的列表值逐行导入到excel,便于黏贴到周计划教案模板的相应位置。
马先生的代码太使用了。经过微调,就顺利获得了一个班级(大8班)的20周运动场地的excel结果。
1.代码(第一种保存方法)
import sys import random import xlrd import xlwt from openpyxl import load_workbook # # list2=int(input('你班级第1周第1天的运动场地数字(不同班级不同的起始数字'))# 作者:阿夏 # 第一步:大八班运动项目的范围 对战投投乐=8,山洞大探险=1,大8第1周周一从“战投投乐”开始,所以list内把对战投投乐放在第一个。 list=['对战投投乐(弹力球 吸盘球 飞镖盘)','山洞大探险(滑索、轮胎、水桶)','小小交通车(指示牌、各种车类)','爬笼接力赛(爬笼树屋、书包铃铛)','百变小能手(小足球、垫子、马甲)','平衡小勇士(竹梯、三脚架、垫子等)','跑跳小达人(轮胎、跨栏、接力棒','勇敢者道路(背篓、布袋、小动物)'] # list=['a','b','c','d','e','f','g','h']# 八个场地八个班 # 以下选取每周5个 list2=[]# 取空列表 for i in range(1):#共20周这是第1周,是原始的位置81234list1=listprint(list[0:5]) # 列表有8个运动项目,但只要其中5个(周一到周五)list2.append(list[0:5]) for i in range(2,21): #共20周 这是第2-20周 ,如果是21周,把2,21 改成2,22 list1=list[0] # 获取第一个alist=list[1:] # a暂时离开,后面的号码都进一位。list.append(list1) # 将a安排到最后一个座位print(list[0:5]) # 列表是八个循环,我只要其中5个list2.append(list[0:5]) # 以下是xls保存(作者:马清新) arrlan = len(list2)# list2是终端显示的列表值 workbook = xlwt.Workbook()# 新建xls工作簿 sheet = workbook.add_sheet("Sheet")# 新建xls工作簿的工作表的名字是sheetrow = 21 # 共20周 写21行才会只出20条,若row = 0时,excel循环保存400条 for k in range(arrlan): for i,item in enumerate(list2,0): # 没有list2[k] 的K,就不会被拆分成一个字一个字 i=键lists item=0 # print(i) # print(item)if k == 0: # 从0行开始写入for j,value in enumerate(item,0):# j=itemprint(i,j,value)sheet.write(i,j,value)row += 1 else: for j,value in enumerate(item,0):# if value in list2[k][0]:# pass# else:# print(row,j,value)sheet.write(row,j,value)row += 1 # 每段都有抬头#本段只保存每周5天场地文字,第一行没有星期,第一列没有周次和班级try:workbook.save(r"D:\test\分散运动的循环\大8班分散运动.xls") # 新建保存 只能xlsprint('计划生成成功') except e:print('失败...')print(e)
第二种xls保存方法(简化代码 推荐使用)
import sys
import random
import xlrd
import xlwt
from openpyxl import load_workbook
# # list2=int(input('你班级第1周第1天的运动场地数字(不同班级不同的起始数字'))# 第一步:大八班运动项目的范围 对战投投乐=8,山洞大探险=1,大8第1周周一从“战投投乐”开始,所以list内把对战投投乐放在第一个。
list=['对战投投乐(弹力球 吸盘球 飞镖盘)','山洞大探险(滑索、轮胎、水桶)','小小交通车(指示牌、各种车类)','爬笼接力赛(爬笼树屋、书包铃铛)','百变小能手(小足球、垫子、马甲)','平衡小勇士(竹梯、三脚架、垫子等)','跑跳小达人(轮胎、跨栏、接力棒','勇敢者道路(背篓、布袋、小动物)']
# list=['a','b','c','d','e','f','g','h']# 八个场地八个班
# 以下选取每周5个
list2=[]# 取空列表
for i in range(1):#共20周这是第1周,是原始的位置81234list1=listprint(list[0:5]) # 列表有8个运动项目,但只要其中5个(周一到周五)list2.append(list[0:5])
for i in range(2,21): #共20周 这是第2-20周 ,如果是21周,把2,21 改成2,22 list1=list[0] # 获取第一个alist=list[1:] # a暂时离开,后面的号码都进一位。list.append(list1) # 将a安排到最后一个座位print(list[0:5]) # 列表是八个循环,我只要其中5个list2.append(list[0:5]) # 以下是xls保存的简化方法
arrlan = len(list2)# list2是终端显示的列表值
workbook = xlwt.Workbook()# 新建xls工作簿
sheet = workbook.add_sheet("Sheet")# 新建xls工作簿的工作表的名字是sheetrow = 0# 保存的简化方法
for i in range(arrlan):for col,item in enumerate(list2[i],0):sheet.write(row,col,item) row += 1try:workbook.save(r"D:\test\分散运动的循环\大8班分散运动.xls") # 新建保存 只能xlsprint('计划生成成功')
except e:print('失败...')print(e)
2.xls的结果(只有20周每行5个运动项目)
3.xls的手工验证
手工验证表的蓝色部分 第1周“对 山 小 爬 百” 第20周“爬 百 平 跑 勇”与 大8班分散运动的蓝色部分 第1周“对 山 小 爬 百” 第20周“爬 百 平 跑 勇敢”内容完全一直,证明这个代码跑出来的数据符合场地安排规则表的要求。
不足之处:代码只能生成1个班(大8班),要替换其他班级,就要手工修改list=【‘’】中场地的位置,这点需要优化。
end
下一步要解决的内容:
1、“轮流排座位”的代码基础上:
(1)xls表格有班级号及周次
(2)输入“大1班” ,获得符合大1班需求的‘大1班分散运动.xls'
(3)批量生成大1-8的所有xls(分开的或者在一份表格里。)
解决:参考马的六个代码
2、马的六个代码原理解读、运用
3、把list列表里的内容通过xls进行调用的方法
【 办公类-03】 VS Python 大8班“运动场地”的周次安排。相关推荐
- 【办公类-16-02】“2022上学期 大班运动场地分配表1-跳过节日循环排序”(python 排班表系列)
样例展示:跳过节日的运动场地循环排序表(8个班级8组内容) 背景需求: 复工复学后,周计划做起来!每周的运动场地安排照旧-- 存在问题(一): 8个大班,靠着人工排序,每周都要推算一次这个规则,推演麻 ...
- 【办公类-16-05-04】“2022下学期 大班运动场地分配表-跳过节日循环排序”(python 排班表系列)
样例展示:跳过节日的运动场地循环排序表(8个班级8组内容 下学期一共20周) 背景需求: 上学期做过一次大班运动场地安排,跳过节日.2023.2下学期运动场地排班(跳过节日)又来了. 一.场地器械微调 ...
- python+vue+elementui校园运动场地体育器材管理系统
场地信息列表 用户可以查看一些场地的基本信息,包括场地的名称,场地的位置,场地的费用和基本简介等信息 场地订票是本系统的核心,在场地订票中,必须登录后才能进行订票,否则给出登录提示,在登录后选择对 ...
- 【办公类-16-06】“2022下学期 总园活动室(沙水+建构)排班表”(python 排班表系列)
背景需求: 最近保教主任一直在为总园的活动室安排而头疼不已,和组长们商议许久,依旧无法合理把活动室安排好.3月2日下午,听主任和游戏室成员聊了一个小时的排班,结论是除沙水和建构外,其余空余时间都是&q ...
- 【办公类-16-05-01】“2022上学期 大班游戏活动室排班表——班主任版21周”(python 排班表系列)
样式展示:1-8周的内容,一摸一样复制到9-16周.17-24周 背景需求: 8月底,保教主任花了不少时间调试"大班游戏活动室安排表.docx",并多次让我给他调整Word的表格框 ...
- 【办公类-16-05-02】“2022上学期 大班游戏活动室排班表——领导版8周”(python 排班表系列)
样式展示:生成一份按8周排序的"大班活动室安排表" 1.人工排序的样式 2.Python生成的样式和内容 背景需求: 前一个<大班游戏活动室排班表>主要是针对班主任贴周 ...
- 【办公类-16-01-01】“机动班下午代班的排班表”(python 排班表系列)
最终效果图: 含有(周次.日期月日去0.星期.班级.园区.姓名.备注) 20220927第一次代码 背景需求: 本学期我的岗位调整为机动岗(不担任固定班级的班主任),上午承担各种各条线的辅助工作(信息 ...
- 【办公类-16-03】“大班运动场地分配表2-斜线排列、5天循环、不跳节日”(python 排班表系列)
样例展示:不跳过节日+每周场地斜角排列场地循环排序表(8个班级8组内容) 背景需求: 给大班排完后,我又试着给中班组做批量,中班组长说已经请一位组员用人工排aEXCL表. 中班各班起始场地如下: 于是 ...
- 【办公类-16-06-02】“2022下学期 总园活动室(沙水+建构)排班表(两周一次沙水)”(python 排班表系列)
作品展示: 背景需求: 上一篇批量制作了"7天轮回14班沙水+每周固定建构"的活动室内排班表. 一.时段冲突,调整单双周. 保教主任抽空检查后,提到:"一个班.上午.下午 ...
最新文章
- 超越英伟达的,不会是另一款GPU!中国公司发布首款数据流AI芯片
- Redis的数据类型以及每种数据类型的使用场景
- Pin code码已被重置
- weblogic jprofile配置
- Java容器 | 基于源码分析Map集合体系
- 前端笔试之手写代码(一)
- 百度的一道 java 高频面试题的多种解法
- 吴功宜计算机网络教程ppt,计算机网络 吴功宜 编著ppt课件.ppt
- python 遍历文件夹下文件修改并保存_利用python完成自动化的任务之遍历文件夹修改文件之后并保存备份...
- 杭州仁和金融中心远程预付费电能管理系统的设计与应用-安科瑞耿敏花
- QT5.14.2+VS2017环境安装
- 意凡社:盘点那些令网赚者疯狂的时代!
- 匿名者黑页html源码,HACK敲代码黑页源码
- 基于nRF24L01的一对多节点通信(一收多发)
- TIOBE编程语言排行榜,使用前二十语言实现HelloWorld程序
- Python 实现发送QQ邮件(可加附件)
- 联想微型计算机beta2,联想的两款Detachable 2-in-1新品,可能是我未来会买的移动办公/床头娱乐本...
- TensorFlow对象检测-1.0和2.0:训练,导出,优化(TensorRT),推断(Jetson Nano)
- 代币标准--ERC721协议源码解析
- mac 文件上传服务器
热门文章
- 六个问题搞懂数据结构中的树的分支
- python与量化投资从基础到实战王小川_Python量化投资从基础到实战现场班_王小川老师主讲-经管之家官网!...
- 修改mysql结束符号
- 物理模型图-数据库图
- 使用KITTI360数据集运行ORB-SLAM3
- UML的5种类图,10种模型图
- Java中newInstance()和new()区别
- 什么是事务和事务隔离级别
- Android APP代码执行历史漏洞与攻击面分析
- 股票的K线图之什么叫大阴线?小阴线?大阳线?小阳线?