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中使用scapy模拟数据包实现arp攻击、dns放大攻击例子
Oct 23 Python
探究Python的Tornado框架对子域名和泛域名的支持
May 02 Python
Python中DJANGO简单测试实例
May 11 Python
python&amp;MongoDB爬取图书馆借阅记录
Feb 05 Python
Python 文件处理注意事项总结
Apr 10 Python
Python实现字典的遍历与排序功能示例
Dec 23 Python
用Python写脚本,实现完全备份和增量备份的示例
Apr 29 Python
PyQt5 pyqt多线程操作入门
May 05 Python
flask入门之文件上传与邮件发送示例
Jul 18 Python
Python 余弦相似度与皮尔逊相关系数 计算实例
Dec 23 Python
python读取图像矩阵文件并转换为向量实例
Jun 18 Python
Python深度学习之Pytorch初步使用
May 20 Python
python 自动化偷懒的四个实用操作
python Tkinter的简单入门教程
PyQt5 显示超清高分辨率图片的方法
用Python提取PDF表格的方法
用Python提取PDF表格的方法
python实现自动化群控的步骤
Apr 11 #Python
python 调用js的四种方式
Apr 11 #Python
You might like
PHP也可以?成Shell Script
2006/10/09 PHP
配置支持SSI
2006/11/25 PHP
php+mysql写的简单留言本实例代码
2008/07/25 PHP
php中引用符号(&amp;)的使用详解
2013/11/13 PHP
PHP执行Curl时报错提示CURL ERROR: Recv failure: Connection reset by peer的解决方法
2014/06/26 PHP
Symfony2获取web目录绝对路径、相对路径、网址的方法
2016/11/14 PHP
php大小写转换函数(strtolower、strtoupper)用法介绍
2017/11/17 PHP
PHP基于PDO扩展操作mysql数据库示例
2018/12/24 PHP
php设计模式之中介者模式分析【星际争霸游戏案例】
2020/03/23 PHP
一些不错的js函数ajax
2008/08/20 Javascript
JavaScript实用技巧(一)
2010/08/16 Javascript
简单实例处理url特殊符号&amp;处理(2种方法)
2013/04/02 Javascript
jQuery学习总结之jQuery事件
2014/06/30 Javascript
jquery图片轮播特效代码分享
2020/04/20 Javascript
javascript html5 canvas实现可拖动省份的中国地图
2016/03/11 Javascript
全面解析JavaScript中“&amp;&amp;”和“||”操作符(总结篇)
2016/07/18 Javascript
Angularjs 动态改变title标题(兼容ios)
2016/12/29 Javascript
详谈Angular 2+ 的表单(一)之模板驱动型表单
2017/04/25 Javascript
微信小程序模版渲染详解
2018/01/26 Javascript
[01:04:06]DOTA2上海特级锦标赛A组资格赛#2 Secret VS EHOME第一局
2016/02/26 DOTA
[08:54]DOTA2-DPC中国联赛 正赛 Aster vs LBZS 选手采访
2021/03/11 DOTA
对python中Json与object转化的方法详解
2018/12/31 Python
分享8个非常流行的 Python 可视化工具包
2019/06/05 Python
python绘制多个子图的实例
2019/07/07 Python
pandas 缺失值与空值处理的实现方法
2019/10/12 Python
HTML5的结构和语义(2):结构
2008/10/17 HTML / CSS
临床医学专业毕业生的自我评价
2013/10/17 职场文书
给交警的表扬信
2014/01/12 职场文书
怎么写自荐书范文
2014/02/12 职场文书
小学一年级学生评语
2014/04/22 职场文书
会计毕业生自荐书
2014/06/12 职场文书
小学教师自我剖析材料
2014/09/29 职场文书
科技活动总结范文
2015/05/11 职场文书
圣诞晚会主持词
2015/07/01 职场文书
国庆节新闻稿
2015/07/17 职场文书
《称赞》教学反思
2016/02/17 职场文书