【办公类-16-01-02】2023年度上学期“机动班下午代班的排班表——跳过周三、节日和周末”(python 排班表系列)

news2024/9/25 23:21:04

背景需求:

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_dt

    date_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周u
    for p in range(0,1):  #
        for u in range(0,begin):
            b=''    # 空5天
            list2.append(b)
        for kk in list[p:p+1]:  # 0:1
            list2.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:6
            list2.append(kk)
        b=''    # 空1天 取4天
        list2.append(b)
        for kk in list[p*4+3:p*4+5]:  # 6:7
            list2.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:17
            list2.append(kk)
         

    # 第3周2次
    for p in range(4,15):  #
        
        for kk in list[p*4+2:p*4+4]:  # 11:15 15:19
            list2.append(kk)
        b=''    # 空3天
        list2.append(b)
        for kk in list[p*4+4:p*4+6]:  # 11:15 15:19
            list2.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:19
            list2.append(kk)
        b=''    # 空3天
        list2.append(b)
        for kk in list[p*4+4:p*4+6]:  # 11:15 15:19
            list2.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:19
            list2.append(kk)
        b=''    # 空3天
        list2.append(b)  
        for kk in list[p*4+3:p*4+5]:  # 11:15 15:19
            list2.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:6
            list2.append(kk)
        b=''    # 空1天 取4天
        list2.append(b)
        for kk in list[p*4+3:p*4+5]:  # 6:7
            list2.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 = 1
    for 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 = 2
    for i in range(arrlan):
        for col,item in enumerate(list3[i],1):
            sheet.write(row,col,item)  
        row += 3
        
    try:
        workbook.save(r"D:\test\{}.xls".format(title))    # 新建保存 只能xls
        print('计划生成成功')
    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,

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/934866.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

集丰照明|这种灯光效果既简约又漂亮适合汽修洗车美容店

明亮的灯光&#xff0c;既能吸引客户上门&#xff0c;营造美观舒适的氛围。洗车美容店灯光方面既要满足基本的照明亮度&#xff0c;也要有图案、形状的美感。 下面是一家汽车服务店面不同区域的灯光效果&#xff0c;仅供想要开洗车店或者准备店面改造升级的朋友做参考。 灯光是…

Linux系统编程之文件编程常用API回顾和文件编程一般步骤

目录 1.打开文件 2.创建文件 3.写入文件 4.读取文件 5.光标定位 6.关闭文件 7.文件编程一般步骤 Linux系统提供了一些常用API如&#xff1a; 打开/创建 open/creat 读写 write /read 光标定位 Iseek 关闭 close 1.打开文件 参数说明 Pathname:要打开的文件名 (含路径&…

Android Xfermode 使用解析

