【办公类-16-01-02】2023年度上学期“机动班下午代班的排班表——跳过周三、节日和周末”(python 排班表系列)
背景需求:
2023年第一学期(2023年9-2024年1月),我又被安排为“机动班”,根据新学期的校历,手动推算本学期的机动班的带班表
排版原则
1、班级数量:共有6个班级,循环滚动
2、每周次数:4个半天(周三不带班)
3、跳过节日:为了让每个班能平均轮到,我预设了跳过节日的需求
代码展示:
列表数量空格,都是手动死算的。
# https://www.cnblogs.com/gradyblog/p/16457279.html
from contextlib import nullcontext
import datetime
import sys
import random
from tkinter import dnd
from openpyxl import load_workbook
import xlrd
import xlwt
import time
import datetime'''20230901校历七天 有日期+星期 跳过周六周日和节日)——上下学期都测过'''start='2023-08-28'
end='2024-01-21'
begin=4
last=2
weeksday=21
title='2023年上学期校历(4天排班表+跳过假日'print('------------第1步:生成年月日列表(前后有空日)------------')def date_generate(start_date, end_date):# print(f'Hi, {start_date}, {end_date}')start_dt = datetime.datetime.strptime(start_date, "%Y-%m-%d")end_dt = datetime.datetime.strptime(end_date, "%Y-%m-%d")next_dt = start_dtdate_list = [] while next_dt <= end_dt:# next_dt_str = next_dt.strftime("%Y-%m-%d")# next_dt_str = next_dt.strftime("%m/%d")# next_dt_str = next_dt.strftime("%m/%d")next_dt_str = next_dt.strftime("%#m/%#d")# print(next_dt_str)date_list.append(next_dt_str)next_dt = next_dt + datetime.timedelta(days=1) print(date_list)#生成全部需要的列表 ['2023-09-01', '2023-09-02', '2023-09-03', '2023-09-04', '2023-09-05', '2023-09-06', '2023-09-07', '2023-09-08', '2023-09-09', '2023-09-10', '2023-09-11', '2023-09-12', '2023-09-13', '2023-09-14', '2023-09-15', '2023-09-16', '2023-09-17', '2023-09-18', '2023-09-19', '2023-09-20', '2023-09-21', '2023-09-22', '2023-09-23', '2023-09-24', '2023-09-25', '2023-09-26', '2023-09-27', '2023-09-28', '2023-09-29', '2023-09-30', '2023-10-01', '2023-10-02', '2023-10-03', '2023-10-04', '2023-10-05', '2023-10-06', '2023-10-07', '2023-10-08', '2023-10-09', '2023-10-10', '2023-10-11', '2023-10-12', '2023-10-13', '2023-10-14', '2023-10-15', '2023-10-16', '2023-10-17', '2023-10-18', '2023-10-19', '2023-10-20', '2023-10-21', '2023-10-22', '2023-10-23', '2023-10-24', '2023-10-25', '2023-10-26', '2023-10-27', '2023-10-28', '2023-10-29', '2023-10-30', '2023-10-31', '2023-11-01', '2023-11-02', '2023-11-03', '2023-11-04', '2023-11-05', '2023-11-06', '2023-11-07', '2023-11-08', '2023-11-09', '2023-11-10', '2023-11-11', '2023-11-12', '2023-11-13', '2023-11-14', '2023-11-15', '2023-11-16', '2023-11-17', '2023-11-18', '2023-11-19', '2023-11-20', '2023-11-21', '2023-11-22', '2023-11-23', '2023-11-24', '2023-11-25', '2023-11-26', '2023-11-27', '2023-11-28', '2023-11-29', '2023-11-30', '2023-12-01', '2023-12-02', '2023-12-03', '2023-12-04', '2023-12-05', '2023-12-06', '2023-12-07', '2023-12-08', '2023-12-09', '2023-12-10', '2023-12-11', '2023-12-12', '2023-12-13', '2023-12-14', '2023-12-15', '2023-12-16', '2023-12-17', '2023-12-18', '2023-12-19', '2023-12-20', '2023-12-21', '2023-12-22', '2023-12-23', '2023-12-24', '2023-12-25', '2023-12-26', '2023-12-27', '2023-12-28', '2023-12-29', '2023-12-30', '2023-12-31', '2023-01-01', '2023-01-02', '2023-01-03', '2023-01-04', '2023-01-05', '2023-01-06', '2023-01-07', '2023-01-08', '2023-01-09', '2023-01-10', '2023-01-11', '2023-01-12', '2023-01-13', '2023-01-14', '2023-01-15', '2023-01-16', '2023-01-17', '', '', '', '', '', '', '']print('------------第2步第儿行的(星期),把星期补在日期旁边------------')weeks2=[]weeks= ['(一)','(二)','(三)','(四)','(五)','(六)','(日)',] # 把星期'(一)''(二)'做成很长很长的列表,便于取值for j in range(0,weeksday):for k in weeks:weeks2.append(k)print(weeks2)# ['(一)', '(二)', '(三)', '(四)', '(五)', '(六)', '(日)', '(一)', '(二)', '(三)', '(四)', '(五)', '(六)', '(日)', '(一)', '(二)', '(三)', '(四)', '(五)', '(六)', '(日)', '(一)', '(二)', '(三)', '( # 四)', '(五)', '(六)', '(日)', '(一)', '(二)', '(三)', '(四)', '(五)', '(六)', '(日)', '(一)', '(二)', '(三)', '(四)',date_week=[] # 计算共有几天d1 = datetime.date(int(start.split("-")[0]), int(start.split("-")[1]), int(start.split("-")[2]))d2 = datetime.date(int(end.split("-")[0]), int(end.split("-")[1]), int(end.split("-")[2]))time=(d2 - d1).days+1 # 要生成(135+1)个日期print(time) # 先在date_week最前面加4个空值,然后加上日期和星期合并# for x in range(begin): # 日期开始前加几个空值,替代8月29日8月30日8月31日# b=''# date_week.append(b)# 第1-21周的"日期"和"星期"合并for s in range(0,time): # 一共21周*7-头空3天-尾空5天=139天c=date_list[s]+weeks2[s] # "日期"和"星期"合并 日期从索引0开始取(9月1日)、星期从索引3开始取(周四)date_week.append(c)print(date_week) # 最后在date_week的后面加5个kong # for x in range(last): # 日期结束后加几个空值,以免重新开始选取d# b=''# date_week.append(b)# print(date_week) # ['','','','',09/01(四)', '09/02(五)', '09/03(六)', '09/04(日)', '09/05(一)', '09/06(二)', '09/07(三)', '09/08(四)', '09/09(五)', '09/10(六)', '09/11(日)', '09/12(一)', '09/13(二)', '09/14(三)', '09/15(四)', '09/16(五)', '09/17(六)', '09/18(日)', '09/19(一)', '09/20(二)', '09/21(三)', '09/22(四)', '09/23(五)', '09/24(六)', '09/25(日)', '09/26(一)', '09/27(二)', '09/28(三)', '09/29(四)', '09/30(五)', '10/01(六)', '10/02(日)', '10/03(一)', '10/04(二)', '10/05(三)', '10/06(四)', '10/07(五)', '10/08(六)', '10/09(日)', '10/10(一)', '10/11(二)', '10/12(三)', '10/13(四)', '10/14(五)', '10/15(六)', '10/16(日)', '10/17(一)', '10/18(二)', '10/19(三)', '10/20(四)', '10/21(五)', '10/22(六)', '10/23(日)', '10/24(一)', '10/25(二)', '10/26(三)', '10/27(四)', '10/28(五)', '10/29(六)', '10/30(日)', '10/31(一)', '11/01(二)', '11/02(三)', '11/03(四)', '11/04(五)', '11/05(六)', '11/06(日)', '11/07(一)', '11/08(二)', '11/09(三)', '11/10(四)', '11/11(五)', '11/12(六)', '11/13(日)', '11/14(一)', '11/15(二)', '11/16(三)', '11/17(四)', '11/18(五)', '11/19(六)', '11/20(日)', '11/21(一)', '11/22(二)', '11/23(三)', '11/24(四)', '11/25(五)', '11/26(六)', '11/27(日)', '11/28(一)', '11/29(二)', '11/30(三)', '12/01(四)', '12/02(五)', '12/03(六)', '12/04(日)', '12/05(一)', '12/06(二)', '12/07(三)', '12/08(四)', '12/09(五)', '12/10(六)', '12/11(日)', '12/12(一)', '12/13(二)', '12/14(三)', '12/15(四)', '12/16(五)', '12/17(六)', '12/18(日)', '12/19(一)', '12/20(二)', '12/21(三)', '12/22(四)', '12/23(五)', '12/24(六)', '12/25(日)', '12/26(一)', '12/27(二)', '12/28(三)', '12/29( # 四)', '12/30(五)', '12/31(六)', '01/01(日)', '01/02(一)', '01/03(二)', '01/04(三)', '01/05(四)', '01/06(五)', '01/07(六)', '01/08(日)', '01/09(一)', '01/10(二)', '01/11(三)', '01/12(四)', '01/13( # 五)', '01/14(六)', '01/15(日)', '01/16(一)', '01/17(二)', '']print('----以上完成了日期和星期的拼接-----')print('-----------第3步,把所有的空格和日期都做在一起,跳过节日的日期,替代为节日名字 --------')list_date=[]# 取空列表# for p in range(0,1): #共1-2周 第1周索引取值,0-7,第2周索引 7-14,依次类推
# for kk in date_week[p*7:p*7+5]: # p*7 周一位置上的数字 p*7+5 周五位置上的数字
# list_date.append(kk)# for p in range(1,2): #共1-2周 第1周索引取值,0-7,第2周索引 7-14,依次类推
# for kk in date_week[p*7:p*7+5]: # p*7 周一位置上的数字 p*7+5 周五位置上的数字
# list_date.append(kk)# for p in range(2,3): #共3周 第1周索引取值,0-7,第2周索引 7-14,依次类推
# for kk in date_week[p*7+1:p*7+5]: # p*7+1 周二位置上的数字 p*7+5 周五位置上的数字
# list_date.append(kk)# for p in range(3,5): #共4周 第1周索引取值,0-7,第2周索引 7-14,依次类推
# for kk in date_week[p*7:p*7+5]: # p*7 周一位置上的数字 p*7+5 周五位置上的数字
# list_date.append(kk)# for p in range(0,3):
# b='国庆节' #
# list_date.append(b)# for p in range(5,6): #6周,2天,把周六周日两天放到周四周五位置上
# for kk in date_week[p*7+5:p*7+7]: # p*7+5=周六位置上的数字 p*7+7 周日位置上的数字(+7实际显示的只有+6的那个数)
# list_date.append(kk)# for p in range(6,17): #周,都是5天
# for kk in date_week[p*7:p*7+5]:
# list_date.append(kk)# for p in range(17,18): #周,前4天有,5没有
# for kk in date_week[p*7:p*7+4]: # p*7 周一位置上的数字 p*7+4 周四位置上的数字
# list_date.append(kk)# for p in range(0,1):
# b='元旦节' #
# list_date.append(b)# for p in range(18,21): #周,都是5天
# for kk in date_week[p*7:p*7+5]:
# list_date.append(kk)
# print(list_date)
# # ['', '', '', '9/1(四)', '9/2(五)', '9/5(一)', '9/6(二)', '9/7(三)', '9/8(四)', '9/9(五)', '中秋节', '9/13(二)', '9/14(三)', '9/15(四)', '9/16(五)', '9/19(一)',
# # '9/20(二)', '9/21(三)', '9/22(四)', '9/23(五)', '9/26(一)', '9/27(二)', '9/28(三)', '9/29(四)', '9/30(五)', '国庆节', '国庆节', '国庆节', '10/8(六)', '10/9(日)',
# # '10/10(一)', '10/11(二)', '10/12(三)', '10/13(四)', '10/14(五)', '10/17(一)', '10/18(二)', '10/19(三)', '10/20(四)', '10/21(五)', '10/24(一)', '10/25(二)',
# # '10/26(三)', '10/27(四)', '10/28(五)', '10/31(一)', '11/1(二)', '11/2(三)', '11/3(四)', '11/4(五)', '11/7(一)', '11/8(二)', '11/9(三)', '11/10(四)', '11/11(五)',
# # '11/14(一)', '11/15(二)', '11/16(三)', '11/17(四)', '11/18(五)', '11/21(一)', '11/22(二)', '11/23(三)', '11/24(四)', '11/25(五)', '11/28(一)', '11/29(二)', '11/30(三)', '12/1(四)', '12/2(五)', '12/5(一)', '12/6(二)', '12/7(三)', '12/8(四)', '12/9(五)', '12/12(一)', '12/13(二)', '12/14(三)', '12/15(四)', '12/16(五)', '12/19(一)', '12/20(二
# # )', '12/21(三)', '12/22(四)', '12/23(五)', '12/26(一)', '12/27(二)', '12/28(三)', '12/29(四)', '端午节', '1/2(一)', '1/3(二)', '1/4(三)', '1/5(四)', '1/6(五)',
# # '1/9(一)', '1/10(二)', '1/11(三)', '1/12(四)', '1/13(五)', '1/16(一)', '1/17(二)', '', '', '']# 在list_date五个五个取值 list_d=[]for k in range(0,weeksday):list_d.append(date_week[k*7:k*7+7]) print(list_d)for opq in list_d:print(opq)# ['', '', '', '9/1(四)', '9/2(五)']# ['9/5(一)', '9/6(二)', '9/7(三)', '9/8(四)', '9/9(五)']# ['中秋节', '9/13(二)', '9/14(三)', '9/15(四)', '9/16(五)']# ['9/19(一)', '9/20(二)', '9/21(三)', '9/22(四)', '9/23(五)']# ['9/26(一)', '9/27(二)', '9/28(三)', '9/29(四)', '9/30(五)']# ['国庆节', '国庆节', '国庆节', '10/8(六)', '10/9(日)']# ['10/10(一)', '10/11(二)', '10/12(三)', '10/13(四)', '10/14(五)']# ['10/17(一)', '10/18(二)', '10/19(三)', '10/20(四)', '10/21(五)']# ['10/24(一)', '10/25(二)', '10/26(三)', '10/27(四)', '10/28(五)']# ['10/31(一)', '11/1(二)', '11/2(三)', '11/3(四)', '11/4(五)']# ['11/7(一)', '11/8(二)', '11/9(三)', '11/10(四)', '11/11(五)']# ['11/14(一)', '11/15(二)', '11/16(三)', '11/17(四)', '11/18(五)']# ['11/21(一)', '11/22(二)', '11/23(三)', '11/24(四)', '11/25(五)']# ['11/28(一)', '11/29(二)', '11/30(三)', '12/1(四)', '12/2(五)']# ['12/5(一)', '12/6(二)', '12/7(三)', '12/8(四)', '12/9(五)']# ['12/12(一)', '12/13(二)', '12/14(三)', '12/15(四)', '12/16(五)']# ['12/19(一)', '12/20(二)', '12/21(三)', '12/22(四)', '12/23(五)']# ['12/26(一)', '12/27(二)', '12/28(三)', '12/29(四)', '端午节']# ['1/2(一)', '1/3(二)', '1/4(三)', '1/5(四)', '1/6(五)']# ['1/9(一)', '1/10(二)', '1/11(三)', '1/12(四)', '1/13(五)']# ['1/16(一)', '1/17(二)', '', '', '']print('-----------第1步,把每周排班5天做成21周的日期--------')# listsingle=[ '01小3(二)静','02中1(一)清','03中3(总)蕾','04中4(总)琳','05大1(总)超']# 基本的一周排班# listsingle=[ '托2(一瞿)','小3(二超)','中4(总顾)','大1(总陆)','大3(总蕾)','大4(总琳)']# 基本的一周排班listsingle=['01','02','03','04','05','06']list=[]for x in range(21): #大约有21周for y in listsingle: # 提取基本一周排班里面的每一个值# print(y)list.append(y) # 把每个班级添加到list列表里,顺序为“小3(二)','中1(一)','中3(总)','中4(总)','大1(总)” 并且重复提取21次。print(list) # 不缩进,打印出来只有一份105个元素的列表#['小3(二)','中1(一)','中3(总)','中4(总)','大1(总),小3(二)','中1(一)','中3(总)','中4(总)','大1(总)']print('-----------第2步,只抽取每周四个--------')list2=[]# 取空列表# 第1周# 第1周ufor p in range(0,1): #for u in range(0,begin):b='' # 空5天list2.append(b)for kk in list[p:p+1]: # 0:1list2.append(kk)for u in range(0,2):b='' # 空5天list2.append(b) # 第2-4周for p in range(0,3): #for kk in list[p*4+1:p*4+3]: # 4:6list2.append(kk)b='' # 空1天 取4天list2.append(b)for kk in list[p*4+3:p*4+5]: # 6:7list2.append(kk)for u in range(0,2):b='' # 空5天list2.append(b) # 第5周for p in range(3,4): #for kk in list[p*4+1:p*4+3]: # 11:15 list2.append(kk)b='' # 空1天list2.append(b)for kk in list[p*4+3:p*4+4]: # 11:15 list2.append(kk)b='中秋节' # 空3天list2.append(b)for z in range(7):b='国庆节' # 空3天list2.append(b)for p in range(3,4): #for kk in list[p*4+4:p*4+6]: # 15:17list2.append(kk)# 第3周2次for p in range(4,15): #for kk in list[p*4+2:p*4+4]: # 11:15 15:19list2.append(kk)b='' # 空3天list2.append(b)for kk in list[p*4+4:p*4+6]: # 11:15 15:19list2.append(kk)for u in range(0,2):b='' # 空5天list2.append(b) for p in range(15,16): # for kk in list[p*4+2:p*4+4]: # 11:15 15:19list2.append(kk)b='' # 空3天list2.append(b)for kk in list[p*4+4:p*4+6]: # 11:15 15:19list2.append(kk)for p in range(3): b='元旦节' # 空3天list2.append(b)for p in range(16,17): # for kk in list[p*4+2:p*4+3]: # 11:15 15:19list2.append(kk)b='' # 空3天list2.append(b) for kk in list[p*4+3:p*4+5]: # 11:15 15:19list2.append(kk)for u in range(0,2):b='' # 空5天list2.append(b) print(list2) # 最后一周for p in range(17,19): #for kk in list[p*4+1:p*4+3]: # 4:6list2.append(kk)b='' # 空1天 取4天list2.append(b)for kk in list[p*4+3:p*4+5]: # 6:7list2.append(kk)for u in range(0,2):b='' # 空5天list2.append(b) # for # 在list_date五个五个取值 list3=[]for k in range(0,21):list3.append(list2[k*7:k*7+7]) # print(list)for opq in list3:print(opq)print('-----------第3步,保存到excle--------')# 以下是xls保存arrlan= len(list3)arrlan2 = len(list_d)# 日期抽取5天一组workbook = xlwt.Workbook()# 新建xls工作簿sheet = workbook.add_sheet("Sheet")# 新建xls工作簿的工作表的名字是sheet# 第0列 写入“第1周、第2周、第3周……第21周 dates=[]for i in range(1,weeksday+1):n="第{}周".format(i) # 用遍历方法获得“第1周、第2周、第21周”字样,dates.append(n) # 添加到列表 print(dates) # print(date)row=1 # A2开始for d in range(0, len(dates)):sheet.write(row, 0, dates[d]) # 这里enumerate不能用,因为只有一列,所以就用row +=3 # 1=逐行写入,2=中间空一行,3=中间空2行row=2 # A3开始 再写一次第X周(备注用)for dd in range(0, len(dates)):sheet.write(row, 0, dates[dd]) # 这里enumerate不能用,因为只有一列,所以就用row +=3 # 1=逐行写入,2=中间空一行,3=中间空2行# row=3 # A4开始 再写一次第X周(备注用)# for ddd in range(0, len(dates)):# sheet.write(row, 0, dates[ddd]) # 这里enumerate不能用,因为只有一列,所以就用# row +=4 # 1=逐行写入,2=中间空一行,3=中间空2行# 第0行 写入 星期一 '星期二','星期三','星期四','星期五 ,'星期六','星期日'#weeks = ['周次','星期一','星期二','星期三','星期四','星期五','星期六','星期日']week = len(weeks) col=0 # A1写入for d in range(0, len(weeks)):sheet.write(0,col,weeks[d]) # 因为只有一行,所以就用有两种写法(enumerate和这种)col+= 1 # 1=逐列写入,2=中间空一列,3=中间空2列2# B2 写入 7天日期(月日)row = 1for i in range(arrlan2):for col,item in enumerate(list_d[i],1): # 提取7个一组里面的前5个sheet.write(row,col,item) row += 3# B3 写入 5个5个的班级(中间空1个)row = 2for i in range(arrlan):for col,item in enumerate(list3[i],1):sheet.write(row,col,item) row += 3try:workbook.save(r"D:\test\{}.xls".format(title)) # 新建保存 只能xlsprint('计划生成成功')except e:print('失败...')print(e)# Press the green button in the gutter to run the script.
# 定义起始日期和结束日期
if __name__ == '__main__':start_date = "{}".format(str(start))end_date = "{}".format(str(end))date_generate(start_date, end_date)
效果显示
把班级贴进去
存在问题:
也就是我从第4周开始进班,如果从第4周开始分布“01,02,03”,6个班级列表的选择内容又要手动重新一个个调整了,好难o(╥﹏╥)o,
相关文章:

