更新時間:2022-07-12 來源:黑馬程序員 瀏覽量:
已知某學(xué)校有3個辦公室和8名教師,請編寫一個程序,完成教師和辦公室的隨機分配。
要完成以上要求,可以按照以下步驟來設(shè)計程序:
(1)定義一個包含3個空列表的列表offices,該列表中每個空列表代表空辦公室,下標代表辦公室的編號;
(2)定義一個列表names,該列表中存儲8位教師的姓名;
(3)遍歷names取出每個教師的姓名,之后再隨機選取一個代表辦公室的空列表,將教師姓名添加到里面。
(4)輸出每個辦公室列表的信息。
接下來,按照上述要求編寫程序?qū)崿F(xiàn)案例,代碼如例5-13所示。
例5-13 分配老師到辦公室
import random # 定義一個列表用來保存3個辦公室 offices = [[], [], []] # 定義一個列表用來存儲8位老師的名字 names = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'] for name in names: index = random.randint(0, 2) offices[index].append(name) i = 1 for temp in offices: print('辦公室%d的人數(shù)為:%d'%(i, len(temp))) i += 1 for name in temp: print("%s"%name, end='') print("-" *20)
在例5-13中,第1行導(dǎo)入了提供隨機數(shù)操作的模塊random,第3行定義了一個列表offices,其內(nèi)部存放了3個表示辦公室的空列表,表明此時還沒有分配老師,第5行定義了一個保存了所有老師名字的列表names,第6~8行代碼遍歷names列表,調(diào)用random.randint函數(shù)獲取了一個隨機索引,并且將拿到的姓名添加到隨機列表中;第9~15行使用嵌套的for循環(huán)輸出了每個辦公室的人數(shù)分配情況。
由于辦公室和老師都是隨機分配的,因此,程序的輸出結(jié)果每次都會不一樣,圖5-14是其中的一種分配方式。
圖5-14 運行結(jié)果