当前位置 博文首页 > python实现简易名片管理系统

    python实现简易名片管理系统

    作者:我是小海星 时间:2021-04-29 17:55

    本文实例为大家分享了python实现名片管理系统的具体代码,供大家参考,具体内容如下

    功能需求

    • 用户输入数字选择要进行的操作
    • 添加名片
    • 删除名片
    • 修改名片
    • 查询名片
    • 显示所有名片
    • 退出系统

    缺点(待改进)

    数据未保存到后台,添加的数据仅限当次运行程序时使用

    话不多说,上代码!

    主程序

    # coding=utf8
    from method import *
    # 导入定时器是为了方便观察每次操作的结果
    from time import sleep
    
    cards = []
    # 让这个程序无限循环,直到用户想要其终止
    while True:
        sleep(1)
        menu()
        ope_num = input('请输入要进行的操作(1-6): ')
        if ope_num == '1':
            addinfo(cards)
        elif ope_num == '2':
            delinfo(cards)
        elif ope_num == '3':
            updateinfo(cards)
        elif ope_num == '4':
            searchinfo(cards)
        elif ope_num == '5':
            showinfo(cards)
        elif ope_num == '6':
            sure = input('你确定要退出系统吗(YES/NO)')
            if sure.upper() == 'YES':
                break
        else:
            print('输入错误,请重新输入!!!(数字1-6)')

    函数文件

    # 定义一个menu方法
    def menu():
        print('------------------\n'
              '\t名片管理系统\n'
              '1:添加名片\n'
              '2:删除名片\n'
              '3:修改名片\n'
              '4:查询名片\n'
              '5:显示所有名片\n'
              '6:退出系统\n'
              '------------------')
    
    # 添加名片
    def addinfo(lists):
        # 定义一个字典,存放这个名片的信息
        info = {}
    
        # 获取姓名
        def getname():
            name = input('请输入姓名: ')
    
            # 判断姓名是否由 数字、字母、数字和字母 组成,即:不能包含标点符号和空格,不能为空
            # 如果不符合要求,提示检查,并重新输入
            # 一直提示用户输入,直到符合要求
            while name.isalnum() != True:
                print('请检查输入!!! (不能包含标点符号和空格,不能为空) ')
                name = input('请输入姓名: ')
    
            return name
    
        # 获取手机号
        def getphone():
            phone = input('请输入手机号: ')
    
            # 判断手机号是否由 11位数字 组成
            # 如果不符合要求,提示检查,并重新输入
            while (len(phone) != 11) or (phone.isdigit() != True):
                print('请检查输入!!! (由11位纯数字组成,不能为空) ')
                phone = input('请输入手机号: ')
    
            return phone
    
        # 获取QQ号
        def getqq():
            qq = input('请输入QQ号: ')
    
            # 判断QQ号是否由 5-10位数字 组成
            # 如果不符合要求,提示检查,并重新输入
            while ((len(qq) < 5) or (len(qq) > 10)) or (qq.isdigit() != True):
                print('请检查输入!!! (由5-10位纯数字组成,不能为空) ')
                qq = input('请输入QQ号: ')
    
            return qq
    
        # 如果该名片的序号为,列表长度+1
        info['num'] = len(lists) + 1
    
        # 通过调用其他函数获取对应信息
        info['name'] = getname()
        info['phone'] = getphone()
        info['qq'] = getqq()
    
        # 将该字典存入名片列表中
        lists.append(info)
    
        print('添加成功!')
        showinfo(lists)
    
    # 输出所有名片列表
    def showinfo(lists):
        print('序号\t姓名\t\t手机号\t\tQQ号'.ljust(30))
        for lis in lists:
            for value in lis.values():
                print(value, end='\t')
    
            print('\n')
    
    # 删除名片
    def delinfo(lists):
        del_name = input('请输入您需要删除名片的姓名: ')
        flag = True
        for lis in lists:
            if lis['name'] == del_name:
                lists.remove(lis)
                print('删除成功!')
                showinfo(lists)
                flag = False
                break
    
        if flag == True:
            print('名片不存在!!!')
    
    # 修改名片
    def updateinfo(lists):
        upd_name = input('请输入您需要修改名片的姓名: ')
        flag = True
        for lis in lists:
            if lis['name'] == upd_name:
                lis['name']=input('请输入新姓名: ')
                lis['phone']=input('请输入新手机号: ')
                lis['qq']=input('请输入新QQ号: ')
                print('修改成功!')
                showinfo(lists)
                flag = False
                break
    
        if flag == True:
            print('名片不存在!!!')
    
    # 查询名片
    def searchinfo(lists):
        se_name = input('请输入您需要查询的姓名: ')
        flag = True
        for lis in lists:
            if lis['name'] == se_name:
                print('序号\t姓名\t\t手机号\t\tQQ号'.ljust(30))
                for value in lis.values():
                    print(value, end='\t')
    
                print('\n')
                flag = False
                break
    
        if flag == True:
            print('名片不存在!!!')

    执行结果

    js
    下一篇:没有了