【办公类-16-01-02】2023年度上学期“机动班下午代班的排班表——跳过周三、节日和周末”(python 排班表系列)
背景需求: 2023年第一学期(2023年9-2024年1月),我又被安排为“机动班”,根据新学期的校历,手动推算本学期的机动班的带班表 排版原则 1、班级数量:共有6个班级,循环滚动 2、每周次…...
ChatGPT HTML JS Echarts实现热力图展示
热力图是一种常用的数据可视化图表,主要用于展示数据的分布和密度情况。它通过使用不同颜色的热点来表示数据在地理或二维空间上的分布情况,从而直观地显示出数据的密集程度和趋势。 热力图的功能和作用如下: 1. 数据分布展示:热力图可以将大量数据以热点的形式展示在地理…...
JavaScript七小知
文章目录 1. == 和 ===区别2. a++ 和 ++a区别3. 创建js对象的三种方式4. 原型与原型链相关4.1 prototype4.2 __proto__4.3 constructor4.4 原型链5. 定时器的两种设置方式6. 时间相关7. axios与axios拦截器1. == 和 ===区别 == 只是判断值是否一致, === 会判断数据类型和…...

Ubuntu【系统环境下】【编译安装OpenCV】【C++调用系统opencv库】
Ubuntu【系统环境下】【编译安装OpenCV】【C调用系统opencv库】 前言: 本人需要用C写代码,调用OpenCV库,且要求OpenCV版本号大于4.1.0 由于使用的是18.04的版本,所以apt安装OpenCV的版本始终是3.2.0,非常拉胯&#…...

