西西軟件園多重安全檢測(cè)下載網(wǎng)站、值得信賴的軟件下載站!
西西首頁(yè) 安卓軟件 安卓游戲 電腦軟件 軟件教程 專題合集

Python比較與抽取64位

V1.0.0.16綠色版
  • Python比較與抽取64位V1.0.0.16綠色版
  • 軟件類型:國(guó)產(chǎn)軟件 / 免費(fèi)軟件
  • 軟件大小:50.4M
  • 更新時(shí)間:2022-07-13 11:57
  • 應(yīng)用平臺(tái):WinAll
  • 軟件語(yǔ)言:中文
  • 軟件等級(jí):3級(jí)
  • 官方網(wǎng)站:暫無(wú)
5.0
0
好用
0
難用
  • 軟件簡(jiǎn)介
  • 軟件截圖
  • 軟件評(píng)論
  • 軟件推薦

Python比較與抽取64位是一款python隨機(jī)抽取對(duì)比查找軟件,查找誰(shuí)沒(méi)填表、重復(fù)填表的同學(xué),隨機(jī)抽取名單,苦于班級(jí)事務(wù)繁多,在大學(xué)里有一堆的表要填,同時(shí)總是有同學(xué)沒(méi)看到消息而不填表,本工具誕生于這樣的條件下。

軟件說(shuō)明

根本目的為了知道誰(shuí)沒(méi)填表,誰(shuí)重復(fù)填表了。
不僅如此,很多需要平均分配的任務(wù)還需要隨機(jī)抽人(班里分出去了教改班的幾個(gè)同學(xué)和原班級(jí))

需要:python(或嵌入式python)

需要的庫(kù):
pandas【核心】(同時(shí)因?yàn)閜andas的原因需要numpy與openpyxl)
os
sys
random

目錄架構(gòu)及解釋說(shuō)明:

__Python比較與抽取.exe:主程序,當(dāng)然你也可以根據(jù)python的傳參自行調(diào)用,隨便你
compare.py:核心文件,主要的運(yùn)算均在此處
in.xlsx:輸入要進(jìn)行運(yùn)算的學(xué)生姓名
例:

ref.xlsx:參考用的表格
格式如下:

out.xlsx:輸出用的表格(均為姓名)

Python源碼

注:python因?yàn)閭(gè)人習(xí)慣的原因?qū)懥艘淮蠖褌鲄ⅰ?br/>在作者看來(lái)python就應(yīng)該專注于運(yùn)算,別的GUI,判斷運(yùn)行環(huán)境啥的還是交給aardio(粘合劑)吧

[/font][/size]

[size=4][font=微軟雅黑]import os

import random

import sys

import pandas as pd

def Initialize():

    ref_t_lack = pd.read_excel(

        os.getcwd() + "\\ref.xlsx",

        header=None

    )

    ref_s_lack = set()

    for i in range(len(ref_t_lack)):

        ref_s_lack.add(ref_t_lack.iloc[i][0])

    ref_s_all = ref_s_lack.copy()

    for i in ["AAA", "BBB", "CCC", "DDD", "EEE"]: # 此處應(yīng)為教改班同學(xué)的姓名

        ref_s_all.add(i)

    in_t = pd.read_excel(os.getcwd() + "\\in.xlsx", header=None)

    in_s = set()

    for i in range(len(in_t)):

        in_s.add(in_t.iloc[i][0])

    try:

        os.remove(os.getcwd() + "\\out.xlsx")

    except:

        pass

    out_t = pd.DataFrame()

    return ref_s_lack, ref_t_lack, ref_s_all, in_t, in_s, out_t

