最近与一高校合作开发课程,要求讲课方式要更符合现在学生的思路,提高学生学习兴趣。从传统教学的以点推点,进化到以面及点的方法,通过实际案例的思想推动理解需要掌握的知识点,更早的培养学生理解企业项目。
准备的第一个基础案例为今天的主题:Python语言实现手机通讯录管理系统。主要输出与互动通过控制台展示。
需求:
完成简易手机通讯录管理系统,包括以下功能:
- 能够循环接收客户端输入的功能编号,并根据编号选择对应的功能操作
- 用户输入“1”时,执行增加姓名和手机号码的操作
- 用户输入“2”时,执行删除姓名和手机号码的操作,根据用户输入姓名,删除对应手机号码
- 用户输入“3”时,执行修改手机号码的操作,根据用户输入姓名,修改对应手机号码
- 用户输入“4”时,执行显示全部姓名和手机号码的操作
- 用户输入“5”时,执行查询手机号码的操作,根据用户输入姓名,查找对应手机号码
- 用户输入“6”时,感谢用户使用,退出手机通讯录管理系统的程序
通过此例子可以掌握知识点:
- python语言基础语法:变量,运算符,输入与输出语句
- 逻辑控制语句的使用:分支语言if...elif..else 以及 循环语句for...in.. while True(无限循环)
- 函数的定义及调用
- 数据结构:列表list,可以存放多个多种类型的数据
分析:用户对于通讯录系统的操作是针对于相同内容的数据,而且联系人信息应该存在多条,所以应该存放在一个容器当中统一管理,这里使用python自带数据结构中的列表进行存放,然后增删改查其实就是对于列表方法的调用。关于列表的学习可通过菜鸟教程等辅助网站进行了解。
列表常用方法:
实现代码如下:
def addUser(contactlist):
# 1.增加姓名和手机
name = input("请输入姓名:>")
# 判断姓名,在列表当中是否已经存储,如果存储,就提示用户不能存储,否则就存入
flag = False # 默认此人没存储过
for index in range(len(contactlist)):
if (contactlist[index][0] == name):
print("此联系人已经存在,请重新输入!!")
flag = True # 设置此人已经存储
break
if not flag:
phone = input("请输入手机号:>")
singlelist = [name, phone]
# 将一个人信息组成的列表,添加到总体的列表当中
contactlist.append(singlelist)
print("输入完成")
def deleteUser(contactlist):
# 2.删除姓名
name = input("请输入要删除的联系人:>")
flag = False # 默认这个人不存在
# 遍历列表,查看这个列表当中是否包含此人
for index in range(len(contactlist)):
if contactlist[index][0] == name:
# 说明此人存在
del contactlist[index]
flag = True
print("删除成功")
break
if not flag:
print("查无此人!")
def updateUser(contactlist):
# 3.修改手机号码
name = input("请输入要修改的联系人:>")
flag = False # 默认这个人不存在
# 遍历列表,查看这个列表当中是否包含此人
for index in range(len(contactlist)):
if contactlist[index][0] == name:
# 说明此人存在
phone = input("请输入要修改的电话号码:>")
contactlist[index][1] = phone
flag = True
print("修改成功")
break
if not flag :
print("查无此人!")
def getAllUser(contactlist):
# 4.查询所有用户
print("-------------------")
for i in contactlist:
print("用户:\t%s\t\t%s" % (i[0], i[1]))
print("-------------------")
def queryPhoneByName(contactlist):
# 5.根据姓名查找手机号
name = input("请输入要查询的联系人:>")
flag = False # 默认这个人不存在
# 遍历列表,查看这个列表当中是否包含此人
for index in range(len(contactlist)):
if contactlist[index][0] == name:
# 说明此人存在
print("您要查找的手机号码是:%s" % (contactlist[index][1]))
flag = True
break
if not flag:
print("查无此人!")
def work(contactlist):
while True:
num = input("请根据规则继续输入:>")
#判断用户输入码是否在1,2,3,4,5,6当中
if num not in ['1','2','3','4','5','6']:
print("输入有误,请重新输入")
else:
if num=='1':
addUser(contactlist)
elif num == '2':
deleteUser(contactlist)
elif num == '3':
updateUser(contactlist)
elif num == '4':
getAllUser(contactlist)
elif num == '5':
queryPhoneByName(contactlist)
elif num == '6':
#6.退出
print("感谢使用")
break
def main():
# 因为可能存储多组数据,创建一个列表,目前列表没有元素,所以为空列表
contactlist = []
info = '''
====通讯录管理系统====
1.增加姓名和手机
2.删除姓名
3.修改手机
4.查询所有用户
5.根据姓名查找手机号
6.退出
=====================
'''
print(info)
work(contactlist)
if __name__ == "__main__":
main()
实现效果图如下:
以上为手机通讯录系统使用python语言简单实现的基本介绍,后续会在此思路上对于python基础语法进行进一步生动案例讲解。熟悉面向对象思想的同学们,可以将代码封装更贴近开发思维。感谢您的阅读~~