AR界安卓在中国,Rokid引爆空间计算狂潮
击关注 文丨刘雨琦 你可能很难想象,在一个没有显示屏也没有鼠标的空间,仅凭一副AR眼镜和一台口袋主机,就能完成一篇5000字的文章。 没错,8月26日,在2023 Rokid Jungle 新品发布会现场,这样的场景正在真实…...
在 React 中如何使用定时器
在React中使用定时器通常有两种方式:使用setInterval和setTimeout函数。 使用setInterval函数: 首先,在组件中导入useEffect和useState函数: import React, { useEffect, useState } from "react";在组件中声明一个状…...
Unity记录4.6-存储-第四阶段总结
文章首发见博客:https://mwhls.top/4822.html。 无图/格式错误/后续更新请见首发页。 更多更新请到mwhls.top查看 欢迎留言提问或批评建议,私信不回。 汇总:Unity 记录 摘要:存储初步实现的总结 总结-2023/08/19 实现了tile存储&…...
【Python】从入门到上头— 使用包、模块、安装第三方模块(7)
一.什么是模块 在Python中,一个.py文件就称之为一个模块(Module)。 模块好处?: 方便重用代码,写完一个通用的模块,可以在很多地方直接拿来用相同名字的函数和变量完全可以分别存在不同的模块中…...

