当前位置:   article > 正文

Python之分配办公室_python编写程序,6名教师,随机分配到三个办公室,输出办公室教师姓名和人数

python编写程序,6名教师,随机分配到三个办公室,输出办公室教师姓名和人数

分配办公室

有三间办公室,六位老师,随机给六位老师分配随机的办公室,办公室可以为空置

解题思路

1.先确定每个办公室分配的人数
2.根据随机得到的分配人数,划分为三种分配类型:一间的,两间的,三间的
3.给老师与办公室分别编号,利用集合无序性达到随机
4.将集合转换为列表,方便取值
5.根据每个办公室分配的人数决定每个办公室取教师列表的长度

import random

classN = random.randint(1, 6)  # 办公室分配的人数
print(classN)
setT = {'a', 'b', 'c', 'd', 'e', 'f'}  # 教师编号集合
listT = list(setT)  # 将教师集合转换为教师列表
setC = {'A', 'B', 'C'}  # 办公室集合
listC = list(setC)
if 1 <= classN < 6:
    classNf = 6 - classN  # 第二办公室与第三办公室人数之和
    tech1 = [listT[i] for i in range(classN)]  # 第一间办公室的老师人员
    tech2 = [listT[i] for i in range(classNf)]  # 第二间办公室的老师人员
    print(f'第一间办公室人数:{classN},老师是:{tech1}.办公室是:{listC[0]}')
    print(f'第二间办公室人数为:{classNf},老师是:{tech2},办公室是:{listC[1]}')
    if 6-classN - classNf > 0:
        ran = 6 - classN - classNf
        tech3 = [listT[i] for i in range(ran)]  # 第三间办公室的老师人员
        print(f'第三间办公室的人数为:{ran},老师是:{tech3},办公室是:{listC[2]}')
else:
    print(f'第一间办公室人数:{classN},老师是:{listT},办公室是{listC[0]}')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
#方法二
import random
offs=[[],[],[]]
names=['a','b','c','d','e','f']
for i in names:
	index=random.randint(0,2)
	offs[index].append(i)
of=1
for i in offs:
	print(f"办公室 {of} 分配的人数 {len(i)},分别是 {','.join(i)}")
	of+=1
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
#方法三
import random
names=['a','b','c','d','e','f']
for i in names:
	print(f'{i} 在办公室{random.choice([1,2,3])}')
  • 1
  • 2
  • 3
  • 4
  • 5

random取整数
random的范围是左闭右开 randint是左闭右闭(没有步长参数) randrange是左闭右开(可以取步长)



  • 我的生命与灵魂,是死水一样的寂静,直到有一人说她在我眼中看见了星空,或许她不知道,我的眼中只有夜幕,而她是闪亮了的所有
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/煮酒与君饮/article/detail/938234
推荐阅读
相关标签
  

闽ICP备14008679号