4.使用列表类型随机分配办公室。使用列表创建8个老师对象和3个办公室对象,使用random库为老师随机分配办公室,最后格式化输出各个办公室的人数和对应的老师。
时间: 2024-10-23 13:15:16 浏览: 11
在Python中,你可以按照以下步骤使用列表和random库来随机分配老师到办公室:
1. 首先,你需要定义老师和办公室类。假设它们都有一个名字属性,例如`Teacher(name)`和`Office(name, capacity)`。
```python
class Teacher:
def __init__(self, name):
self.name = name
class Office:
def __init__(self, name, capacity):
self.name = name
self.teachers = []
self.capacity = capacity
```
2. 创建老师和办公室的对象实例,并存储在一个列表中。
```python
teachers = [Teacher(f'Teacher {i+1}') for i in range(8)]
offices = [Office('Office A', 5), Office('Office B', 6), Office('Office C', 7)]
```
3. 使用`random.shuffle()`函数打乱老师的列表,然后遍历老师和办公室,将随机选择的老师分配给办公室,直到办公室满员。
```python
import random
# 打乱老师列表
random.shuffle(teachers)
for teacher in teachers:
# 从剩余的空闲办公室中选择一个
available_office = next((o for o in offices if len(o.teachers) < o.capacity), None)
if available_office:
available_office.teachers.append(teacher)
print(f"{available_office.name} 分配了老师 {teacher.name}")
```
4. 最后,格式化输出每个办公室的人数及其教师。
```python
def format_output(offices):
for office in offices:
print(f"办公室 {office.name}: 老师人数 {len(office.teachers)}")
format_output(offices)
```
阅读全文