flutter和原生利用pigeon建立通道
首先导入依赖: dependencies: pigeon: ^10.0.0定义一个文件: /// 用于定于flutter和平台的桥接方法 /// HostApi() 标记的,是用于 Flutter 调用原生的方法; /// FlutterApi() 标记的,是用于原生调用 Flutter 的方法&…...

TCP连接分析:探寻TCP的三次握手
文章目录 一、实验背景与目的二、实验需求三、实验解法1. 预先抓包监测使用Wireshark工具2.进行TCP三次握手,访问www.baidu.com3.分析Wireshark捕获的TCP包 摘要: 本实验使用Wireshark工具,通过抓包监测和分析,深入研究了与百度服…...

gitHooks使用教程
1. 安装所需依赖 npm install eslint prettier husky lint-staged --save-dev 2.初始化 husky npx husky-init && npm install 这将创建一个 .husky/ 目录,并且在其中包含一个示例的 pre-commit 文件。 3.设置 pre-commit 钩子 npx husky add .husky/…...
2023.8 - java - 数组
声明数组变量 首先必须声明数组变量,才能在程序中使用数组。下面是声明数组变量的语法: dataType[] arrayRefVar; // 首选的方法或dataType arrayRefVar[]; // 效果相同,但不是首选方法int[] a {1,2,3};int b[] new int[10];TS:let a:…...
ChatGPT怎么辅助解决社会问题?
ChatGPT作为一个强大的自然语言处理模型,具有潜力辅助解决多种社会问题。其能力可以应用于信息传递、教育、宣传、意识提高等领域,为社会问题的解决提供支持。以下将详细探讨ChatGPT如何辅助解决社会问题。 **1. 教育与意识提高**: ChatGPT可…...

