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中查找excel某一列的重复数据 剔除之后打印
Feb 10 Python
Flask框架学习笔记(一)安装篇(windows安装与centos安装)
Jun 25 Python
Python中的进程分支fork和exec详解
Apr 11 Python
举例讲解Python中的迭代器、生成器与列表解析用法
Mar 20 Python
通过源码分析Python中的切片赋值
May 08 Python
浅析python实现scrapy定时执行爬虫
Mar 04 Python
详解Python字典小结
Oct 20 Python
使用python3构建文件传输的方法
Feb 13 Python
python使用writerows写csv文件产生多余空行的处理方法
Aug 01 Python
python 叠加等边三角形的绘制的实现
Aug 14 Python
解决python 执行sql语句时所传参数含有单引号的问题
Jun 06 Python
5个pandas调用函数的方法让数据处理更加灵活自如
Apr 24 Python
python 自动化偷懒的四个实用操作
python Tkinter的简单入门教程
PyQt5 显示超清高分辨率图片的方法
用Python提取PDF表格的方法
用Python提取PDF表格的方法
python实现自动化群控的步骤
Apr 11 #Python
python 调用js的四种方式
Apr 11 #Python
You might like
PHP substr 截取字符串出现乱码问题解决方法[utf8与gb2312]
2011/12/16 PHP
php5.3 goto函数介绍和示例
2014/03/21 PHP
基于php的CMS中展示文章类实例分析
2015/06/18 PHP
PHP设计模式(六)桥连模式Bridge实例详解【结构型】
2020/05/02 PHP
js 上传图片预览问题
2010/12/06 Javascript
js中访问html中iframe的文档对象的代码[IE6,IE7,IE8,FF]
2011/01/08 Javascript
使用js写的一个简易的投票
2013/11/27 Javascript
JQuery处理json与ajax返回JSON实例代码
2014/01/03 Javascript
JavaScript不刷新实现浏览器的前进后退功能
2014/11/05 Javascript
浅谈jQuery中height与width
2015/07/06 Javascript
JS基于FileSystemObject创建一个指定路径的TXT文本文件
2015/08/05 Javascript
javascript用正则表达式过滤空格的实现代码
2016/06/14 Javascript
javascript实现瀑布流动态加载图片原理
2016/08/12 Javascript
js对字符串进行编码的方法总结(推荐)
2016/11/10 Javascript
Jquery Easyui表单组件Form使用详解(30)
2016/12/19 Javascript
js 去掉字符串前后空格实现代码集合
2017/03/25 Javascript
浅谈Vue.js 1.x 和 2.x 实例的生命周期
2017/07/25 Javascript
react中的ajax封装实例详解
2017/10/17 Javascript
JavaScript事件发布/订阅模式原理与用法分析
2018/08/21 Javascript
利用Python如何将数据写到CSV文件中
2018/06/05 Python
对python for 文件指定行读写操作详解
2018/12/29 Python
libreoffice python 操作word及excel文档的方法
2019/07/04 Python
django创建最简单HTML页面跳转方法
2019/08/16 Python
使用python的turtle函数绘制一个滑稽表情
2020/02/28 Python
分享unittest单元测试框架中几种常用的用例加载方法
2020/12/02 Python
python实现学生信息管理系统源码
2021/02/22 Python
家用个人磨皮机:Trophy Skin
2017/03/30 全球购物
英国羊皮鞋类领先品牌:Just Sheepskin
2019/12/12 全球购物
实现strstr功能,即在父串中寻找子串首次出现的位置
2016/08/05 面试题
行政专员求职信范文
2014/05/03 职场文书
一个独生女的故事观后感
2015/06/04 职场文书
2015中秋节晚会开场白
2015/07/30 职场文书
想创业成功,需要掌握这些要点
2019/12/06 职场文书
MySQL表字段时间设置默认值
2021/05/13 MySQL
Golang原生rpc(rpc服务端源码解读)
2022/04/07 Golang
Elasticsearch 基本查询和组合查询
2022/04/19 Python