自定义绘制之图片 canvar.drawBitmap() ,BitMapFactory private fun getBitmap(width: Int): Bitmap? {val option BitmapFactory.Options()option.inJustDecodeBounds trueBitmapFactory.decodeResource(resources, R.mipmap.android111,option)option.inJustDecodeBounds…

Python中@property和@setter的用法

一、property 用法&#xff1a;可以使用property装饰器来创建只读属性&#xff0c;property装饰器会将方法转换为相同名称的只读属性&#xff0c;这样可以防止属性被修改。 实例 class DataSet(object):propertydef method_with_property(self): ##含有propertyreturn 15def…

搭建个人博客Linux + WordPress

这篇文章主要介绍如何搭建个人网站&#xff0c;环境是Linux WordPress。 前面我是搞了个个人网站&#xff0c;不过呢&#xff0c;现在访问不了了。域名过期后&#xff0c;我没及时重新买&#xff0c;然后原先的域名&#xff0c;不知道被哪位兄弟给买走了。 分下面这么几步&a…

基于Java+SpringBoot+Vue前后端分离二手车交易系统设计和实现

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…

LoadRunner操作教程

日升时奋斗&#xff0c;日落时自省 目录 1、Virtual User Generator &#xff08;VUG&#xff09; 1.1、WebTours系统 1.1.1、WebTours启动 1.1.2、WebTours配置 1.2、脚本录制 1.3、编译 1.4、脚本运行 1.5、加强脚本 1.5.1、事务插入 1.5.2、插入集合点 1.5.3、参…

Android 11/12 app-lint 系统Update-API时Lint检查问题

有以下两种解决方法 1. 加SupressLint注解 这种方式你可以其他博客也有 但是要每个类和方法都加上SuppressLint 太麻烦了 我才不要这样呢 2. 添加 --api-lint-ignore-prefix 参数直接跳过代码检查 1. 打开 frameworks/base/Android.bp 文件 2. 搜索找到这个字段 metalava…

京东算法分析

# 1.首先charles抓包发现每个请求Url后都接了一个sign的参数且每次都不一样。也没有其他的一些别的特别参数,那么关键问题就是分析sign参数的生成了 # 2.jadx反编译,寻找sign的生成的位置 > 直接搜索sign参数匹配的出来的结果太多了,一时间不好区分哪个是真的。于是使用get…

sql:SQL优化知识点记录(三)

&#xff08;1&#xff09;explain之select_type和table介绍 简单的查询类型是&#xff1a;simple 外层 primary&#xff0c;括号里subquery 用到了临时表&#xff1a;derived &#xff08;2&#xff09;explain之select_type介绍 trpe反映的结果与我们sql是否优化过&#xff…

家宽用户家庭网的主要质量问题是什么?原因有哪些

1 引言 截至2020年底&#xff0c;我国家庭宽带&#xff08;以下简称“家宽”&#xff09;普及率已达到96%。经过一年多的发展&#xff0c;当前&#xff0c;家庭宽带的市场空间已经饱和。运营商在家宽市场的竞争也随之从新增用户数的竞争转移到家宽品质的竞争。 早期运营商的家…

软件测试收费标准

软件测试 软件测试收费主要根据工作量进行评估&#xff0c;主流的评估方式有以下两种 一、按照工作量评估 工作量从以下4个方面体现&#xff1a; 1、功能性 功能点数量正相关&#xff0c;功能复杂程度正相关例如一个算法逻辑相对复杂的功能点对应需要设计的用例会更多。 2、…

【PyQt】下载文件时弹出提示用户选择保存文件位置的对话框

1 需求 在界面软件中&#xff0c;用户点击下载某个文件&#xff0c;此时软件需要提示用户选择保存到电脑的某个位置&#xff0c;然后软件才能将文件保存到用户指定的电脑文件夹中。 2 代码 # 需引入的库 import os import sys from PyQt5.QtWidgets import QFileDialogsrc .…

复数基本概念

复数是为了解决无法对负数开根号的问题&#xff0c;其为实数的延伸&#xff1a; 复数表示为&#xff1a; a b i abi abi 其中 a 、b 为实数&#xff0c;i 为虚数单位&#xff0c;且 i 2 − 1 i^2 -1 i2−1。实数 a 称为虚数的实部&#xff0c;b 称为虚数的虚部&#xff…

【韩顺平 零基础30天学会Java】数组、排序和查找(2days)

数组、排序、查找和多维数组 数组可以存放多个同一类型的数据。数组也是一种数据类 型&#xff0c;是引用数据类型。 定义一个数组 double[] hens {3,5,1,3.4,2,50} 遍历数组得到数组所有元素的和 hens[下标]&#xff0c;下标是从0开始编号的。 可以通过数组名.lenght得到数组…

爬取boss直聘简单案例

前提准备 以chrome自动化为例 下载浏览器驱动 最新版本&#xff1a;Chrome for Testing availability (googlechromelabs.github.io) 旧版本&#xff1a;ChromeDriver - WebDriver for Chrome - Downloads (chromium.org) 查看chrome的版本 设置->关于chrome 如图116版本…

React 如何获取上一次 state 的值

React 如何获取上一次 state 的值 一、用 ref 存储上一次的 state 类似 usePrevious function usePrevious(value) {const ref useRef();useEffect(() > {ref.current value;});return ref.current; }二、通过 setState 的入参改为函数获取

Nginx详解 第二部分:Nginx配置文件详解(附详细配置实例)

Part2 一、Nginx配置文件1.1 主配置文件详解1.2 子配置文件 二、全局配置部分2.1 修改启动的工作进程数&#xff08;worker process) 优化2.2 cpu与worker process绑定&#xff08;优化三)2.3 PID 路径修改 优化2.4 修改工作进程的优先级 优化2.7 调试工作进程打开的文件的个数…

专题:平面、空间直线参数方程下的切线斜率问题

本文研究平面、空间直线在参数方程形式下&#xff0c;切线斜率&#xff08;即导数&#xff09;如何表示的问题。 如上图所示。 设 y f ( x ) &#xff0c; x φ ( t ) &#xff0c; y ψ ( t ) 当 t t 0 时&#xff0c; x x 0 &#xff0c; y y 0 &#xff0c;即点 A 坐…

拼多多开放平台的API接口可以获取拼多多电商数据。以下是API接口流程

使用拼多多开放平台的API接口可以获取拼多多电商数据。以下是一般的API接口流程&#xff1a; 1. 注册开发者账号&#xff1a;首先&#xff0c;您需要在拼多多开放平台注册一个开发者账号。通过开发者账号&#xff0c;您可以获得API密钥和其他必要的信息。 2. 鉴权与认证&…