對班級小組分組情況的統計(助教可能會需要)

2021-10-04 11:24:01 字數 3020 閱讀 9880

思路:很簡單。首先從學生名單excel檔案中將所有同學的姓名和學號讀取到dict字典中,並建立學生狀態dict字典,其用於儲存學生是處於否分組狀態。然後逐行讀取小組分組excel檔案,對學生狀態dict字典進行設定。

import re

import xlrd

##################### 班級名單讀取 #####################

all_stud=xlrd.open_workbook(r'計算機視覺選課名單.xls'

)all_stud_sheet1 = all_stud.sheets()[

0]num_to_name =

dict()

# 學號轉換為姓名

stud_state =

dict()

# 學生分組狀況

for i in

range

(all_stud_sheet1.nrows)

: tmp =

str(all_stud_sheet1.cell(i,1)

.value)

if(re.match(r'\d'

, tmp)

!=none):

name =

str(all_stud_sheet1.cell(i,2)

.value)

num = tmp

num_to_name[num]

= name

stud_state[num]=0

assert

(len

(num_to_name)

==len

(stud_state)

)##################### 小組分組情況統計 #####################

group_excel=xlrd.open_workbook(r'小組分組 - 詳細版.xlsx'

)group_sheet1 = group_excel.sheets()[

0]not_in_class =

repeat_join =

joined_num =

0group_num =

0for i in

range

(group_sheet1.nrows)

:# 遍歷每個小組成員

if(i ==0)

:continue

; tmp1 =

str(group_sheet1.cell(i,1)

.value)

tmp2 =

str(group_sheet1.cell(i,2)

.value)

if(tmp1 ==

""and tmp2 =="")

:continue

nam = tmp1

num = tmp2

group_num +=1if

(num ==

""or nam ==

""or num not

in stud_state.keys())

:# 不在班級裡的人

[num, nam]

)elif

(stud_state[num]!=0

):# 重複加入小組的人

[num, nam]

)else

:# 未加入的人

stud_state[num]=1

joined_num +=

1not_joined_num =

0not_joined =

for num in stud_state.keys():

if(stud_state[num]==0

):not_joined_num +=

1[num, num_to_name[num]])

assert

(len

(stud_state)

== joined_num + not_joined_num)

print

("##################### 班級名單中的情況 #####################"

)print()

print

("班級總人數:"

+str

(len

(stud_state)))

print

("班級中,已分組人數:"

+str

(joined_num)

)print

("班級中,未分組人數:"

+str

(not_joined_num)

)print()

print

("未參與分組的人如下:"

)for mem in not_joined:

print

(mem)

print()

print

("##################### 小組分組的情況 #####################"

)print()

print

("參與分組總人數:"

+str

(group_num)

)print

("在班級中的人數:"

+str

(joined_num)

)print

("不在班級中的人數:"

+str

(len

(not_in_class)))

print()

print

("不在班級中的人如下:"

)for mem in not_in_class:

print

(mem)

print()

print

("重複分組的人數:"

+str

(len

(repeat_join)))

print()

print

("重複分組的人如下:"

)for mem in repeat_join:

print

(mem)

按小組分配工作的模式

公司目前分配工作,都是分配到個人,這個星期做什麼,如何如何。這種模式我認為存在部分問題 1 對每個人的評估未必準確。分配工作的時候,領導首先必然要先了解每個人的情況,按照個人的技術水平 對專案的了解程度等進行合適的工作分配。但是對於乙個員工評估這個作為分配工作的先決條件未必能保持準確,就算是老員工,...

對每個小組的意見

1.微食堂 應當是實物的拍下來的,讓同學們能夠更加直觀的看菜式 希望能夠記錄使用者的使用習慣,在介面的菜式順序上有所體現,也可以根據其歷史記錄,給他搭配更加合理的菜式,進行推薦 做這個是為了緩解吃飯排隊的壓力,但是如果大家都使用這個,將無法解決問題,是否可以和課表結合,周一到周五只能上午3.4節,下...

對小組NABCD的分析

n need 英語學習是當代學生無法避免的,而單詞也是英語學習最基本的部分。然而不得不承認有些人對英語學習要麼沒天賦,要麼懶得學,甚至傳統的書本學習太枯燥無味,當代人習慣於用方便的方式解決一切問題。因此推出一款背單詞軟體,通過簡單的方式實現對單詞的記憶。英語作為當代學生都要學習的第二語言,無論天賦好...