日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

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

發布時間:2023/12/29 python 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【办公类-16-05-04】“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-05-04】“2022下学期 大班运动场地分配表-跳过节日循环排序”(python 排班表系列)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 成人免费毛片嘿嘿连载视频 | 日本一区二区三区四区在线观看 | 久久有精品 | 欧美日韩激情在线一区二区三区 | 免费在线观看黄色网址 | 91国产中文字幕 | 牛牛电影国产一区二区 | 久久综合久久综合久久 | 亚洲性图视频 | 制服丝袜国产精品 | 人人艹视频 | 日韩欧美在线观看免费 | 性一交一乱一区二区洋洋av | 美女靠逼app | 影音先锋欧美资源 | 成人网站在线进入爽爽爽 | 成人午夜sm精品久久久久久久 | 日日操天天操 | 日韩成人中文字幕 | 性xxxxbbbb| 亚洲一级片在线播放 | 国产欧美一区二区三区视频在线观看 | 免费毛片基地 | 亚洲经典一区二区三区四区 | 久草中文视频 | 青青伊人久久 | 国产麻豆a毛片 | 久久99国产精品成人 | 九九热免费在线视频 | 国产精品666 | 特黄大片又粗又大又暴 | 欧美极品第一页 | 99在线视频免费 | 怡红院成人网 | 777毛片 | 99九九热| 久久撸视频| 老女人丨91丨九色 | 在线播放第一页 | 久草精品视频在线观看 | 美女久久久久久 | 女儿的朋友5中汉字晋通话 欧美成人免费高清视频 | 99在线免费观看 | 久草免费在线色站 | 成人综合在线视频 | mm131在线 | 91嫩草视频在线观看 | 制服丝袜第二页 | 国产18禁黄网站免费观看 | 一区二区伦理片 | 欧美69久成人做爰视频 | 日欧美女人 | 强制憋尿play黄文尿奴 | 欧美成人r级一区二区三区 中文无码一区二区三区在线观看 | 九九热免费在线 | 一二区精品 | 国产精品久久免费视频 | 天堂va蜜桃一区二区三区 | 日本a一级片 | 91福利在线观看 | 日本精品99 | 欧美老熟妇一区二区 | 怡红院成人在线 | 国产6区 | 97久久国产亚洲精品超碰热 | 国产精品熟女一区二区不卡 | 欧美人妖xxxx| 一区二区高清在线 | 久久久久亚洲av无码网站 | 天天曰天天爽 | 武林美妇肉伦娇喘呻吟 | 99久久99久久精品国产片桃花 | 国产99在线播放 | 色播五月激情 | 成人网色| 影音先锋激情在线 | 91中文| 小sao货水好多真紧h无码视频 | 操一操av | 精品在线视频观看 | 制服丝袜先锋影音 | 国产一级做a爰片久久毛片男 | jizz在线播放 | 久久精品一区二区三区不卡牛牛 | 亚洲国产精一区二区三区性色 | 成人午夜在线播放 | 狠狠综合久久av一区二区 | 伊人伊人伊人 | 男生草女生的视频 | 波多野结衣之潜藏淫欲 | 亚洲美免无码中文字幕在线 | 久久婷婷成人综合色 | 免费的黄色大片 | 国产三级久久 | 国产精品久久久久久久久久久久午夜片 | 91视频com| 毛片大片 | 污片在线观看 | 风间由美一二三区av片 |