python实现简易名片管理系统


Posted in Python onApril 11, 2021

本文实例为大家分享了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('名片不存在!!!')

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中isnumeric()方法的使用简介
May 19 Python
python中input()与raw_input()的区别分析
Feb 27 Python
深入浅出学习python装饰器
Sep 29 Python
python+opencv实现动态物体识别
Jan 09 Python
Python中optparser库用法实例详解
Jan 26 Python
对python中的try、except、finally 执行顺序详解
Feb 18 Python
python爬取Ajax动态加载网页过程解析
Sep 05 Python
tensorflow 模型权重导出实例
Jan 24 Python
Python基于内置库pytesseract实现图片验证码识别功能
Feb 24 Python
python实现将列表中各个值快速赋值给多个变量
Apr 02 Python
Python SMTP发送电子邮件的示例
Sep 23 Python
简述python&amp;pytorch 随机种子的实现
Oct 07 Python
python 自动化偷懒的四个实用操作
python Tkinter的简单入门教程
PyQt5 显示超清高分辨率图片的方法
用Python提取PDF表格的方法
用Python提取PDF表格的方法
python实现自动化群控的步骤
Apr 11 #Python
python 调用js的四种方式
Apr 11 #Python
You might like
php中使用Akismet防止垃圾评论的代码
2011/06/10 PHP
php 深入理解strtotime函数的使用详解
2013/05/23 PHP
PHP实现查询两个数组中不同元素的方法
2016/02/23 PHP
thinkphp3.x连接mysql数据库的方法(具体操作步骤)
2016/05/19 PHP
[原创]smarty简单模板变量输出方法
2016/07/09 PHP
PHP实现redis限制单ip、单用户的访问次数功能示例
2018/06/16 PHP
JavaScript 反科里化 this [译]
2012/09/20 Javascript
Area 区域实现post提交数据的js写法
2014/04/22 Javascript
javascript每日必学之运算符
2016/02/16 Javascript
如何使用Bootstrap的modal组件自定义alert,confirm和modal对话框
2016/03/01 Javascript
jQuery实现的跨容器无缝拖动效果代码
2016/06/21 Javascript
Bootstrap轮播图学习使用
2017/02/10 Javascript
详解AngularJS用Interceptors来统一处理HTTP请求和响应
2017/06/08 Javascript
Vue中使用sass实现换肤功能
2018/09/07 Javascript
JavaScript函数式编程(Functional Programming)高阶函数(Higher order functions)用法分析
2019/05/22 Javascript
[56:20]LGD vs VP Supermajor 败者组决赛 BO3 第三场 6.10
2018/07/04 DOTA
Python设计实现的计算器功能完整实例
2017/08/18 Python
快速入门python学习笔记
2017/12/06 Python
python之matplotlib学习绘制动态更新图实例代码
2018/01/23 Python
Python Web程序部署到Ubuntu服务器上的方法
2018/02/22 Python
python生成带有表格的图片实例
2019/02/03 Python
python实现俄罗斯方块小游戏
2020/04/24 Python
构建高效的python requests长连接池详解
2020/05/02 Python
pyecharts调整图例与各板块的位置间距实例
2020/05/16 Python
pytorch 常用函数 max ,eq说明
2020/06/28 Python
使用keras框架cnn+ctc_loss识别不定长字符图片操作
2020/06/29 Python
美国当红的名品折扣网:Gilt Groupe
2016/08/15 全球购物
日语专业毕业生求职信
2013/12/04 职场文书
环保建议书作文
2014/03/12 职场文书
投标承诺书范本
2014/03/27 职场文书
乡村卫生服务一体化管理实施方案
2014/03/30 职场文书
数控技校生自我鉴定
2014/04/19 职场文书
2014年学生会部门工作总结
2014/11/07 职场文书
2014矛盾纠纷排查调处工作总结
2014/12/09 职场文书
2016幼儿教师自荐信范文
2016/01/28 职场文书
浅谈Python协程asyncio
2021/06/20 Python