办公需求:

开学了,周计划教案的模板又要调整了。其中“分散活动”的内容需要按一定排序规律,每周填入不同的场地。

为了避免每个班级每天用的场地产生重复,组长制定了场地安排规则。

以大八班为例,

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班“运动场地”的周次安排。相关推荐

  1. 【办公类-16-02】“2022上学期 大班运动场地分配表1-跳过节日循环排序”(python 排班表系列)

    样例展示:跳过节日的运动场地循环排序表(8个班级8组内容) 背景需求: 复工复学后,周计划做起来!每周的运动场地安排照旧-- 存在问题(一): 8个大班,靠着人工排序,每周都要推算一次这个规则,推演麻 ...

  2. 【办公类-16-05-04】“2022下学期 大班运动场地分配表-跳过节日循环排序”(python 排班表系列)

    样例展示:跳过节日的运动场地循环排序表(8个班级8组内容 下学期一共20周) 背景需求: 上学期做过一次大班运动场地安排,跳过节日.2023.2下学期运动场地排班(跳过节日)又来了. 一.场地器械微调 ...

  3. python+vue+elementui校园运动场地体育器材管理系统

    场地信息列表 用户可以查看一些场地的基本信息,包括场地的名称,场地的位置,场地的费用和基本简介等信息   场地订票是本系统的核心,在场地订票中,必须登录后才能进行订票,否则给出登录提示,在登录后选择对 ...

  4. 【办公类-16-06】“2022下学期 总园活动室(沙水+建构)排班表”(python 排班表系列)

    背景需求: 最近保教主任一直在为总园的活动室安排而头疼不已,和组长们商议许久,依旧无法合理把活动室安排好.3月2日下午,听主任和游戏室成员聊了一个小时的排班,结论是除沙水和建构外,其余空余时间都是&q ...

  5. 【办公类-16-05-01】“2022上学期 大班游戏活动室排班表——班主任版21周”(python 排班表系列)

    样式展示:1-8周的内容,一摸一样复制到9-16周.17-24周 背景需求: 8月底,保教主任花了不少时间调试"大班游戏活动室安排表.docx",并多次让我给他调整Word的表格框 ...

  6. 【办公类-16-05-02】“2022上学期 大班游戏活动室排班表——领导版8周”(python 排班表系列)

    样式展示:生成一份按8周排序的"大班活动室安排表" 1.人工排序的样式 2.Python生成的样式和内容 背景需求: 前一个<大班游戏活动室排班表>主要是针对班主任贴周 ...

  7. 【办公类-16-01-01】“机动班下午代班的排班表”(python 排班表系列)

    最终效果图: 含有(周次.日期月日去0.星期.班级.园区.姓名.备注) 20220927第一次代码 背景需求: 本学期我的岗位调整为机动岗(不担任固定班级的班主任),上午承担各种各条线的辅助工作(信息 ...

  8. 【办公类-16-03】“大班运动场地分配表2-斜线排列、5天循环、不跳节日”(python 排班表系列)

    样例展示:不跳过节日+每周场地斜角排列场地循环排序表(8个班级8组内容) 背景需求: 给大班排完后,我又试着给中班组做批量,中班组长说已经请一位组员用人工排aEXCL表. 中班各班起始场地如下: 于是 ...

  9. 【办公类-16-06-02】“2022下学期 总园活动室(沙水+建构)排班表(两周一次沙水)”(python 排班表系列)

    作品展示: 背景需求: 上一篇批量制作了"7天轮回14班沙水+每周固定建构"的活动室内排班表. 一.时段冲突,调整单双周. 保教主任抽空检查后,提到:"一个班.上午.下午 ...

最新文章

  1. 超越英伟达的,不会是另一款GPU!中国公司发布首款数据流AI芯片
  2. Redis的数据类型以及每种数据类型的使用场景
  3. Pin code码已被重置
  4. weblogic jprofile配置
  5. Java容器 | 基于源码分析Map集合体系
  6. 前端笔试之手写代码(一)
  7. 百度的一道 java 高频面试题的多种解法
  8. 吴功宜计算机网络教程ppt,计算机网络 吴功宜 编著ppt课件.ppt
  9. python 遍历文件夹下文件修改并保存_利用python完成自动化的任务之遍历文件夹修改文件之后并保存备份...
  10. 杭州仁和金融中心远程预付费电能管理系统的设计与应用-安科瑞耿敏花
  11. QT5.14.2+VS2017环境安装
  12. 意凡社:盘点那些令网赚者疯狂的时代!
  13. 匿名者黑页html源码,HACK敲代码黑页源码
  14. 基于nRF24L01的一对多节点通信(一收多发)
  15. TIOBE编程语言排行榜,使用前二十语言实现HelloWorld程序
  16. Python 实现发送QQ邮件(可加附件)
  17. 联想微型计算机beta2,联想的两款Detachable 2-in-1新品,可能是我未来会买的移动办公/床头娱乐本...
  18. TensorFlow对象检测-1.0和2.0:训练,导出,优化(TensorRT),推断(Jetson Nano)
  19. 代币标准--ERC721协议源码解析
  20. mac 文件上传服务器

热门文章

  1. 六个问题搞懂数据结构中的树的分支
  2. python与量化投资从基础到实战王小川_Python量化投资从基础到实战现场班_王小川老师主讲-经管之家官网!...
  3. 修改mysql结束符号
  4. 物理模型图-数据库图
  5. 使用KITTI360数据集运行ORB-SLAM3
  6. UML的5种类图,10种模型图
  7. Java中newInstance()和new()区别
  8. 什么是事务和事务隔离级别
  9. Android APP代码执行历史漏洞与攻击面分析
  10. 股票的K线图之什么叫大阴线?小阴线?大阳线?小阳线?