更新時(shí)間:2022-07-12 來(lái)源:黑馬程序員 瀏覽量:
已知某學(xué)校有3個(gè)辦公室和8名教師,請(qǐng)編寫(xiě)一個(gè)程序,完成教師和辦公室的隨機(jī)分配。
要完成以上要求,可以按照以下步驟來(lái)設(shè)計(jì)程序:
(1)定義一個(gè)包含3個(gè)空列表的列表offices,該列表中每個(gè)空列表代表空辦公室,下標(biāo)代表辦公室的編號(hào);
(2)定義一個(gè)列表names,該列表中存儲(chǔ)8位教師的姓名;
(3)遍歷names取出每個(gè)教師的姓名,之后再隨機(jī)選取一個(gè)代表辦公室的空列表,將教師姓名添加到里面。
(4)輸出每個(gè)辦公室列表的信息。
接下來(lái),按照上述要求編寫(xiě)程序?qū)崿F(xiàn)案例,代碼如例5-13所示。
例5-13 分配老師到辦公室
import random # 定義一個(gè)列表用來(lái)保存3個(gè)辦公室 offices = [[], [], []] # 定義一個(gè)列表用來(lái)存儲(chǔ)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)入了提供隨機(jī)數(shù)操作的模塊random,第3行定義了一個(gè)列表offices,其內(nèi)部存放了3個(gè)表示辦公室的空列表,表明此時(shí)還沒(méi)有分配老師,第5行定義了一個(gè)保存了所有老師名字的列表names,第6~8行代碼遍歷names列表,調(diào)用random.randint函數(shù)獲取了一個(gè)隨機(jī)索引,并且將拿到的姓名添加到隨機(jī)列表中;第9~15行使用嵌套的for循環(huán)輸出了每個(gè)辦公室的人數(shù)分配情況。
由于辦公室和老師都是隨機(jī)分配的,因此,程序的輸出結(jié)果每次都會(huì)不一樣,圖5-14是其中的一種分配方式。
圖5-14 運(yùn)行結(jié)果