按以下要求偏写3个函数: 1接收职工的姓名职工号 2按职工号由小到大排序 3输入一个职工号,输出该工号的职工姓名。在主函数中调用这些函数
时间: 2023-06-26 08:10:11 浏览: 65
好的,我来帮你写这些函数。先看看函数1的代码实现:
```python
def input_staff_info():
staff_list = []
while True:
name = input("请输入职工姓名(输入exit退出):")
if name == "exit":
break
id = int(input("请输入职工号:"))
staff_list.append((name, id))
return staff_list
```
这个函数通过一个循环,接收用户输入的职工信息,将姓名和职工号打包成元组,最终返回一个职工信息列表。
接下来是函数2的代码实现:
```python
def sort_staff_info(staff_list):
sorted_list = sorted(staff_list, key=lambda x: x[1])
return sorted_list
```
这个函数接收一个职工信息列表,通过`sorted`方法和`key`参数对职工号进行排序,最终返回排序后的职工信息列表。
最后是函数3的代码实现:
```python
def find_staff_by_id(staff_list, id):
for name, staff_id in staff_list:
if staff_id == id:
return name
return "未找到该职工"
```
这个函数接收一个职工信息列表和一个职工号,通过一个循环遍历职工信息列表,查找与输入的职工号相匹配的职工,并返回其姓名。如果未找到对应的职工,则返回一个提示信息。
最后,在主函数中调用这些函数:
```python
if __name__ == "__main__":
staff_list = input_staff_info()
sorted_list = sort_staff_info(staff_list)
print("按职工号排序后的职工信息:", sorted_list)
id = int(input("请输入要查找的职工号:"))
name = find_staff_by_id(sorted_list, id)
print(f"{id}号职工的姓名是:{name}")
```
主函数中先调用`input_staff_info`函数获取职工信息列表,然后调用`sort_staff_info`函数对其按职工号排序,并打印出排序后的职工信息列表。接着调用`find_staff_by_id`函数输入要查找的职工号,并打印出对应的职工姓名。