当前位置: 首页 > news >正文

【办公类-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 排班表系列)

背景需求&#xff1a; 2023年第一学期&#xff08;2023年9-2024年1月&#xff09;&#xff0c;我又被安排为“机动班”&#xff0c;根据新学期的校历&#xff0c;手动推算本学期的机动班的带班表 排版原则 1、班级数量&#xff1a;共有6个班级&#xff0c;循环滚动 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库】 前言&#xff1a; 本人需要用C写代码&#xff0c;调用OpenCV库&#xff0c;且要求OpenCV版本号大于4.1.0 由于使用的是18.04的版本&#xff0c;所以apt安装OpenCV的版本始终是3.2.0&#xff0c;非常拉胯&#…...

AR界安卓在中国,Rokid引爆空间计算狂潮

击关注 文丨刘雨琦 你可能很难想象&#xff0c;在一个没有显示屏也没有鼠标的空间&#xff0c;仅凭一副AR眼镜和一台口袋主机&#xff0c;就能完成一篇5000字的文章。 没错&#xff0c;8月26日&#xff0c;在2023 Rokid Jungle 新品发布会现场&#xff0c;这样的场景正在真实…...

在 React 中如何使用定时器

在React中使用定时器通常有两种方式&#xff1a;使用setInterval和setTimeout函数。 使用setInterval函数&#xff1a; 首先&#xff0c;在组件中导入useEffect和useState函数&#xff1a; import React, { useEffect, useState } from "react";在组件中声明一个状…...

Unity记录4.6-存储-第四阶段总结

文章首发见博客&#xff1a;https://mwhls.top/4822.html。 无图/格式错误/后续更新请见首发页。 更多更新请到mwhls.top查看 欢迎留言提问或批评建议&#xff0c;私信不回。 汇总&#xff1a;Unity 记录 摘要&#xff1a;存储初步实现的总结 总结-2023/08/19 实现了tile存储&…...

【Python】从入门到上头— 使用包、模块、安装第三方模块(7)

一.什么是模块 在Python中&#xff0c;一个.py文件就称之为一个模块&#xff08;Module&#xff09;。 模块好处&#xff1f;&#xff1a; 方便重用代码&#xff0c;写完一个通用的模块&#xff0c;可以在很多地方直接拿来用相同名字的函数和变量完全可以分别存在不同的模块中…...

flutter和原生利用pigeon建立通道

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

TCP连接分析:探寻TCP的三次握手

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

gitHooks使用教程

1. 安装所需依赖 npm install eslint prettier husky lint-staged --save-dev 2.初始化 husky npx husky-init && npm install 这将创建一个 .husky/ 目录&#xff0c;并且在其中包含一个示例的 pre-commit 文件。 3.设置 pre-commit 钩子 npx husky add .husky/…...

2023.8 - java - 数组

声明数组变量 首先必须声明数组变量&#xff0c;才能在程序中使用数组。下面是声明数组变量的语法&#xff1a; dataType[] arrayRefVar; // 首选的方法或dataType arrayRefVar[]; // 效果相同&#xff0c;但不是首选方法int[] a {1,2,3};int b[] new int[10];TS:let a:…...

ChatGPT怎么辅助解决社会问题?

ChatGPT作为一个强大的自然语言处理模型&#xff0c;具有潜力辅助解决多种社会问题。其能力可以应用于信息传递、教育、宣传、意识提高等领域&#xff0c;为社会问题的解决提供支持。以下将详细探讨ChatGPT如何辅助解决社会问题。 **1. 教育与意识提高**&#xff1a; ChatGPT可…...

Rust之自动化测试(一):如何编写测试

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

简单聊聊Https的来龙去脉

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

【注册岩土】Python土力学与基础工程计算.PDF-土中的应力

Python 求解代码如下&#xff1a; 1&#xff0e;&#xff03;计算竖向有效自重应力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&#xff0e;print&#xff08;&#xff02;竖向有效自重应力…...

祝贺!Databend Cloud 和阿里云 PolarDB 达成认证

近日&#xff0c;北京数变科技有限公司旗下产品与阿里云 PolarDB 开源数据库社区展开产品集成认证。 测试结果表明&#xff0c;北京数变科技有限公司旗下产品《Databend Cloud&#xff08;V1.25&#xff09;》正式通过了《阿里云 PolarDB 数据库管理软件》的技术认证&#xff…...

SQL语言-01

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

PyCharm软件安装包分享(附安装教程)

目录 一、软件简介 二、软件下载 一、软件简介 PyCharm是一种集成开发环境&#xff08;IDE&#xff09;&#xff0c;专门为Python开发者设计。它是由捷克软件公司JetBrains开发的&#xff0c;为Python开发人员提供了高效、易用和功能丰富的工具集。 以下是PyCharm软件的主要…...

AI文本标注的概念,类型和方法

我们每天都在与不同的媒介&#xff08;例如文本、音频、图像和视频&#xff09;交互&#xff0c;我们的大脑对收集到的信息进行处理和加工&#xff0c;从而指导我们的行为。在我们日常接触到的信息中&#xff0c;文本是最常见的媒体类型之一&#xff0c;由我们交流使用的语言构…...

多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度​

一、引言&#xff1a;多云环境的技术复杂性本质​​ 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时&#xff0c;​​基础设施的技术债呈现指数级积累​​。网络连接、身份认证、成本管理这三大核心挑战相互嵌套&#xff1a;跨云网络构建数据…...

2024年赣州旅游投资集团社会招聘笔试真

2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...

LLM基础1_语言模型如何处理文本

基于GitHub项目&#xff1a;https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken&#xff1a;OpenAI开发的专业"分词器" torch&#xff1a;Facebook开发的强力计算引擎&#xff0c;相当于超级计算器 理解词嵌入&#xff1a;给词语画"…...

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...

在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用

1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...

Typeerror: cannot read properties of undefined (reading ‘XXX‘)

最近需要在离线机器上运行软件&#xff0c;所以得把软件用docker打包起来&#xff0c;大部分功能都没问题&#xff0c;出了一个奇怪的事情。同样的代码&#xff0c;在本机上用vscode可以运行起来&#xff0c;但是打包之后在docker里出现了问题。使用的是dialog组件&#xff0c;…...

Python 训练营打卡 Day 47

注意力热力图可视化 在day 46代码的基础上&#xff0c;对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...

内窥镜检查中基于提示的息肉分割|文献速递-深度学习医疗AI最新文献

Title 题目 Prompt-based polyp segmentation during endoscopy 内窥镜检查中基于提示的息肉分割 01 文献速递介绍 以下是对这段英文内容的中文翻译&#xff1a; ### 胃肠道癌症的发病率呈上升趋势&#xff0c;且有年轻化倾向&#xff08;Bray等人&#xff0c;2018&#x…...

FOPLP vs CoWoS

以下是 FOPLP&#xff08;Fan-out panel-level packaging 扇出型面板级封装&#xff09;与 CoWoS&#xff08;Chip on Wafer on Substrate&#xff09;两种先进封装技术的详细对比分析&#xff0c;涵盖技术原理、性能、成本、应用场景及市场趋势等维度&#xff1a; 一、技术原…...

高抗扰度汽车光耦合器的特性

晶台光电推出的125℃光耦合器系列产品&#xff08;包括KL357NU、KL3H7U和KL817U&#xff09;&#xff0c;专为高温环境下的汽车应用设计&#xff0c;具备以下核心优势和技术特点&#xff1a; 一、技术特性分析 高温稳定性 采用先进的LED技术和优化的IC设计&#xff0c;确保在…...