【办公类-16-07-02】“2023下学期 (调整版无中1班)周计划-美术专用活动室写法”(python 排班表系列)

作品展示:——去掉中1班的美工室排法

22ce3c03139848689fac6277e42bf9c9.png

背景需求:

今天组长说“大小美工室”排班有错误,由于中1班并不在总园,所以应该是中2-中7班共用总部的大美工室、小美工室(没有中1班)。

【办公类-16-07-01】“2023下学期 周计划-美术专用活动室写法”(python 排班表系列)-CSDN博客文章浏览阅读323次,点赞8次,收藏4次。【办公类-16-07-01】“2023下学期 周计划-美术专用活动室写法”(python 排班表系列)https://blog.csdn.net/reasonsummer/article/details/136168310?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22136168310%22%2C%22source%22%3A%22reasonsummer%22%7D

a0112f8569de401185aa397ad3c53fb3.png

重新调整后的表格如下:

74425e8152d94a448ce47eedffef44d8.png

从中可以看到,大美工室 是从小到大,从中2班、中3班……中7班 ,而小美工室是从大到小,从中7班 、中6班……中2班。

解决思路:

套用以下模板中的代码,重新制作一份“汉字”美工室说明

【办公类-16-07-01】“2023下学期 周计划-美术专用活动室写法”(python 排班表系列)-CSDN博客文章浏览阅读323次,点赞8次,收藏4次。【办公类-16-07-01】“2023下学期 周计划-美术专用活动室写法”(python 排班表系列)https://blog.csdn.net/reasonsummer/article/details/136168310?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22136168310%22%2C%22source%22%3A%22reasonsummer%22%7D

e2d87c62e5bd46aa9e616b35f26c713b.png

代码说明

修改一下班级号

a3c90616865b4a3491b16320b9502116.png

代码展示结果

 # -- coding:utf-8 --
'''
大小美工室,周次合并 中班 6个班级(去掉包含一分园的中1)
作者:阿夏
时间:2024年2月29日

'''
import xlrd
import xlwt
from openpyxl import load_workbook

classroom=[]
for a in range(2,8):
    for c in range(2):
        classroom .append('中{}班'.format(a))
for a in range(2):   
    classroom .append('中2班')
for a in range(3,8):
    classroom .append('中{}班'.format(a))
print(classroom)
# ['中2班', '中2班', '中3班', '中3班', '中4班', '中4班', '中5班', '中5班', '中6班', '中6班', '中7班', '中7班', '中2班', '中2班', '中3班', '中4班', '中5班', '中6班', '中7班']
print(len(classroom))
# 19周

# classroom=[]
for a in range(7,1,-1):    # 从中7班到中2班
    for c in range(2):
        classroom .append('中{}班'.format(a))
for c in range(2):
    classroom .append('中7班')
for a in range(6,1,-1):   # 从中6班到中2班
    classroom .append('中{}班'.format(a))
print(classroom)
print(len(classroom))
# 19+19

week=[]
for y in range(2):
    for b1 in ['01一','02二','03三','04四','05五','06六','07七','08八','09九','10十','11十一','12十二','13十三','14十四','15十五','16十六','17十七','18十八','19十九']:
        week.append('第{}周'.format(b1))
print(week)
print(len(week))
# 38

big=[]
for f in classroom:
    for d in range(len(week)):    
        if classroom[d]==f:
            bigbig='{} {}'.format(f,week[d])
            big.append(bigbig)
big=sorted(set(list(big)))
print(big)
print(len(big))

# 在第一周前面加上01 ,进行从小到大排序,不加01,会按照一、二的拼音字母排序

# ['中1班 第01一周', '中1班 第02二周', '中1班 第13十三周', '中1班 第14十四周', '中1班 第15十五周', '中2班 第01一周', '中2班 第02二周', '中2班 第03三周', '中2班 第04四周', '中2班 第15十五周', '中2班 第16十六周', '中3班 第03三周', '中3班 第04四周', '中3班 第05五周', '中3班 第06六周', '中3班 第16十六周', '中3班 第17十七周', '中4班 第05五周', '中4班 第06六周', '中4班 第07七周', '中4班 第08八周', '中4班 第17十七周', '中4班 第18十八周', '中5班 第07七周', '中5班 第08八周', '中5班 第09九周', '中5班 第10十周', '中5班 第18十八周', '中5班 第19十九周', '中6班 第09九周', '中6班 第10十周', '中6班 第11十一周', '中6班 第12十二周', 
# '中6班 第19十九周', '中7班 第11十一周', '中7班 第12十二周', '中7班 第13十三周', '中7班 第14十四周']


k=[]
kk=[]
for g in classroom:
    k.clear()
    for x in range(len(big)):
    # print(big[x])
        if big[x][:3]==g:
        # if big[x][:3]==g:
            # print(big[x][3:])
            if len(big[x])==10:                #    第十七周 一共有10个字符
                k.append(big[x][7:9]) # 汉字
                # k.append(big[x][5:7]) # 数字
            else:
                k.append(big[x][7:8]) # 汉字
                # k.append(big[x][6:7]) # 数字

    print(k)
    result = '、'.join(k)
    print(result)
    kk.append('大小美工室 {} 第{}周“快乐玩色彩”专用活动室'.format(g,result))

