From 485cd090ab017ae63005e3c02df0092bdf305103 Mon Sep 17 00:00:00 2001 From: 13632530821 Date: Sat, 19 Nov 2022 17:37:03 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=94=B9=E4=B8=BA=E8=8B=B1=E6=96=87?= =?UTF-8?q?=E5=AD=97=E7=AC=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 12 +++++++++++ .history/.gitignore_20221119173550 | 31 ++++++++++++++++++++++++++++ .history/.gitignore_20221119173607 | 32 +++++++++++++++++++++++++++++ README.md | 32 ++++++++++++++--------------- names.xls | Bin 0 -> 27136 bytes 点名器.pyw | 14 ++++++------- 6 files changed, 98 insertions(+), 23 deletions(-) create mode 100644 .history/.gitignore_20221119173550 create mode 100644 .history/.gitignore_20221119173607 create mode 100644 names.xls diff --git a/.gitignore b/.gitignore index 581c4aa..c2a90a3 100644 --- a/.gitignore +++ b/.gitignore @@ -18,3 +18,15 @@ build/点名器/localpycs/pyimod03_ctypes.pyc build/点名器/localpycs/pyimod04_pywin32.pyc build/点名器/localpycs/struct.pyc dist/点名器.exe +README_Vanila.html +README_Vanila.md +README.html +.history/README_Vanila_20221107204953.md +.history/README_Vanila_20221107204954.md +.history/.gitignore_20221107235331 +.history/点名器_20221107235625.pyw +.history/README_20221107235533.md +.history/.gitignore_20221107235715 +.history/点名器_20221108000106.pyw +.history/.gitignore_20221119173544 +dist/names.xls diff --git a/.history/.gitignore_20221119173550 b/.history/.gitignore_20221119173550 new file mode 100644 index 0000000..acec9e9 --- /dev/null +++ b/.history/.gitignore_20221119173550 @@ -0,0 +1,31 @@ +点名器.spec +build/点名器/点名器.exe.manifest +build/点名器/点名器.pkg +build/点名器/Analysis-00.toc +build/点名器/base_library.zip +build/点名器/EXE-00.toc +build/点名器/PKG-00.toc +build/点名器/PYZ-00.pyz +build/点名器/PYZ-00.toc +build/点名器/Tree-00.toc +build/点名器/Tree-01.toc +build/点名器/Tree-02.toc +build/点名器/warn-点名器.txt +build/点名器/xref-点名器.html +build/点名器/localpycs/pyimod01_archive.pyc +build/点名器/localpycs/pyimod02_importers.pyc +build/点名器/localpycs/pyimod03_ctypes.pyc +build/点名器/localpycs/pyimod04_pywin32.pyc +build/点名器/localpycs/struct.pyc +dist/点名器.exe +README_Vanila.html +README_Vanila.md +README.html +.history/README_Vanila_20221107204953.md +.history/README_Vanila_20221107204954.md +.history/.gitignore_20221107235331 +.history/点名器_20221107235625.pyw +.history/README_20221107235533.md +.history/.gitignore_20221107235715 +.history/点名器_20221108000106.pyw +.history/.gitignore_20221119173544 diff --git a/.history/.gitignore_20221119173607 b/.history/.gitignore_20221119173607 new file mode 100644 index 0000000..c2a90a3 --- /dev/null +++ b/.history/.gitignore_20221119173607 @@ -0,0 +1,32 @@ +点名器.spec +build/点名器/点名器.exe.manifest +build/点名器/点名器.pkg +build/点名器/Analysis-00.toc +build/点名器/base_library.zip +build/点名器/EXE-00.toc +build/点名器/PKG-00.toc +build/点名器/PYZ-00.pyz +build/点名器/PYZ-00.toc +build/点名器/Tree-00.toc +build/点名器/Tree-01.toc +build/点名器/Tree-02.toc +build/点名器/warn-点名器.txt +build/点名器/xref-点名器.html +build/点名器/localpycs/pyimod01_archive.pyc +build/点名器/localpycs/pyimod02_importers.pyc +build/点名器/localpycs/pyimod03_ctypes.pyc +build/点名器/localpycs/pyimod04_pywin32.pyc +build/点名器/localpycs/struct.pyc +dist/点名器.exe +README_Vanila.html +README_Vanila.md +README.html +.history/README_Vanila_20221107204953.md +.history/README_Vanila_20221107204954.md +.history/.gitignore_20221107235331 +.history/点名器_20221107235625.pyw +.history/README_20221107235533.md +.history/.gitignore_20221107235715 +.history/点名器_20221108000106.pyw +.history/.gitignore_20221119173544 +dist/names.xls diff --git a/README.md b/README.md index 073963c..b9a5c4f 100644 --- a/README.md +++ b/README.md @@ -1,32 +1,32 @@ # ---一个点名器的python实现--- ## 读取相同目录下的names.xls数据库文件 ## 程序启动后如果检测到数据库文件会自动加上隐藏属性 -## names.xls必须满足以下条件: +## names.xls必须满足以下条件: ### 1. 至少两行和不多于也不少于四列 ### 2. 第一行的四个单元格分别是 |序号|班级|学科|姓名 ### 3. 第二行以下分别按照第一行的要求填写 -#### P.S. 第一行的四个单元格会被程序自动忽略,这四个名称只是为了让人方便阅读 +#### P.S. 第一行的四个单元格会被程序自动忽略,这四个名称只是为了让人方便阅读 -### 软件会自动读取数据库中所有可用的班级名称,并将列举在软件右侧的选择框内。 +### 软件会自动读取数据库中所有可用的班级名称,并将列举在软件右侧的选择框内. ![image](https://user-images.githubusercontent.com/10991308/200275407-fc43e648-275f-455e-a7c7-2fec00e074e2.png) -### 左击选择框可以选择按照班级的筛选,可以多选,如果不选,则默认不进行筛选。 +### 左击选择框可以选择按照班级的筛选,可以多选,如果不选,则默认不进行筛选. ![image](https://user-images.githubusercontent.com/10991308/200275805-0d64667f-238e-42bb-a332-3be33fd0b5ec.png) -### 点击`立即摇人!`可以在所有满足筛选条件的人员中随机挑选一位,并将其姓名,班级号和学科种类显示在界面上。 +### 点击`立即摇人!`可以在所有满足筛选条件的人员中随机挑选一位,并将其姓名,班级号和学科种类显示在界面上. ![image](https://user-images.githubusercontent.com/10991308/200276213-2eabcb19-7bde-4eca-985e-e0ddf939b484.png) -### 点击`应用班级选用`可以提前应用筛选条件,但不会进行挑选。 +### 点击`应用班级选用`可以提前应用筛选条件,但不会进行挑选. -~~但是点击摇人的时候本来就会重新应用当前选好的筛选条件,所以这个按钮其实就是做来好看的。~~ +~~但是点击摇人的时候本来就会重新应用当前选好的筛选条件,所以这个按钮其实就是做来好看的.~~ -### 为了防止被搞心态,不会出现连续抽到两个一样的人的情况。~~因为懒得写动画所以如果连续抽到两个一样的人就几乎看不出来了~~ +### 为了防止被搞心态,不会出现连续抽到两个一样的人的情况.~~因为懒得写动画所以如果连续抽到两个一样的人就几乎看不出来了~~ -## 隐藏功能:使用config.data文件对指定编号的人员进行指定概率编辑 +## 隐藏功能:使用config.data文件对指定编号的人员进行指定概率编辑 ~~究竟是什么居心的人才想让我开发这么一个鬼功能~~ @@ -35,14 +35,14 @@ ![image](https://user-images.githubusercontent.com/10991308/200277421-a81b11a2-eec2-4373-957a-37dc134ef0b8.png) ### 在相同目录下编辑一个config.data文件 -### 如果程序没有检测到文件,什么都不会发生 -### 如果检测到了,自动加隐藏属性并读取文件 -### config.data需要符合以下语法: +### 如果程序没有检测到文件,什么都不会发生 +### 如果检测到了,自动加隐藏属性并读取文件 +### config.data需要符合以下语法: #### 1. 由N行组成 #### 2. 每一行对应一位需要更改概率的序号 #### 3. 每一行的内容为 `X,+/-/0` 即需要编辑的序号加上一个英文字符逗号加上英文字符+或者-或者数字0 #### 4. 请再看一遍`3.`并确保你记住了每一个词 -#### 5. 如果输入了`+`,那么该序号被抽到的概率增加(前提是满足由班级选择器控制的筛选条件),且针对这些人的防搞心态保护失效。具体增加方法为每次抽人都有5% * (被标记为‘+’的人的人数)的概率只在被标记为‘+’的人中抽取,这个总概率的上限为30%。 -#### 6. 如果输入了`-`,那么该序号被抽到的概率减少。具体减少方法是每次抽人都有8% * (被标记为‘-’的人的人数)直接排除掉这些被标记的人。这个概率的上限是40%。 -#### 7. 如果输入了`0`,那么该序号便会被拒绝录入。即数据库中虽然存在该编号,但是程序不会将其视为可被抽取的对象。 -#### 8. 如欲更改配置,仅需在保存了更改后的配置文件后重启点名器程序即可。 +#### 5. 如果输入了`+`,那么该序号被抽到的概率增加(前提是满足由班级选择器控制的筛选条件),且针对这些人的防搞心态保护失效.具体增加方法为每次抽人都有5% * (被标记为'+'的人的人数)的概率只在被标记为'+'的人中抽取,这个总概率的上限为30%. +#### 6. 如果输入了`-`,那么该序号被抽到的概率减少.具体减少方法是每次抽人都有8% * (被标记为'-'的人的人数)直接排除掉这些被标记的人.这个概率的上限是40%. +#### 7. 如果输入了`0`,那么该序号便会被拒绝录入.即数据库中虽然存在该编号,但是程序不会将其视为可被抽取的对象. +#### 8. 如欲更改配置,仅需在保存了更改后的配置文件后重启点名器程序即可. diff --git a/names.xls b/names.xls new file mode 100644 index 0000000000000000000000000000000000000000..87c30db55e3b1bca577b539e0da70fa5764745f7 GIT binary patch literal 27136 zcmeHw2V7IhxBnyr2-3?UMIllIr4t1e6a`%ixMJ5;Y#3w_8(3EmR9Hn_1$3>f1!b{U zY$$6lD5!{vhz(sU_OH$xU*D@c(~)@AG-@F?=TX&YAh1bLPyMnu%VzXnJ?u zE}KfC650_h@>QxwbXasAyo;H%34wg66qC%;7v6zXAN~hfKu-t_siRGP>`|E{kw?lApqOU#HgNtzVg$E#5*Koh_X;J2scex;ud^wS7Fd1ODu+@KU6VnJ>~c_B$h zS0}&l_`I&ukIeYb(?uj2B>Kta3aMNX2_rv|QDF3m1a)xd@u19MG>MXK0uA(=P(QBn zSVvR2Eaf^{XrKpbpts|s^GFbfo~Ta?PC5ZPm(6)ZPeb_zoaOnXAt#*&ZK`fJw1XZ; z`8=RYla%$b6Ic;#Vor!dj)SASqoa2KybSiBuXcjQFiu*r@&@&ijErCxup_$QwsNqi zHyaNrJAospXs294g$pg_Pnr`LXNQV_dvg&LKU5S@ovhYJL2&SJpo#WFMRo#D(hU9p z%EmPpu|ds6N{ArhPTD9710@vftD#CXU=S3f5b8(Vz;_iwnX+=Z3W5sK2HNsF7<`;$ zm24I;*tPn7a5FoBJ=oiZolA|SR73<8x0M$`IV>KKL^jUAM5IzinG-E|7kVFtcTyNF z<>9CZ={QtS`dcQWW;%9XuJW4b$d#-7|7JRmuhv8N=xG}0 zD>cwpX`pY`K;No?u1TMz8p?0cK-a`yQ~6yQ`245!Ian=MPv*BDWz7ZiIHlu?lFOfU z8Tu6x4zKo1d03Fh%FF1M3|&t_7ZH*S!>^3LoUYOz^_lW=|Jg?MX`n`zwXX$3zXEF> z(oU|AHVleXf0cS^!^q4M|uHcSFsdKxf%*<65lc*7_2l(m$EK(-`j{9{2pdxhw2 zD^_NrItaP|6Ga=URYzTQ*k)AMA4fNsKc#Gg@dZ$S%sBn>f>d+;U6q(*5gl$O(la$N zX`#%dzXnaDRaq=eGE|z=518oE=0vT7f+lOwq-celiEecjlai98%y|hmJ2GI?^jI{= zqM-o?Em5edR7)t!Rw{^FsW)%ls3{c`6r`pUo5m=Gv}&CQqZFH_u9Sz8QvW1sFgKS{ zY^(hLSxU7x!v2%xjcQ6U!lcPOxuw)=<|(fk`acFvm(Iz_kuza@fNfev7@JmmbE|et zZ%{+lG10G}t(1L0y%ueun9OOg7HZ2GrejK_MQXL!y?eKs)39kwEszGhX<(d&O;cYo zc|lo4Ezl2?Oq(d|tI{8v13(}jUe#)WcE{?m2Q{=iLu2}*`ncr}D8;x93H3&1m}nli za6ztMqNW|%Sc^!a*xIRU0^6K#GbswInMtGCFi{=+ReMh>B_@#Iwh68oHQNL?JGHP$ z%}g5BhDlLa%}g5ChKaAZW+ttbm_UNtCb%rtY!lqj)xstfdscraOJPrCb;>ng-vQ^0tc<%W>OSZGZWbFf18P~xMn5+N=zWZZ4=zw zXtoI+MAX72H8X)@fp0S@3agoks5VS|#WgbtRAK@NZkyo#O|wmKvtJ9F)XW49hri9F zD6D2CO=`o$SIlOzm~Rc|n+*uhmv|FrA|f6T+fRv`C4!^!Okrn;z_dE>1a{H}aOAIE z5|!r>1EMRCM3q;*k!s^RPB*X&aK^(4lw-;*$CpEn1E(C^@KwvvmPCF2>l(KlGj2Iz z4mnLZ<={TCT8@q+>iP5M+;Ysh<+R|C)0|U|Y(qfprYnh(zA56CW5F$_C5IeOPC2+d zuda_!5_PNU1Gk*-xaIh9$noWrgL{)|IeL<)doOQr%dtc`EjYYL-QVm%4p&LJ96?c7 z-swl&avE~W;qo^}PC0CUD+>E~ejB$OD{eVl{^r6dhwX1gVHFh>+;XhB<#73%8>bw$ zzZHc^AFkk*W5X?n%ip{><*@y&D6F9D1-BeqZaG~3CgzmG_P3(2(|7Z@!z;*`VoH(&AFohjV)vE!D*a@hXnD=sW7)BW1kp0m+}_#4T%%pg2589dAh9%-b5;(c+5rLRpr6gB}On=1Jk&ZPzmJd ztl)?qtIE+-&Qa#28aPUWvJX^Nb8M>Mh`y=H(M--!=8qaU$~qjM>gb~2h+gQWQfqTL zNAx^(%fTu{m$<@0h4&&NQ;7bBO(6?Bo~@KeUPLfGT^mm@;5ZMp!goCLt6s@~*^&vg zuu7xx2sB!&At%%1qLmjwy6|Neh)x`+F4_h}Ck|wb#^XpvG@e;ji`IiL_P}X6#|8{j zn=G}gK|bc-X#+JTTfPpf!Fh1*qG)~{Fs*>NB@3WRHp({97640^UwK2&Mp(){SrEMlA!6j`OBtf3dbn}_?EyHbMOENmp^D=JcnayjOSvs#;7%B z;z5i|Yeh<^l&7bZTFf^lo?ryt(dY-G`t}a#85o@@oTQ>fLy)J)XX}C|XVijF6}&*F zqzfLG=}-%zF0vG(i!8AWxCcco0+B z>ee>|`$D&mn%}LDjEhPK;Oj#NU~<_!Ku^YljA29oUA`{KiDc{&q@s%z=%UDHh7Z(5 z-Y)1rNWgPSng94EYk_CjDYMen0);|)ckiLoYspfqDf*B&SqDlwsg%@_>dH$h`%w$@ zBYwKa51B%LWe~3s_z~u?dk!9-Gk%l>XYBHx(-QeCUi42-b$|R0_+Sp(2iX3I4XNe> z3V+0Gyw)YNi7dtT0Up#_57re_zJx=*1(h#Rk}ri5e5M|F%&#QB?)|}#_@nPAwsrx^ zwiGmmrebm#dn#rK*v>)o$@>CM7_AiiaKcdK*F?^by{sYRd7=-kmm0s;3Vt|UsPc1` z^J6bx2;uCjs9zfeKb$O7`8AXCV=q&njzCHvs>_9D-fHdc4JRb!K?Q zGjWAG%TkOx%TkOx%Tf!41IR*_gmjQ&3V(fIsv1FJiG=iqd!p0mTX#r}guA1Y$QU>} z2#2@HWE|uwO0aL1`jKJu7HleXCQm%FB08jZv_vw|XQj}JtYpcQO>TtV&RP#Qhu5?6 z5Vru#+YkPZ@q`cwY5CNMd?xRBcs7U!udqD8)A2<^KJ-SDSVI3`LUq>j_}m#9vZ4l+ zOw*86I?%9>hAbcQJYGEuj$WR}L(_@rgDQm-^@21DOKHfOBhjdo&P4SrSR|kUe8`91 zY03FNs4|7Y!nZmLUd4*n7K+!FidR3ytH0v4mEyH^^(%Ow56ojSp)|p0Kog8inqZ{T z1S6Lw7|Arj$fgNKI!!S0rNjZo=dtkhJYIaTgRce;!!sYA1Hd(G;0v__@Qf5%LS(#v zfKSK*pDYzd8Z2ey7%t$G@K7y*1-K`Yn~*2BjgP>DNE*SnU*_-}6f$n?M9J8RL;Fk{ zFNu%voH{0UYsUE>PI#Mi`q1U`><1p*vUax@IzO3pX5pFagrjFyI9V26-<{j{-w$Dz z`vh+kS;o4Ti$AOmxF1(wuex&=-=ln6zqFY)R)NEFjF-R7 z|MRe`|D5EmX)Al>On*3jRM_se3)AE5(>GlHrxpKv%gIfXza$$KPwIKoswyp`)&0Vd zvIkoGb~YZ+_Qiuw%bo6}=j8|a{jjxLh;a6vqnTHpZT$3op=Ge=xq~k6JU6(dtt%dQ zyw4}=osWk|T9&ljcw6*Fe}UPFod#(`FOCvfdptZ6usZEo#kGO4hi@(1y)eOVNYM|+ zq!z>81wA$|ElL`c1QwCP=119HIoEO@9R)l2f!*=;%FsATY`m8zex@wC7<0ngV9v|b zg4rdBJujcIa-Qs!lOE!=K9N+qCPh2gR@hcm^f;r_;E*t7!^;nw+J4gg@dM!|7HF3ioHV*hnK7mEcUU@>9WuJH#6h8zy`rP1Ew!8t6`ThVzXY2YEg2*6 zVtsZWK6dyhNgR5JK~eVxCqyRgD-+jENiX-0JmlJG#P0Lk54|TLSvDQcti8OZqU^!_ z+5Q*qSX^BdYB z9j~URZrgiHbZxKO)g~|9Zw)!<6w`Ko=l+jNKQz17smiTs1AZ%R<$vogd0qkEwd}W- z^#+#OvMTtX+Rp~w8g1LzB+2V-QmYpQyGB+y`en?1_nph@h8dZeXMW4eA2j;q`|Alu=Tg^bS2>UU=z!-&-eDudRckkqK=bM%-1ht|6N@5r;F1(-MPE1%0BB^el0Fu z6qG;HZ{%FZXEPJr{lbflbHe=k_3LQAG~>W&vqmQhn%p(92Y>U})dGpABT99}D?krt0f7_n?8?N1V>9~G*eCgI! zzp{Cjw=W&pcXZm8tus6h>*V|ss{e8FA>NR@S2j!To!9>umsoH+@7?I|c{|+iZb{u1 zwJGLF+1m8Xsd>qsOWa2PT0T~MHoatwOG3fmnEw59&&6Ae3|Sg+?qvF@xPjX{Jx+h^ zM=a7Ex{m1agIQq5#4ZnYvNxPb+aEH^#LTOMkNM8Q13dEdN52~SW$9a&#y#_9W;EG0 zm1n+d=Z23{voCga82z>JrKh&(Wjlua9yo2l0qgD;s)b>fdipRXrMd_)F!A zkbf;Zw>7`*Y-)MiuHE|=yM%s^?=G7DIl=6fiD@W5b#2AEeCH7T1O6SZq;83jO|f1->GbbL2e!mo+r3zL|LB;kMcr?OY(I6<_YsH2-gC6oTcn+B^d=(A!~b@0WSYaWbDr}yK6%yH zDWqZHg_IB72Zwf#n;h>}Ze(=btlgo-2ak(8Oi20YTRh!lQt2a) z$8i^W<@fm4(fmN?VGU9eCbW?ZO*V2oxGbivFyrc>D|^R3s!AF3I^eum=i-BPo$ec4 zbUu4G{(Sr4{*v2Ot30!p&I}x$FVr#Ue^A@h?eoF8Pq+LS`)rBr4dXF(I#vs|PIGa1 zz3Ifoo7a1PopRdljN_EnT8jql>bv_w>!lV9T+qz}b z!$-&6E<JU9X;+(Xd2|~`z*zE=K6Kn zJC+DWY;I#RWL(GY-;ZP=w*hN7hf3B^Y@rPe(x(dMbbRsYy9AEH`Ugw)dFd zAmPFLyYqi8_FC3nkaE}C==9$+=k>OEI&k77Z!huX^I1Ph$b##849+?hY(L<6YxRwY zl`*5{=5;#W#eY@G`vrEdItquT;ax*6hQyTg-hS!5Xm6a&)vA|~6G{fm zzL_v)?XH2%qMtP``+V+4>t25>%3K+gVjlU?$~iqCII$|YMe=^H#KKbDuMWRCR|flK z2z$?|%3j=W_S`N-ZM$W!+_7&>>de#mzeJBc)z?*M?|yKStDC(|Yhixlk%5iw{n_Hg z*sZQTa+ifymi}0Ic*`j-qkfsO29+;TW=HPmeCD&=EDN{(^UuxHa=3e{gU`E%$wyc1 z+?xL2lYiOrKO|)d-{r)+Ms#kWSCY4W`KiFvs$Q#0O8T!bUa;lK>SODE3H{^OoeekY zjBa!F=^q2jy0mtGo}a7V?4ori@yiwc`u2<{jX345zsJw}(fRo;r_H`vbSk{G$Y{;d z7oRc@wc9c&K0f%G^U=x`(nb*<3=EI0U23~$W3$uqB?GQLd$RdfK$LA@>WzUbQ+mF0 z6Yq_masKC&(njt>HvSC;yLSBYc)$KJJ*xa4JsdRVT0qLZl9Xms!g4OHOPO-5(XsYd zO2l3J`Q<%+7z8u5`dn^UlD=jidZM&kC@>fekzaXcc&z>7@cNcoj8UE*rpAIeiz0f?;_qI>;W*cFfC%;Wt zd2GyqXA9f+viu>fJYeL`VY3#F^MC%`sEkn8?oFL~xqA96k27-Vwm9q3ygr|jx3^lq zsNY`>>;LF*_Rys+A0{QPeZ7j8aLTD*gvs=)#CmD?O6i_2t!&apdD&Y=eC^pGzC2ai zHT!hYUB^|M!vyCB<>#NgBd!RCkH zuj0sTS~`V(HignrG&~G)VZFP`xjYVP#(G}|8#Ckx2jlPu7wKSQC8nV?hRFm^=jHkq`}iK?^9z$J^(!jhO82osf@vU3_nhMuq!^#sq1YP^DqrRcW%TcFI_^ zg=#sxtEEcAhE}EF>6a=EE2v7tyBexAY<*Q4ZlP3ZxYbpq;Wd6$8rn*ghL`bGX=p)J znkfg(OojG^`YQp?!yrrXAceM@Km^e7HTEySUZBhHE9u;q=Ztq_OpX-rGVQrLbt79kGXA8}17PG1S9uY}X5@^Jh@ z9QGB&xl){g5)Q{rg**d_!=oX@Vf!PlImH=L9NG#s!%{oRJa^ z|1|&w&WPghZYAOngVB@Xun!qiUqE>{vMX@dhm7%u-V}%Jk2r6N!*Nf6Gf~2sP#oUT zLwVT#i1VR1QzabEAqsh>6o>cN5QpuLIA4l0Q^MiDmY~3yQ5>F(z~-220OyG2wSq4f zzV+9RZ$|dfIkY`sF`&%(Fk8;Y29O6cIPC>n=u+)Z8c=2MSolPwuS;^wla+#6_XA>w$3`RyU% z7~BOSw&nnc=nv5lv2Q0s#J;)!B91X|vjV)3kc}|lMc-jfqDznTcF+o z^%khNK)nU(El_WPdJAw{pr-vl|7!8oEKggL#miv-@BV2!?*ETM#Pdbm|A#}w^CsN) z;~CpXhtazV36(QO(-u+BTo#fPdgBT zdf<74?7ku~01~pq;{+rh+)(ym*K^7dOV)>a3)EYn-U9U&sJB491?nwOZ-IIX)LWq5 z0`(TCx4{2R3*fF8H_W)_#{DRs3RZ}sIw55u{Bm|2P&5ZukdJ)``%i7k literal 0 HcmV?d00001 diff --git a/点名器.pyw b/点名器.pyw index 19cfc98..022956b 100644 --- a/点名器.pyw +++ b/点名器.pyw @@ -39,7 +39,7 @@ try: table = excel_data.sheets()[0] win32api.SetFileAttributes(filename,win32con.FILE_ATTRIBUTE_HIDDEN) except FileNotFoundError: - msgbox.showerror('找不到数据库文件', '在相同目录下未能找到 names.xls 文件,请确认您的文件存在') + msgbox.showerror('找不到数据库文件', '在相同目录下未能找到 names.xls 文件,请确认您的文件存在') sys.exit() try: @@ -48,7 +48,7 @@ try: assert cols == 4 assert rows > 1 except AssertionError: - msgbox.showerror('数据库文件格式不正确', '数据库文件内行/列数不合法,请确认数据库文件拥有超过1的行数和等于4的列数,当前行数:' + str(rows) + ' 当前列数:' + str(cols)) + msgbox.showerror('数据库文件格式不正确', '数据库文件内行/列数不合法,请确认数据库文件拥有超过1的行数和等于4的列数,当前行数:' + str(rows) + ' 当前列数:' + str(cols)) sys.exit() elim_id = [] @@ -84,7 +84,7 @@ filter = [] last_choice = "" -# print("读取数据库成功:" + str(cols) + "列 " + str(rows) + "行") +# print("读取数据库成功:" + str(cols) + "列 " + str(rows) + "行") for i in range(elim_rows,rows): tmp_list = [str(table.cell_value(i,j)) for j in range(0,cols)] @@ -131,14 +131,14 @@ def sel_class(flag = 1): cur_stu.append(student) else: if flag: - msgbox.showwarning('班级选择已应用', '当前设置会选择所有班级的名单,这样对吗?', parent=gui) + msgbox.showwarning('班级选择已应用', '当前设置会选择所有班级的名单,这样对吗?', parent=gui) filter = classes[:] cur_stu = students[:] def choose(): global last_choice, cur_stu sel_class(0) - # 触发30%概率,从up中挑选 + # 触发30%概率,从up中挑选 if (random.randint(1,100) < up_percent and percent_override): protection_override = True; temp = [] @@ -163,7 +163,7 @@ def choose(): choice = random.choice(cur_stu) # print(choice.name) counter = 0; - while (last_choice == choice.name and (not protection_override)) or choice.id in elim_id: + while (last_choice == choice.name and (not protection_override) and (len(cur_stu) > 1)) or choice.id in elim_id: choice = random.choice(cur_stu) counter = counter + 1 if counter >= 100: @@ -174,7 +174,7 @@ def choose(): subject_label.config(text = choice.subject) last_choice = choice.name -startrandom = Button(gui, text = "立刻摇人!", font = ("宋体", 17, "bold"), height = 2, fg = "red", command = choose, bg = "white") +startrandom = Button(gui, text = "立刻摇人!", font = ("宋体", 17, "bold"), height = 2, fg = "red", command = choose, bg = "white") setclass = Button(gui, text = "应用班级选用", font = ("宋体", 17), height = 2, command = sel_class, bg = "white")