Python基础项目:手机通讯录系统

最近与一高校合作开发课程,要求讲课方式要更符合现在学生的思路,提高学生学习兴趣。从传统教学的以点推点,进化到以面及点的方法,通过实际案例的思想推动理解需要掌握的知识点,更早的培养学生理解企业项目。

准备的第一个基础案例为今天的主题:Python语言实现手机通讯录管理系统。主要输出与互动通过控制台展示。

需求:

完成简易手机通讯录管理系统,包括以下功能:

  • 能够循环接收客户端输入的功能编号,并根据编号选择对应的功能操作
  • 用户输入“1”时,执行增加姓名和手机号码的操作
  • 用户输入“2”时,执行删除姓名和手机号码的操作,根据用户输入姓名,删除对应手机号码
  • 用户输入“3”时,执行修改手机号码的操作,根据用户输入姓名,修改对应手机号码
  • 用户输入“4”时,执行显示全部姓名和手机号码的操作
  • 用户输入“5”时,执行查询手机号码的操作,根据用户输入姓名,查找对应手机号码
  • 用户输入“6”时,感谢用户使用,退出手机通讯录管理系统的程序

通过此例子可以掌握知识点:

  1. python语言基础语法:变量,运算符,输入与输出语句
  2. 逻辑控制语句的使用:分支语言if...elif..else 以及 循环语句for...in..    while  True(无限循环)
  3. 函数的定义及调用
  4. 数据结构:列表list,可以存放多个多种类型的数据

分析:用户对于通讯录系统的操作是针对于相同内容的数据,而且联系人信息应该存在多条,所以应该存放在一个容器当中统一管理,这里使用python自带数据结构中的列表进行存放,然后增删改查其实就是对于列表方法的调用。关于列表的学习可通过菜鸟教程等辅助网站进行了解。

序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。 Python有6个序列的内置类型,但最常见的是列表和元组。 序列都可以进行的操作包括索引,切片,加,乘,检查成员。 此外,Python已经内置确定序列的长度以及确定最大和最小的元素的方法。 列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。 列表的数据项不需要具有相同的类型。

列表常用方法:

Python基础项目:手机通讯录系统_第1张图片

实现代码如下:

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基础项目:手机通讯录系统_第2张图片                                     Python基础项目:手机通讯录系统_第3张图片

以上为手机通讯录系统使用python语言简单实现的基本介绍,后续会在此思路上对于python基础语法进行进一步生动案例讲解。熟悉面向对象思想的同学们,可以将代码封装更贴近开发思维。感谢您的阅读~~

 

你可能感兴趣的:(Python学习笔记,python实例,数据结构)