1.30
使用Python函数编写通讯录系统
?
学前疑问
不知大家是否还记得,前面我们有写过一个通讯录小程序,那个小程序是没有用函数写的。现在,我们已经学了函数了,再写一个类似功能的小程序,是否更简洁呢?
1
(1)查看通讯录系统最终效果
(2)需求分析
需求:进入系统显示系统功能界面,功能如下:
① 添加学员信息
② 删除学员信息
③ 修改学员信息
④ 查询学员信息
⑤ 遍历所有学员信息
⑥ 退出系统
系统共6个功能,用户根据自己需求选取
(3)功能实现步骤
① 显示功能界面
② 用户输入功能序号
③ 根据用户输入的功能序号,执行不同的功能(函数)
☆ 定义函数
☆ 调用函数
(4)模块化的编程思想
模块化的编程思想是最早期的编程思想,其强调把一个系统分解为若干个功能,每个功能就是一个模块(函数)。当所有功能开发完毕后,则系统就完成了。
(5)使用Python开发通讯录管理系统
② 提示用户输入要操作的功能编号
③ 根据用户输入的序号执行相关功能 => if...elif...else
④ 如何让程序一直执行下去,而不是选择某个功能后,程序就退出了 => while True
⑤ 根据用户输入的序号,完成系统中的每一个功能
所有功能都有使用前提:必须共享一套数据 => info = [{}, {}, {}]
☆ 学员信息添加功能(add_student())
(6)总代码
# 1、封装一个menu函数,专门用于打印选择界面菜单def menu(): print('-' * 40) print('学生管理系统V1.0') print('[1] 添加学员信息') print('[2] 删除学员信息') print('[3] 修改学员信息') print('[4] 查询学员信息') print('[5] 遍历所有学员信息') print('[0] 退出系统') print('-' * 40)# 6、定义一个全局变量info = []# 7、定义del_student方法,用于删除学员信息def del_student(): # 提示用户输入要删除学员的信息 name = input('请输入您要删除学员的姓名:') # 判断name是否存在于info中的字典里[{'name':ooaac}, {}, {}] for i in info: if i['name'] == name: info.remove(i) print('学员信息删除成功') break else: print('暂未查询到您要删除的学员信息')# 8、定义modify_student方法,用于修改学员信息def modify_student(): # 提示用户输入要修改学员的信息 name = input('请输入您要修改学员的姓名:') for i in info: if i['name'] == name: i['name'] = input('请输入修改后的姓名:') i['age'] = input('请输入修改后的年龄:') i['mobile'] = input('请输入修改后的电话:') print('学员信息修改成功') print(info) break else: print('暂未查询到您要修改的学员信息')# 9、定义show_student方法,用于查询某个学员信息def show_student(): # 提示用户输入要修改学员的信息 name = input('请输入您要查询学员的姓名:') # 循环遍历,判断name是否存在 for i in info: if i['name'] == name: print(f'学员姓名:{i["name"]}, 学员年龄:{i["age"]}, 学员电话:{i["mobile"]}') break else: print('暂未查询到您要查询的学员信息')# 10、定义show_all方法,用于遍历所有学员信息def show_all(): # 直接对info进行遍历操作 for i in info: print(f'学员姓名:{i["name"]}, 学员年龄:{i["age"]}, 学员电话:{i["mobile"]}')# 5、定义add_student方法,用于添加学员信息def add_student(): # 定义一个空字典,接收name、age、mobile info_dict = {} # 提示用户输入学员信息name、age、moblie info_dict['name'] = input('请输入学员姓名:') info_dict['age'] = int(input('请输入学员年龄:')) info_dict['mobile'] = input('请输入学员电话:') # 声明全局变量info global info #追加数据到info列表中 info.append(info_dict) print('学员信息添加成功') print(info)# 4、编写死循环,让程序可以一直运行下去while True: menu() # 2、使用input方法接收用户的输入信息 user_num = int(input('请输入您要操作的功能序号:')) # 3、使用if多分支条件实现不同的功能 if user_num == 1: # 添加学员信息 add_student() if user_num == 2: # 删除学员信息 del_student() elif user_num == 3: # 修改学员信息 modify_student() elif user_num == 4: # 查询学员信息 show_student() elif user_num == 5: # 遍历所有学员信息 show_all() elif user_num == 0: # 退出系统 print('感谢您使用学生管理系统,再见') breakelse: print('信息输入错误,请重新输入...')
# 1、封装一个menu函数,专门用于打印选择界面菜单
def menu():
print('-' * 40)
print('学生管理系统V1.0')
print('[1] 添加学员信息')
print('[2] 删除学员信息')
print('[3] 修改学员信息')
print('[4] 查询学员信息')
print('[5] 遍历所有学员信息')
print('[0] 退出系统')
# 6、定义一个全局变量
info = []
# 7、定义del_student方法,用于删除学员信息
def del_student():
# 提示用户输入要删除学员的信息
name = input('请输入您要删除学员的姓名:')
# 判断name是否存在于info中的字典里[{'name':ooaac}, {}, {}]
for i in info:
if i['name'] == name:
info.remove(i)
print('学员信息删除成功')
break
else:
print('暂未查询到您要删除的学员信息')
# 8、定义modify_student方法,用于修改学员信息
def modify_student():
# 提示用户输入要修改学员的信息
name = input('请输入您要修改学员的姓名:')
i['name'] = input('请输入修改后的姓名:')
i['age'] = input('请输入修改后的年龄:')
i['mobile'] = input('请输入修改后的电话:')
print('学员信息修改成功')
print(info)
print('暂未查询到您要修改的学员信息')
# 9、定义show_student方法,用于查询某个学员信息
def show_student():
name = input('请输入您要查询学员的姓名:')
# 循环遍历,判断name是否存在
print(f'学员姓名:{i["name"]}, 学员年龄:{i["age"]}, 学员电话:{i["mobile"]}')
print('暂未查询到您要查询的学员信息')
# 10、定义show_all方法,用于遍历所有学员信息
def show_all():
# 直接对info进行遍历操作
# 5、定义add_student方法,用于添加学员信息
def add_student():
# 定义一个空字典,接收name、age、mobile
info_dict = {}
# 提示用户输入学员信息name、age、moblie
info_dict['name'] = input('请输入学员姓名:')
info_dict['age'] = int(input('请输入学员年龄:'))
info_dict['mobile'] = input('请输入学员电话:')
# 声明全局变量info
global info
#追加数据到info列表中
info.append(info_dict)
print('学员信息添加成功')
# 4、编写死循环,让程序可以一直运行下去
while True:
menu()
# 2、使用input方法接收用户的输入信息
user_num = int(input('请输入您要操作的功能序号:'))
# 3、使用if多分支条件实现不同的功能
if user_num == 1:
# 添加学员信息
add_student()
if user_num == 2:
# 删除学员信息
del_student()
elif user_num == 3:
# 修改学员信息
modify_student()
elif user_num == 4:
# 查询学员信息
show_student()
elif user_num == 5:
# 遍历所有学员信息
show_all()
elif user_num == 0:
# 退出系统
print('感谢您使用学生管理系统,再见')
print('信息输入错误,请重新输入...')
今日学习完毕,课后作业:
大家可以根据上面的小程序,利用前面所学的东西,继续优化改进。希望大家能通过这些自制小程序,对python越来越喜欢。明天开始,我们继续学习python知识。