Rust之自动化测试(一):如何编写测试
开发环境 Windows 10Rust 1.71.1 VS Code 1.81.1 项目工程 这里继续沿用上次工程rust-demo 编写自动化测试 Edsger W. Dijkstra在他1972年的文章《谦逊的程序员》中说,“程序测试可以是一种非常有效的方法来显示错误的存在,但它对于显示它们的不存在…...

简单聊聊Https的来龙去脉
简单聊聊Https的来龙去脉 Http 通信具有哪些风险Https Http SSL/TLS对称加密 和 非对称加密数字证书数字证书的申请数字证书怎么起作用 Https工作流程一定需要Https吗? Http 通信具有哪些风险 使用明文通信,通信内容可能会被监听不验证通信双方身份&a…...

【注册岩土】Python土力学与基础工程计算.PDF-土中的应力
Python 求解代码如下: 1.#计算竖向有效自重应力2.h12#m3.h21.5#m4.h31#m5.gamma1 19# kN/m^36.gamma218# kN/m^37.gamma317# kN/m^38.sigma_c gammal * h1 gamma2*h2 gamma3 *h39.print("竖向有效自重应力…...

祝贺!Databend Cloud 和阿里云 PolarDB 达成认证
近日,北京数变科技有限公司旗下产品与阿里云 PolarDB 开源数据库社区展开产品集成认证。 测试结果表明,北京数变科技有限公司旗下产品《Databend Cloud(V1.25)》正式通过了《阿里云 PolarDB 数据库管理软件》的技术认证ÿ…...

