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中正则表达式的详细教程
Apr 30 Python
Python编程求解二叉树中和为某一值的路径代码示例
Jan 04 Python
python 字典修改键(key)的几种方法
Aug 10 Python
详解Python下Flask-ApScheduler快速指南
Nov 04 Python
Python3爬虫使用Fidder实现APP爬取示例
Nov 27 Python
Python寻找两个有序数组的中位数实例详解
Dec 05 Python
Python动态参数/命名空间/函数嵌套/global和nonlocal
May 29 Python
python pyinstaller 加载ui路径方法
Jun 10 Python
python3 dict ndarray 存成json,并保留原数据精度的实例
Dec 06 Python
python基于opencv检测程序运行效率
Dec 28 Python
Python 实现判断图片格式并转换,将转换的图像存到生成的文件夹中
Jan 13 Python
python scipy 稀疏矩阵的使用说明
May 26 Python
python 自动化偷懒的四个实用操作
python Tkinter的简单入门教程
PyQt5 显示超清高分辨率图片的方法
用Python提取PDF表格的方法
用Python提取PDF表格的方法
python实现自动化群控的步骤
Apr 11 #Python
python 调用js的四种方式
Apr 11 #Python
You might like
用PHP 4.2书写安全的脚本
2006/10/09 PHP
PHP实现支持GET,POST,Multipart/form-data的HTTP请求类
2014/09/24 PHP
PHP简单生成缩略图相册的方法
2015/07/29 PHP
win7系统配置php+Apache+mysql环境的方法
2015/08/21 PHP
PHP类和对象相关系统函数与运算符小结
2016/09/28 PHP
Win7环境下Apache连接MySQL提示连接已重置的解决办法
2017/05/09 PHP
PHP实现一个按钮点击上传多个图片操作示例
2020/01/23 PHP
jquery的Tooltip插件 qtip使用详细说明
2010/09/08 Javascript
一款Jquery 分页插件的改造方法(服务器端分页)
2011/07/11 Javascript
编写针对IE的JS代码两种编写方法
2013/01/30 Javascript
JQuery 文本框回车跳到下一个文本框示例代码
2013/08/30 Javascript
javascript写的一个模拟阅读小说的程序
2014/04/04 Javascript
详解javascript的变量与标识符
2016/01/04 Javascript
浅谈Node.js之异步流控制
2017/10/25 Javascript
微信小程序实现倒计时调用相机自动拍照功能
2018/06/10 Javascript
vue+axios实现文件下载及vue中使用axios的实例
2018/09/21 Javascript
js中对象与对象创建方法的各种方法
2019/02/27 Javascript
Vue3.0的优化总结
2020/10/16 Javascript
[57:53]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#3OG VS VP
2016/03/03 DOTA
[08:38]DOTA2-DPC中国联赛 正赛 VG vs Elephant 选手采访
2021/03/11 DOTA
用python读写excel的方法
2014/11/18 Python
python的类方法和静态方法
2014/12/13 Python
numpy使用fromstring创建矩阵的实例
2018/06/15 Python
Python中list循环遍历删除数据的正确方法
2019/09/02 Python
如何基于python实现不邻接植花
2020/05/01 Python
关于box-sizing的全面理解
2016/07/28 HTML / CSS
世界上最全面的草药补充剂和顶级品牌维生素网站:HerbsPro
2019/01/20 全球购物
英国川宁茶官方网站:Twinings茶
2019/05/21 全球购物
巴西儿童时尚购物网站:Dinda
2019/08/14 全球购物
什么是Deployment descriptors;都有什么类型的部署描述符
2015/07/28 面试题
汉语专业应届生求职信
2013/10/01 职场文书
金融系应届毕业生求职信
2014/05/26 职场文书
综合管理员岗位职责
2015/02/11 职场文书
什么是创业计划书?什么是商业计划书?这里一一解答
2019/07/12 职场文书
Vue Element UI自定义描述列表组件
2021/05/18 Vue.js
详解Flutter自定义应用程序内键盘的实现方法
2022/06/14 Java/Android