Python实现随机分配教师办公与好友管理系统
需积分: 1 141 浏览量
更新于2024-08-03
收藏 397KB DOCX 举报
在本次Python编程实验中,涉及到了两个核心任务:随机分配办公室和创建一个简易的好友管理系统。这两个任务都展示了Python语言在实际问题中的应用。
**任务一:随机分配办公室**
在这个任务中,主要目标是利用Python的随机模块`random`实现8名教师的随机分配到3个空闲办公室。首先,通过列表的嵌套结构来模拟学校和办公室的关系,将学校视为外层列表,每个办公室作为内层列表的元素。这样做的好处是可以动态管理办公室数量,因为办公室的数量是可变的。
- **知识点**:
- 列表嵌套:使用嵌套列表来表示学校和办公室的层次关系,索引1-3对应三个空闲办公室。
- 随机选择:`random.randint(0, 2)`用于生成0到2(含)之间的随机整数,代表办公室的索引,实现教师的随机分配。
- 遍历与插入:遍历教师列表,对每个教师,使用随机数决定其分配到哪个办公室,并插入到对应的内层列表。
代码示例可能包括以下部分:
```python
import random
# 假设教师列表
teachers = ['张老师', '刘老师', '王老师', '赵老师', '李老师', '高老师', '周老师', '吴老师']
# 存储空闲办公室的列表
offices = [[] for _ in range(3)]
# 随机分配教师
for teacher in teachers:
office_index = random.randint(0, 2)
offices[office_index].append(teacher)
# 打印结果
for i, office in enumerate(offices):
print(f"办公室{i+1}的人数为:{len(office)}")
print(*office, sep='\n')
```
**任务二:好友管理系统**
此任务模拟了一个基础的社交软件好友管理系统,主要功能包括添加好友、删除好友、备注好友和显示好友。用户可以通过输入序号选择相应的操作。
- **知识点**:
- 用户交互:通过循环和输入提示,实现用户与程序的交互。
- 字典或列表:可以使用字典存储好友信息,键为好友姓名,值包含相关信息,方便后续操作。
- 功能实现:
- 添加好友:接收用户输入的姓名并添加到字典或列表中。
- 删除好友:查找并移除指定好友。
- 备注好友:更新字典或列表中好友的备注信息。
- 显示好友:遍历好友列表或字典,显示所有好友及其相关信息。
代码示例可能包括:
```python
# 假设初始的好友字典
friends = {}
# 添加好友
def add_friend():
name = input("请输入要添加的好友:")
friends[name] = {'备注': '默认'}
print("好友添加成功")
# 删除好友
def remove_friend():
name = input("请输入删除好友姓名:")
if name in friends:
del friends[name]
print("删除成功")
else:
print("好友不存在")
# 其他功能实现同理
# 主循环,接收用户输入并调用相应函数
while True:
user_input = int(input("请输入您的选项:"))
if user_input == 1: # 添加好友
add_friend()
elif user_input == 2: # 删除好友
remove_friend()
# ...其他功能
```
这两个任务都展示了Python如何处理动态数据结构(如列表嵌套)以及如何通过编程实现简单的交互式应用程序,包括随机性和用户输入处理。熟练掌握这些概念和技巧,能够帮助你更好地理解和应用Python编程在实际项目中。
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
1010_python全栈成长师
- 粉丝: 118
- 资源: 14
最新资源
- JHU荣誉单变量微积分课程教案介绍
- Naruto爱好者必备CLI测试应用
- Android应用显示Ignaz-Taschner-Gymnasium取消课程概览
- ASP学生信息档案管理系统毕业设计及完整源码
- Java商城源码解析:酒店管理系统快速开发指南
- 构建可解析文本框:.NET 3.5中实现文本解析与验证
- Java语言打造任天堂红白机模拟器—nes4j解析
- 基于Hadoop和Hive的网络流量分析工具介绍
- Unity实现帝国象棋:从游戏到复刻
- WordPress文档嵌入插件:无需浏览器插件即可上传和显示文档
- Android开源项目精选:优秀项目篇
- 黑色设计商务酷站模板 - 网站构建新选择
- Rollup插件去除JS文件横幅:横扫许可证头
- AngularDart中Hammock服务的使用与REST API集成
- 开源AVR编程器:高效、低成本的微控制器编程解决方案
- Anya Keller 图片组合的开发部署记录