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利用不到一百行代码实现一个小siri
Mar 02 Python
Python中str.format()详解
Mar 12 Python
python非递归全排列实现方法
Apr 10 Python
简单谈谈Python中的json与pickle
Jul 19 Python
pandas带有重复索引操作方法
Jun 08 Python
使用Python AIML搭建聊天机器人的方法示例
Jul 09 Python
Python2.7实现多进程下开发多线程示例
May 31 Python
python调用动态链接库的基本过程详解
Jun 19 Python
使用Python三角函数公式计算三角形的夹角案例
Apr 15 Python
利用Python+OpenCV三步去除水印
May 28 Python
Python实现提取PDF简历信息并存入Excel
Apr 02 Python
详解Python中的for循环
Apr 30 Python
python 自动化偷懒的四个实用操作
python Tkinter的简单入门教程
PyQt5 显示超清高分辨率图片的方法
用Python提取PDF表格的方法
用Python提取PDF表格的方法
python实现自动化群控的步骤
Apr 11 #Python
python 调用js的四种方式
Apr 11 #Python
You might like
桌面中心(二)数据库写入
2006/10/09 PHP
攻克CakePHP系列二 表单数据显示
2008/10/22 PHP
PHP正则验证Email的方法
2015/06/15 PHP
创建无限极分类树型结构的简单方法
2017/06/20 PHP
PHP封装的分页类与简单用法示例
2019/02/25 PHP
新闻内页-JS分页
2006/06/07 Javascript
js中同步与异步处理的方法和区别总结
2013/12/25 Javascript
javascript移动设备Web开发中对touch事件的封装实例
2014/06/05 Javascript
javascript中类的定义方式详解(四种方式)
2015/12/22 Javascript
jQuery ajax调用后台aspx后台文件的两种常见方法(不是ashx)
2016/06/28 Javascript
纯css下拉菜单 无需js
2016/08/15 Javascript
JQuery实现动态操作表格
2017/01/11 Javascript
详解bootstrap的modal-remote两种加载方式【强化】
2017/01/27 Javascript
基于javascript的异步编程实例详解
2017/04/10 Javascript
详解AngularJS controller调用factory
2017/05/19 Javascript
vue.js-div滚动条隐藏但有滚动效果的实现方法
2018/03/03 Javascript
vue2.0 根据状态值进行样式的改变展示方法
2018/03/13 Javascript
webpack热模块替换(HMR)/热更新的方法
2018/04/05 Javascript
vue表单自定义校验规则介绍
2018/08/28 Javascript
详解vue中async-await的使用误区
2018/12/05 Javascript
解决Vue动态加载本地图片问题
2019/10/09 Javascript
Python数据类型学习笔记
2016/01/13 Python
python机器学习理论与实战(五)支持向量机
2018/01/19 Python
Python实现从log日志中提取ip的方法【正则提取】
2018/03/31 Python
Python中利用LSTM模型进行时间序列预测分析的实现
2019/07/26 Python
Django中使用MySQL5.5的教程
2019/12/18 Python
python实现简单颜色识别程序
2020/02/19 Python
Python 内存管理机制全面分析
2021/01/16 Python
前端canvas动画如何转成mp4视频的方法
2019/06/17 HTML / CSS
html5与css3小应用
2013/04/03 HTML / CSS
美的官方商城:Midea
2016/09/14 全球购物
中学教师教育感言
2014/02/21 职场文书
实习指导老师评语
2014/04/26 职场文书
运动会广播稿50字
2015/08/19 职场文书
2019年世界儿童日宣传标语
2019/11/22 职场文书
解决Nginx 配置 proxy_pass 后 返回404问题
2021/03/31 Servers