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生成日历实例解析
Aug 21 Python
python调用java模块SmartXLS和jpype修改excel文件的方法
Apr 28 Python
在Linux系统上安装Python的Scrapy框架的教程
Jun 11 Python
Python爬虫实现全国失信被执行人名单查询功能示例
May 03 Python
在Python IDLE 下调用anaconda中的库教程
Mar 09 Python
Python tornado上传文件的功能
Mar 26 Python
为什么称python为胶水语言
Jun 16 Python
python实现PDF中表格转化为Excel的方法
Jun 16 Python
Python读写csv文件流程及异常解决
Oct 20 Python
tensorflow与numpy的版本兼容性问题的解决
Jan 08 Python
Python爬虫设置Cookie解决网站拦截并爬取蚂蚁短租的问题
Feb 22 Python
python Polars库的使用简介
Apr 21 Python
python 自动化偷懒的四个实用操作
python Tkinter的简单入门教程
PyQt5 显示超清高分辨率图片的方法
用Python提取PDF表格的方法
用Python提取PDF表格的方法
python实现自动化群控的步骤
Apr 11 #Python
python 调用js的四种方式
Apr 11 #Python
You might like
神盾加密解密教程(一)PHP变量可用字符
2014/05/28 PHP
Yii2表单事件之Ajax提交实现方法
2017/05/04 PHP
Nginx实现反向代理
2017/09/20 Servers
利用Homestead快速运行一个Laravel项目的方法详解
2017/11/14 PHP
基于jQuery试卷自动排版系统
2010/07/18 Javascript
MVVM模式中ViewModel和View、Model有什么区别?
2015/06/19 Javascript
学习JavaScript设计模式之状态模式
2016/01/08 Javascript
jQuery插件实现带圆点的焦点图片轮播切换
2016/01/18 Javascript
JS常用知识点整理
2017/01/21 Javascript
js实现数组内数据的上移和下移的实例
2017/11/14 Javascript
JavaScript中Object值合并方法详解
2017/12/22 Javascript
如何使用Jquery动态生成二级选项列表
2020/02/06 jQuery
JS实现瀑布流效果
2020/03/07 Javascript
详解vue修改elementUI的分页组件视图没更新问题
2020/11/13 Javascript
[40:29]2018DOTA2亚洲邀请赛 4.7总决赛 LGD vs Mineski 第一场
2018/04/10 DOTA
python实现从ftp服务器下载文件的方法
2015/04/30 Python
python requests 使用快速入门
2017/08/31 Python
django模板语法学习之include示例详解
2017/12/17 Python
python实现读取excel文件中所有sheet操作示例
2019/08/09 Python
python从zip中删除指定后缀文件(推荐)
2019/12/05 Python
python3 sorted 如何实现自定义排序标准
2020/03/12 Python
配置python的编程环境之Anaconda + VSCode的教程
2020/03/29 Python
解决python运行启动报错问题
2020/06/01 Python
解决python 执行shell命令无法获取返回值的问题
2020/12/05 Python
采用专利算法搜索最廉价的机票:CheapAir
2016/09/10 全球购物
DNA基因检测和分析:23andMe
2019/05/01 全球购物
JSF如何进行表格处理及取值
2012/08/06 面试题
公交公司毕业生求职信
2014/02/15 职场文书
2014年师德承诺书
2014/05/23 职场文书
计算机毕业生求职信
2014/06/10 职场文书
推广活动策划方案
2014/08/23 职场文书
2014年党员自我剖析材料
2014/10/07 职场文书
写给老婆的保证书
2015/02/27 职场文书
乡镇安全生产月活动总结
2015/05/08 职场文书
详解Python中的进程和线程
2021/06/23 Python
html5实现点击弹出图片功能
2021/07/16 HTML / CSS