更新时间:2022-07-12 来源:黑马程序员 浏览量:
已知某学校有3个办公室和8名教师,请编写一个程序,完成教师和办公室的随机分配。
要完成以上要求,可以按照以下步骤来设计程序:
(1)定义一个包含3个空列表的列表offices,该列表中每个空列表代表空办公室,下标代表办公室的编号;
(2)定义一个列表names,该列表中存储8位教师的姓名;
(3)遍历names取出每个教师的姓名,之后再随机选取一个代表办公室的空列表,将教师姓名添加到里面。
(4)输出每个办公室列表的信息。
接下来,按照上述要求编写程序实现案例,代码如例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的人数为:%d'%(i, len(temp))) i += 1 for name in temp: print("%s"%name, end='') print("-" *20)
在例5-13中,第1行导入了提供随机数操作的模块random,第3行定义了一个列表offices,其内部存放了3个表示办公室的空列表,表明此时还没有分配老师,第5行定义了一个保存了所有老师名字的列表names,第6~8行代码遍历names列表,调用random.randint函数获取了一个随机索引,并且将拿到的姓名添加到随机列表中;第9~15行使用嵌套的for循环输出了每个办公室的人数分配情况。
由于办公室和老师都是随机分配的,因此,程序的输出结果每次都会不一样,图5-14是其中的一种分配方式。
图5-14 运行结果