kk=sorted(set(list(kk)))
print(kk)

print(len(kk))

# ['大小美工室 中1班 第一、二、十三、十四、十五周', '大小美工室 中2班 第一、二、三、四、十五、十六周', '大小美工室 中3班 第三、四、五、六、十六、十七周', '大小美工室 中4班 第五、六、七、八、十七、十八周', '大 
# 小美工室 中5班 第七、八、九、十、十八、十九周', '大小美工室 中6班 第九、十、十一、十二、十九周', '大小美工室 中7班 第十一、十二、十三、十四周']

# ['大小美工室 中1班,第01、02、13、14、15周', '大小美工室 中2班,第01、02、03、04、15、16周', '大小美工室 中3班,第03、04、05、06、16、17周', '大小美工室 中4班,第05、06、07、08、17、18周', '大小美工室 中5班,第07、08、09、10、18、19周', '大小美工室 中6班,第09、10、11、12、19周', '大小美工室 中7班,第11、12、13、14周']

for z in kk:
    print(z)

# 汉字版本
# 大小美工室 中1班 第一、二、十三、十四、十五周”快乐玩色彩“专用活动室
# 大小美工室 中2班 第一、二、三、四、十五、十六周”快乐玩色彩“专用活动室
# 大小美工室 中3班 第三、四、五、六、十六、十七周”快乐玩色彩“专用活动室
# 大小美工室 中4班 第五、六、七、八、十七、十八周”快乐玩色彩“专用活动室
# 大小美工室 中5班 第七、八、九、十、十八、十九周”快乐玩色彩“专用活动室
# 大小美工室 中6班 第九、十、十一、十二、十九周”快乐玩色彩“专用活动室
# 大小美工室 中7班 第十一、十二、十三、十四周”快乐玩色彩“专用活动室
    
    
    
#  数字版本   
# 大小美工室 中1班 第1、2、13、14、15周”快乐玩色彩“专用活动室
# 大小美工室 中2班 第1、2、3、4、15、16周”快乐玩色彩“专用活动室
# 大小美工室 中3班 第3、4、5、6、16、17周”快乐玩色彩“专用活动室
# 大小美工室 中4班 第5、6、7、8、17、18周”快乐玩色彩“专用活动室
# 大小美工室 中5班 第7、8、9、0、18、19周”快乐玩色彩“专用活动室
# 大小美工室 中6班 第9、0、11、12、19周”快乐玩色彩“专用活动室
# 大小美工室 中7班 第11、12、13、14周”快乐玩色彩“专用活动室
    
print('---------第4步:xls写入)------') 
workbook = xlwt.Workbook()# 新建xls工作簿
sheet = workbook.add_sheet("Sheet")# 新建xls工作簿的工作表的名字是sheet 

# 第0列 写入“第1周、第2周、第3周……第21周


weeks=['内容','班级','快乐玩色彩”专用活动室汉字写法']
week = len(weeks) 

col=0
for d in range(0, len(weeks)):
    sheet.write(0,col,weeks[d])         # 因为只有一行,所以就用有两种写法(enumerate和这种)
    col+= 1  

# 第B2开始写入 活动室内容
row = 1     # 第2行
for i in range(len(kk)):         # 遍历21组[]的总数
    sheet.write(row,0,kk[i][:5])    #  '大小美工室'
    sheet.write(row,1,kk[i][6:9])    #  '中X班'
    sheet.write(row,2,kk[i][10:])#  第一、二、十三、十四、十五周”快乐玩色彩“专用活动室
    row += 1   

print('---------第5步:xls保存N份工作簿(每份一页)------')             
# try:
workbook.save(r"C:\Users\jg2yXRZ\OneDrive\桌面\周计划\(去掉中1)中班专用活动室汉字写法.xls")    # 新建保存 只能xls
print('计划生成成功')

结果展示

59cbfd4b1c784ad7934b4a0a82c1550c.png

22ce3c03139848689fac6277e42bf9c9.png6个中班,中2与中7活动时间相同,中3与中6活动时间相同,中4与中5活动时间相同?

5a6b84d6272d412682cb94ab96d201c5.png这就是班级从小到大和从大到小排列后出现的特殊对称结果

以 中4和中5为例:

虽然都中4和中5都排到 5、6、7、8、16、17周,但 中4班的5、6、16周轮到大美工室活动,与此同时 中5班的5、6、16周轮到的小美工室,正好错开;

c38377833cf04cc3b89208dc09e3f177.png5bda83f5495b4e648bda20b8f11f33f0.png

资料共享

3e93bd493de944e8bff05bf5664ed9e3.png

  • 21
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿夏reasonsummer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值