需求:为8位老师随机分配办公室

#先定义一个列表用来存储8位老师的姓名
teachers = ['xiaowang', 'xiaoli', 'xiangming', 'xiaohua', 'xiaogang', 'lili', 'huyu', 'wuyu'] #定义一个空嵌套列表,里面有三个空列表用来等待其他老师的加入
office = [[],[],[]] #为8位老师随机分配办公室:产生随机数的方式
for teacher in teachers:
  index = random.randint(0,2)
  office[index].append(teacher)
  # print(office) #将每个办公室里的老师打印出来,并显示办公室编号
i = 1
for room in office:
  #print(room)
  print("办公室%d里的老师为"%i)
  for name in room:
    print(name)   print("-"*10)
  i+=1

效果如下:

扩展:怎样保证每个办公室至少有两个人?

import random
#先定义一个列表用来存储8位老师的姓名
teachers = ['xiaowang', 'xiaoli', 'xiangming', 'xiaohua', 'xiaogang', 'lili', 'huyu', 'wuyu'] #定义一个空嵌套列表,里面有三个空列表用来等待其他老师的加入
office = [[],[],[]] #获取空列表的长度,也就是办公室的个数
listLength = len(office) #先为三个办公室中的每个随机分配两个老师
for room in range(0,listLength):
i = 0
while i<2: #为每个办公室随机分配两位老师
  length = len(teachers)-1
  teacherIndex = random.randint(0,length) #产生0~7之间的随机数
  teacher = teachers[teacherIndex] #随机选择一个老师
  office[room].append(teacher) #将被选中的老师添加到办公室号为room的办公室中   del teachers[teacherIndex] #将已经被选中的老师从列表中删除
  i+=1 #将剩下的两位老师随机分配到三个办公室,这两位可能会被分配到同一个办公室
for j in range(0,2):
  index = random.randint(0,2)
  rest_teacher = teachers[j]
  office[index].append(rest_teacher)   j+=1 #将每个办公室里的老师打印出来,并显示办公室编号
k = 1
for roomNum in office:
  print("办公室%d里的老师为:"%k)
  for name in roomNum:
    print(name)   print("-"*10)
  k+=1

效果如下:

Python基础听课笔记的更多相关文章

  1. 0003.5-20180422-自动化第四章-python基础学习笔记--脚本

    0003.5-20180422-自动化第四章-python基础学习笔记--脚本 1-shopping """ v = [ {"name": " ...

  2. python基础教程笔记—即时标记(详解)

    最近一直在学习python,语法部分差不多看完了,想写一写python基础教程后面的第一个项目.因为我在网上看到的别人的博客讲解都并不是特别详细,仅仅是贴一下代码,书上内容照搬一下,对于当时刚学习py ...

  3. python 基础学习笔记(1)

    声明:  本人是在校学生,自学python,也是刚刚开始学习,写博客纯属为了让自己整理知识点和关键内容,当然也希望可以通过我都博客来提醒一些零基础学习python的人们.若有什么不对,请大家及时指出, ...

  4. Python基础学习笔记(十三)异常

    参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-exceptions.html Python用异常对象(excep ...

  5. Python基础学习笔记(十二)文件I/O

    参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-files-io.html ▶ 键盘输入 注意raw_input函 ...

  6. Python基础学习笔记(十一)函数、模块与包

    参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-functions.html 3. http://www.liao ...

  7. Python基础学习笔记(十)日期Calendar和时间Timer

    参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-date-time.html 3. http://www.liao ...

  8. Python基础学习笔记(九)常用数据类型转换函数

    参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-variable-types.html 3. http://www ...

  9. Python基础学习笔记(八)常用字典内置函数和方法

    参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-dictionary.html 3. http://www.lia ...

随机推荐

  1. 学习总结javascript和ajax,php,和css

    1,javascript 1,js可以获取和修改html的属性和内容: 通过什么获取? window.onload=function{ document.getElementById("xx ...

  2. 20175204 张湲祯 2018-2019-2《Java程序设计》 第一周学习总结

    20175204 张湲祯 2018-2019-2<Java程序设计>第一周学习总结 教材学习内容总结 -第一章Java入门要点: -Java的地位:具有面向对象,与平台无关,安全稳定和多线 ...

  3. python 进程、线程与协程的区别

    进程.线程与协程区别总结 - 1.进程是计算器最小资源分配单位 - 2.线程是CPU调度的最小单位 - 3.进程切换需要的资源很最大,效率很低 - 4.线程切换需要的资源一般,效率一般(当然了在不考虑 ...

  4. 根据SQL_ID查询并杀会话

    Oracle 根据SQL_ID查询并杀会话,清空执行计划缓冲池2018年09月06日 10:31:40 小学生汤米 阅读数:4731. 查询最近五分钟内最高频次SQL,查看event select t ...

  5. word 内容控件属性编辑

    场景: 别人发给自己一份word模板,基于统一性,里面包含了很多“内容控件”,一般情况下,只需要根据内容控件进行编辑即可,但如果想对内容控件本身做编辑操作,例如删除等. 操作: 单击 文件>选项 ...

  6. HttpClient当HTTP连接的时候出现大量CLOSE_WAIT连接(转)

    ESTABLISHED 表示正在进行网络连接的数量 TIME_WAIT 表示表示等待系统主动关闭网络连接的数量 CLOSE_WAIT 表示被动等待程序关闭的网络连接数量 上篇文章给出了解决TIME_W ...

  7. [原创]基于Zynq AXI-Bram Standalone & Linux 例程

    基于Zynq AXI-Bram Standalone & Linux 例程 待添加完善中

  8. Spring Boot+CXF搭建WebService(转)

    概述 最近项目用到在Spring boot下搭建WebService服务,对Java语言下的WebService了解甚少,而今抽个时间查阅资料整理下Spring Boot结合CXF打架WebServi ...

  9. 如何在cocos中为节点添加监听事件

    一般在监听键盘事件时,可是采用以下方式来监听键盘事件: 以及记得定义取消监听的函数(这个摧毁函数会自己调用吗?): 同时这里还有一种传统的监听方式: 但是cocos官方的文档建议我们不要使用这种方式, ...

  10. sklearn数据库-【老鱼学sklearn】

    在做机器学习时需要有数据进行训练,幸好sklearn提供了很多已经标注好的数据集供我们进行训练. 本节就来看看sklearn提供了哪些可供训练的数据集. 这些数据位于datasets中,网址为:htt ...