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搭建简易服务器分析与实现
Dec 15 Python
python操作mysql中文显示乱码的解决方法
Oct 11 Python
在Linux上安装Python的Flask框架和创建第一个app实例的教程
Mar 30 Python
Python中比较特别的除法运算和幂运算介绍
Apr 05 Python
Python面向对象实现一个对象调用另一个对象操作示例
Apr 08 Python
Python re 模块findall() 函数返回值展现方式解析
Aug 09 Python
基于python的BP神经网络及异或实现过程解析
Sep 30 Python
PyTorch实现更新部分网络,其他不更新
Dec 31 Python
python实现上传文件到linux指定目录的方法
Jan 03 Python
PYcharm 激活方法(推荐)
Mar 23 Python
在jupyter notebook中调用.ipynb文件方式
Apr 14 Python
新版Pycharm中Matplotlib不会弹出独立的显示窗口的问题
Jun 02 Python
python 自动化偷懒的四个实用操作
python Tkinter的简单入门教程
PyQt5 显示超清高分辨率图片的方法
用Python提取PDF表格的方法
用Python提取PDF表格的方法
python实现自动化群控的步骤
Apr 11 #Python
python 调用js的四种方式
Apr 11 #Python
You might like
php 计算两个时间戳相隔的时间的函数(小时)
2009/12/18 PHP
php中的Base62类(适用于数值转字符串)
2013/08/12 PHP
ThinkPHP模版引擎之变量输出详解
2014/12/05 PHP
javascript编程起步(第七课)
2007/01/10 Javascript
Jquery乱码的一次解决过程 图解教程
2010/02/20 Javascript
js限制文本框输入长度两种限制方式(长度、字节数)
2012/12/19 Javascript
HTML页面弹出居中可拖拽的自定义窗口层
2014/05/07 Javascript
wap浏览自动跳转到wap页面的js代码
2014/05/17 Javascript
nodejs文件操作模块FS(File System)常用函数简明总结
2014/06/05 NodeJs
JS实现三个层重叠点击互相切换的方法
2015/10/06 Javascript
js实现模拟银行卡账号输入显示效果
2015/11/18 Javascript
关于JS中的apply,call,bind的深入解析
2016/04/05 Javascript
浅谈javascript中的 “ &amp;&amp; ” 和 “ || ”
2017/02/02 Javascript
Vue项目中quill-editor带样式编辑器的使用方法
2017/08/08 Javascript
详解angularjs跨页面传参遇到的一些问题
2018/11/01 Javascript
ES10 特性的完整指南小结
2019/03/04 Javascript
vuex存值与取值的实例
2019/11/06 Javascript
JavaScript 浏览器对象模型BOM原理与常见用法实例分析
2019/12/16 Javascript
Javascript操作select控件代码实例
2020/02/14 Javascript
python打开文件并获取文件相关属性的方法
2015/04/23 Python
Python3实现转换Image图片格式
2018/06/21 Python
Python列表(List)知识点总结
2019/02/18 Python
Python实现微信消息防撤回功能的实例代码
2019/04/29 Python
Python银行系统实战源码
2019/10/25 Python
Django 自定义404 500等错误页面的实现
2020/03/08 Python
Cotton On南非:澳洲时尚平价品牌
2018/06/28 全球购物
PHP面试题及答案二
2015/05/23 面试题
Java中会存在内存泄漏吗,请简单描述
2016/12/22 面试题
会计系中文个人求职信
2013/12/24 职场文书
参观接待方案
2014/03/17 职场文书
股权转让协议书
2014/04/12 职场文书
安全生产目标管理责任书
2014/07/25 职场文书
四风对照检查材料范文
2014/09/27 职场文书
2014年单位法制宣传日活动总结
2014/11/01 职场文书
文明单位申报材料
2014/12/23 职场文书
企业安全生产检查制度
2015/08/06 职场文书