產品協同設計第二組

隨機分組介面成品 << Previous Next >> ungit使用手冊

分組程式修正

在利用亂數分組, 能否根據已經完成的主程式, 編寫一個網際程式或單機 PyQt5 程式, 讀進相關資料檔案後, 在瀏覽器或 PYQt5 程式中顯示出結果.

import random
filename = 'cdbw3_student_list.txt'
# 每組人數
num_in_one_group = 11
# 組序由 1 開始
group = 1
# 各班分組後所得數列
c2019 = []
with open(filename) as f:
    # 讀進全部檔案, 轉進數列, 並同時將各行的 \n 去除
    read_data = f.read().splitlines() 
print("共有 " + str(len(read_data)) + " 位學員")
# 利用 shuffle 將數列隨機弄亂
random.shuffle(read_data)
for i in range(len(read_data)):
    # 利用整數相除的餘數進行分組
    if i%num_in_one_group == 0:
        # 列出分隔符號
        print("-"*20)
        print("group " + str(group) +":")
        # 在分組區隔時重置各組學員數列
        group_list = []
        print()
        # 同時列出與分隔標註對應 i 的數列內容
        print(read_data[i])
        group_list.append(read_data[i])
        group = group + 1
    else:
        # 逐一列出同組的其他學員
        print(read_data[i])
        group_list.append(read_data[i])
    if i%num_in_one_group == 0:
        c2019.append(group_list)
# c2019 為該班分組後所得分組數列
print(c2019)

原始程式只有將檔案cdbw3_student_list.txt讀進Python程式中做亂數分組

import random
filename = 'cdbw3_student_list.txt'
# 每組人數
num_in_one_group = 8
# 組序由 1 開始
group = 1
# 各班分組後所得數列
c2019 = []
with open(filename) as f:
    # 讀進全部檔案, 轉進數列, 並同時將各行的 \n 去除
    read_data = f.read().splitlines() 
print("共有 " + str(len(read_data)) + " 位學員")
# 利用 shuffle 將數列隨機弄亂
random.shuffle(read_data)
for i in range(len(read_data)):
    # 利用整數相除的餘數進行分組
    if i%num_in_one_group == 0:
        # 列出分隔符號
        print("-"*20)
        print("group " + str(group) +":")
        # 在分組區隔時重置各組學員數列
        group_list = []
        print()
        # 同時列出與分隔標註對應 i 的數列內容
        group_list.append(read_data[i])
        group = group + 1
        print("Leader:"+read_data[i])
    else:
        print("Member:"+read_data[i])
    if i%num_in_one_group == 0:
        c2019.append(group_list)
# c2019 為該班分組後所得分組數列

print("Group_leader"+str(c2019))



在i 迴圈當中加入if i %num_in_one_group == 0: 檢驗i除上組員數量是否=0

假設等於0    (整除無餘數)

print("Leder:"+read_data[i])組長應是第一位選出來(read_data[i])

假設不等於0    (無整除)

else:其他的人為組員("Member:"+read_data[i])

結果如下

最下方為各組組長的顯示結果


隨機分組介面成品 << Previous Next >> ungit使用手冊