def filter(mode: int,

           ref_s_lack: set,

           ref_t_lack: pd.DataFrame,

           ref_s_all: set,

           in_t: pd.DataFrame,

           in_s: set,

           out_t: pd.DataFrame,

           num_pick: int):

    re = in_t.duplicated()

    for i in range(len(re)):

        temp = re.iloc[i]

        if(temp == True):

            print(in_t.iloc[i][0] + "重復(fù)")

        if(i == (len(re) - 1)):

            print("查重已完成", end="\n\n")

    result_lack = ref_s_lack - in_s

    result_all = ref_s_all - in_s

    if (mode == 0):  # 查人除教改班

        out_t = pd.concat([out_t, pd.Series(list(result_lack))],

                          axis=0, ignore_index=True)

        print("除教改查人完畢")

    elif (mode == 1):  # 查人全體

        out_t = pd.concat([out_t, pd.Series(list(result_all))],

                          axis=0, ignore_index=True)

        print("全體查人完畢")

    if (mode == 20):  # 混排除教改班(剩)

        temp = list(result_lack)

        random.shuffle(temp)

        temp = pd.DataFrame(temp)

        out_t = pd.concat([out_t, temp], axis=0, ignore_index=True)

        print("剩下的同學(xué)混排完畢(除教改)")

    elif (mode == 21):  # 混排全體(剩)

        temp = list(result_all)

        random.shuffle(temp)

        temp = pd.DataFrame(temp)

        out_t = pd.concat([out_t, temp], axis=0, ignore_index=True)

        print("剩下的同學(xué)混排完畢(全體)")

    if (mode == 30):  # 混排輸入(全)

        temp = list(in_s)

        random.shuffle(temp)

        temp = pd.DataFrame(temp)

        out_t = pd.concat([out_t, temp], axis=0, ignore_index=True)

        print("輸入名單混排完畢")

    elif (mode == 31):  # 混排全體(除教改)(全)

        temp = list(ref_s_lack)

        random.shuffle(temp)

        temp = pd.DataFrame(temp)

        out_t = pd.concat([out_t, temp], axis=0, ignore_index=True)

        print("全體混排完畢(除教改)")

    elif (mode == 32):  # 混排全體(全)(全)

        temp = list(ref_s_all)

        random.shuffle(temp)

        temp = pd.DataFrame(temp)

        out_t = pd.concat([out_t, temp], axis=0, ignore_index=True)

        print("全體混排完畢(含教改)")

    if (mode == 40):  # 隨機(jī)抽人(除教改)

        out_t = pd.concat([out_t, pd.DataFrame(random.sample(list(ref_s_lack), k=num_pick))],

                          axis=0, ignore_index=True)

        print("隨機(jī)抽人(除教改)已完成,共抽取{}人".format(num_pick))

    elif (mode == 41):  # 隨機(jī)抽人(全)

        out_t = pd.concat([out_t, pd.DataFrame(random.sample(list(ref_s_all), k=num_pick))],

                          axis=0, ignore_index=True)

        print("隨機(jī)抽人(全)已完成,共抽取{}人".format(num_pick))

    elif (mode == 42):  # 隨機(jī)抽人(男)(除教改)

        temp_list = []

        for i in range(len(ref_t_lack)):

            if (ref_t_lack.iloc[i][2] == "男"):

                temp_list.append(ref_t_lack.iloc[i][0])

        out_t = pd.concat([out_t, pd.DataFrame(random.sample(temp_list, k=num_pick))],

                          axis=0, ignore_index=True)

        print("隨機(jī)抽人(男)(除教改)已完成,共抽取{}人".format(num_pick))

    elif (mode == 43):  # 隨機(jī)抽人(女)(除教改)

        temp_list = []

        for i in range(len(ref_t_lack)):

            if (ref_t_lack.iloc[i][2] == "女"):

                temp_list.append(ref_t_lack.iloc[i][0])

        out_t = pd.concat([out_t, pd.DataFrame(random.sample(temp_list, k=num_pick))],

                          axis=0, ignore_index=True)

        print("隨機(jī)抽人(女)(除教改)已完成,共抽取{}人".format(num_pick))

    out_t.to_excel(os.getcwd() + "\\out.xlsx", header=None, index=False)

mode = int(sys.argv[1])

try:

    num_pick = int(sys.argv[2])

except:

    num_pick = pd.NA

ref_s_lack, ref_t_lack, ref_s_all, in_t, in_s, out_t = Initialize()

filter(mode, ref_s_lack, ref_t_lack, ref_s_all, in_t, in_s, out_t, num_pick)

其他版本下載

發(fā)表評(píng)論

昵稱:
表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
查看所有(0)條評(píng)論 > 字?jǐn)?shù): 0/500