更新时间: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 运行结果
【AI设计】北京143期毕业仅36天,全员拿下高薪offer!黑马AI设计连续6期100%高薪就业
2025-09-19【跨境电商运营】深圳跨境电商运营毕业22个工作日,就业率91%+,最高薪资达13500元
2025-09-19【AI运维】郑州运维1期就业班,毕业14个工作日,班级93%同学已拿到Offer, 一线均薪资 1W+
2025-09-19【AI鸿蒙开发】上海校区AI鸿蒙开发4期5期,距离毕业21天,就业率91%,平均薪资14046元
2025-09-19【AI大模型开发-Python】毕业33个工作日,就业率已达到94.55%,班均薪资20763元
2025-09-19【AI智能应用开发-Java】毕业5个工作日就业率98.18%,最高薪资 17.5k*13薪,全班平均薪资9244元
2025-09-19