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

Python比較與抽取64位

V1.0.0.16綠色版
  • Python比較與抽取64位V1.0.0.16綠色版
  • 軟件大小:50.4M
  • 更新時間:2022-07-13 11:57
  • 軟件語言:中文
  • 軟件廠商:
  • 軟件類別:國產(chǎn)軟件 / 免費軟件 / 教育學(xué)習(xí)
  • 軟件等級:3級
  • 應(yīng)用平臺:WinAll
  • 官方網(wǎng)站:暫無
  • 應(yīng)用備案:
好評:50%
壞評:50%

軟件介紹

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

軟件說明

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

需要:python(或嵌入式python)

需要的庫:
pandas【核心】(同時因為pandas的原因需要numpy與openpyxl)
os
sys
random

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

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

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

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

Python源碼

注:python因為個人習(xí)慣的原因?qū)懥艘淮蠖褌鲄ⅰ?br/>在作者看來python就應(yīng)該專注于運算,別的GUI,判斷運行環(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):  # 隨機抽人(除教改)

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

                          axis=0, ignore_index=True)

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

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

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

                          axis=0, ignore_index=True)

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

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

        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("隨機抽人(男)(除教改)已完成,共抽取{}人".format(num_pick))

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

        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("隨機抽人(女)(除教改)已完成,共抽取{}人".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ā)表評論

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

TOP
軟件下載