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程序与MySQL的教程
Apr 29 Python
Python实现将xml导入至excel
Nov 20 Python
Python实现JSON反序列化类对象的示例
Jan 31 Python
Python内置模块ConfigParser实现配置读写功能的方法
Feb 12 Python
Python3解释器知识点总结
Feb 19 Python
PyQT5 QTableView显示绑定数据的实例详解
Jun 25 Python
python+opencv实现车牌定位功能(实例代码)
Dec 24 Python
40个你可能不知道的Python技巧附代码
Jan 29 Python
pandas中read_csv、rolling、expanding用法详解
Apr 21 Python
Python3实现建造者模式的示例代码
Jun 28 Python
Python实现仓库管理系统
May 30 Python
Pygame游戏开发之太空射击实战敌人精灵篇
Aug 05 Python
python 自动化偷懒的四个实用操作
python Tkinter的简单入门教程
PyQt5 显示超清高分辨率图片的方法
用Python提取PDF表格的方法
用Python提取PDF表格的方法
python实现自动化群控的步骤
Apr 11 #Python
python 调用js的四种方式
Apr 11 #Python
You might like
php gd等比例缩放压缩图片函数
2016/06/12 PHP
thinkPHP自定义类实现方法详解
2016/11/30 PHP
PHP创建XML的方法示例【基于DOMDocument类及SimpleXMLElement类】
2019/09/10 PHP
javascript Onunload与Onbeforeunload使用小结
2009/12/31 Javascript
加速IE的Javascript document输出的方法
2010/12/02 Javascript
javascript表单验证 - Parsley.js使用和配置
2013/01/25 Javascript
JS自定义功能函数实现动态添加网址参数修改网址参数值
2013/08/02 Javascript
javacript使用break内层跳出外层循环分析
2015/01/12 Javascript
原生js编写2048小游戏
2017/03/17 Javascript
vue实现模态框的通用写法推荐
2018/02/26 Javascript
vue2.0 子组件改变props值,并向父组件传值的方法
2018/03/01 Javascript
React styled-components设置组件属性的方法
2018/08/07 Javascript
前后端如何实现登录token拦截校验详解
2018/09/03 Javascript
vue点击当前路由高亮小案例
2019/09/26 Javascript
详谈vue中router-link和传统a链接的区别
2020/07/22 Javascript
Python实现字符串格式化的方法小结
2017/02/20 Python
基于Python的关键字监控及告警
2017/07/06 Python
pandas 转换成行列表进行读取与Nan处理的方法
2018/10/30 Python
python 图像处理画一个正弦函数代码实例
2019/09/10 Python
Python 图像对比度增强的几种方法(小结)
2019/09/25 Python
python__name__原理及用法详解
2019/11/02 Python
解决pycharm debug时界面下方不出现step等按钮及变量值的问题
2020/06/09 Python
python3中编码获取网页的实例方法
2020/11/16 Python
一款利用css3的鼠标经过动画显示详情特效的实例教程
2014/12/29 HTML / CSS
美国领先的在线邮轮旅游公司:CruiseDirect
2018/06/07 全球购物
ORACLE十问
2015/04/20 面试题
this关键字的作用
2016/01/30 面试题
J2EE模式面试题
2016/10/11 面试题
英语师范专业毕业生自荐信
2013/09/21 职场文书
医学毕业生自荐信
2013/10/11 职场文书
《她是我的朋友》教学反思
2014/04/26 职场文书
岗位说明书范文
2014/05/07 职场文书
党的群众路线教育实践活动批评与自我批评发言稿
2014/10/16 职场文书
农村婚礼司仪主持词
2015/06/29 职场文书
2019年汽车租赁合同范本!
2019/08/12 职场文书
Mysql 8.x 创建用户以及授予权限的操作记录
2022/04/18 MySQL