SQL语言-01
SQL Structured Query Language 的简单介绍 SQL 中的书写规则 SQL 中的数据类型...

PyCharm软件安装包分享(附安装教程)
目录 一、软件简介 二、软件下载 一、软件简介 PyCharm是一种集成开发环境(IDE),专门为Python开发者设计。它是由捷克软件公司JetBrains开发的,为Python开发人员提供了高效、易用和功能丰富的工具集。 以下是PyCharm软件的主要…...

AI文本标注的概念,类型和方法
我们每天都在与不同的媒介(例如文本、音频、图像和视频)交互,我们的大脑对收集到的信息进行处理和加工,从而指导我们的行为。在我们日常接触到的信息中,文本是最常见的媒体类型之一,由我们交流使用的语言构…...
Vim 调用外部命令学习笔记
Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...
挑战杯推荐项目
“人工智能”创意赛 - 智能艺术创作助手:借助大模型技术,开发能根据用户输入的主题、风格等要求,生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用,帮助艺术家和创意爱好者激发创意、提高创作效率。 - 个性化梦境…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析
今天聊的内容,我认为是AI开发里面非常重要的内容。它在AI开发里无处不在,当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗",或者让翻译模型 "将这段合同翻译成商务日语" 时,输入的这句话就是 Prompt。…...

使用VSCode开发Django指南
使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...
SkyWalking 10.2.0 SWCK 配置过程
SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外,K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案,全安装在K8S群集中。 具体可参…...
多场景 OkHttpClient 管理器 - Android 网络通信解决方案
下面是一个完整的 Android 实现,展示如何创建和管理多个 OkHttpClient 实例,分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...

为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?
在建筑行业,项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升,传统的管理模式已经难以满足现代工程的需求。过去,许多企业依赖手工记录、口头沟通和分散的信息管理,导致效率低下、成本失控、风险频发。例如&#…...

Opencv中的addweighted函数
一.addweighted函数作用 addweighted()是OpenCV库中用于图像处理的函数,主要功能是将两个输入图像(尺寸和类型相同)按照指定的权重进行加权叠加(图像融合),并添加一个标量值&#x…...
c++ 面试题(1)-----深度优先搜索(DFS)实现
操作系统:ubuntu22.04 IDE:Visual Studio Code 编程语言:C11 题目描述 地上有一个 m 行 n 列的方格,从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子,但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...
【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)
要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况,可以通过以下几种方式模拟或触发: 1. 增加CPU负载 运行大量计算密集型任务,例如: 使用多线程循环执行复杂计算(如数学运算、加密解密等)。运行图…...