🏆函数封装可以使我们的代码更加简洁已读,而且方面维护和测试。
接下来我们通过一个员工管理系统的案例代码试一试吧!
完整代码如下
print('-' * 20, '欢迎使用员工管理系统', '-' * 20)
emps = ['孙悟空\t18\t男\t花果山', '猪八戒\t28\t男\t高老庄']
while True:
print('请选择要做的操作:')
print('\t1.查询员工')
print('\t2.添加员工')
print('\t3.删除员工')
print('\t4.退出系统')
user_choose = input('请选择[1-4]:')
print('-' * 62)
if user_choose == '1':
print('\t序号\t姓名\t年龄\t性别\t住址')
n = 1
for emp in emps:
print(f'\t{n}\t{emp}')
n += 1
elif user_choose == '2':
emp_name = input('请输入员工的姓名:')
emp_age = input('请输入员工的年龄:')
emp_gender = input('请输入员工的性别:')
emp_address = input('请输入员工的住址:')
emp = f'{emp_name}\t{emp_age}\t{emp_gender}\t{emp_address}'
print('以下员工将被添加到系统中')
print('-' * 62)
print('姓名\t年龄\t性别\t住址')
print(emp)
print('-' * 62)
user_confirm = input('是否确认该操作[Y/N]:')
if user_confirm == 'Y' or user_confirm == 'y' or user_confirm == 'yes':
emps.append(emp)
print('添加成功!')
else:
print('添加已取消!')
elif user_choose == '3':
del_num = int(input('请输入要删除的员工的序号:'))
if 0 < del_num <= len(emps):
del_i = del_num - 1
print('以下员工将被删除')
print('-' * 62)
print('\t序号\t姓名\t年龄\t性别\t住址')
print(f'\t{del_num}\t{emps[del_i]}')
print('-' * 62)
user_confirm = input('该操作不可恢复,是否确认[Y/N]:')
if user_confirm == 'y' or user_confirm == 'yes':
emps.pop(del_i)
print('员工已被删除!')
else:
print('操作已取消!')
else:
print('您的输入有误,请重新操作!')
elif user_choose == '4':
print('欢迎使用!再见!')
input('点击回车键退出!')
break
else:
print('您的输入有误,请重新选择!')
print('-' * 62)
我们可以把这段代码封装成几个功能:
1、欢迎信息
# 显示系统的欢迎信息
def display_welcome_message():
print('-' * 20, '欢迎使用员工管理系统', '-' * 20)
2、显示用户选项
# 显示用户选项
def display_menu():
print('请选择要做的操作:')
print('\t1.查询员工')
print('\t2.添加员工')
print('\t3.删除员工')
print('\t4.退出系统')
3、查询员工信息
# 查询员工信息
def query_employees(l:list):
# 查询员工
# 打印表头
print('\t序号\t姓名\t年龄\t性别\t住址')
# 创建一个变量,来表示员工的序号
n = 1
# 显示员工信息
for i in l:
print(f'\t{n}\t{i}')
n += 1
4、添加员工信息
# 添加员工信息
def add_employee(l:list):
emp_name = input('请输入员工的姓名:')
emp_age = input('请输入员工的年龄:')
emp_gender = input('请输入员工的性别:')
emp_address = input('请输入员工的住址:')
emp = f'{emp_name}\t{emp_age}\t{emp_gender}\t{emp_address}'
print('以下员工将被添加到系统中')
print('-' * 62)
print('姓名\t年龄\t性别\t住址')
print(emp)
print('-' * 62)
user_confirm = input('是否确认该操作[Y/N]:')
if user_confirm.lower() in ['y', 'yes']:
l.append(emp)
print('添加成功!')
else:
print('添加已取消!')
5、删除员工信息
# 删除员工信息
def delete_employee(l:list):
try:
del_num = int(input('请输入要删除的员工的序号:'))
if 0 < del_num <= len(l):
del_i = del_num - 1
print('以下员工将被删除')
print('-' * 62)
print('\t序号\t姓名\t年龄\t性别\t住址')
print(f'\t{del_num}\t{l[del_i]}')
print('-' * 62)
user_confirm = input('该操作不可恢复,是否确认[Y/N]:')
if user_confirm.lower() in ['y', 'yes']:
l.pop(del_i)
print('员工已被删除!')
else:
print('操作已取消!')
else:
print('您的输入有误,请重新操作!')
except ValueError:
print('请输入有效的序号!')
6、最后就是主函数部分
def main():
display_welcome_message()
emps = ['孙悟空\t18\t男\t花果山', '猪八戒\t28\t男\t高老庄']
while True:
display_menu()
user_choose = input('请选择[1-4]:')
print('-' * 62)
if user_choose == '1':
query_employees(emps)
elif user_choose == '2':
add_employee(emps)
elif user_choose == '3':
delete_employee(emps)
elif user_choose == '4':
print('欢迎使用!再见!')
input('点击回车键退出!')
break
else:
print('您的输入有误,请重新选择!')
print('-' * 62)
🏆要点:
查询员工、添加员工和删除员工的函数均使用了参数如:def f(l:list)
这样不仅指定了参数的类型为列表,还可以在测试不同列表时随时使用函数。
封装后的代码