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中装饰器的一个妙用
Feb 08 Python
在Python的Django框架中编写编译函数
Jul 20 Python
Python实现导出数据生成excel报表的方法示例
Jul 12 Python
Tensorflow模型实现预测或识别单张图片
Jul 19 Python
Django 创建/删除用户的示例代码
Jul 24 Python
对Django的restful用法详解(自带的增删改查)
Aug 28 Python
pytorch下使用LSTM神经网络写诗实例
Jan 14 Python
简单了解Python write writelines区别
Feb 27 Python
基于python实现上传文件到OSS代码实例
May 09 Python
如何基于matlab相机标定导出xml文件
Nov 02 Python
python import 上级目录的导入
Nov 03 Python
用pip给python安装matplotlib库的详细教程
Feb 24 Python
python 自动化偷懒的四个实用操作
python Tkinter的简单入门教程
PyQt5 显示超清高分辨率图片的方法
用Python提取PDF表格的方法
用Python提取PDF表格的方法
python实现自动化群控的步骤
Apr 11 #Python
python 调用js的四种方式
Apr 11 #Python
You might like
php读取csv实现csv文件下载功能
2013/12/18 PHP
php 检查电子邮件函数(自写)
2014/01/16 PHP
PHP解压tar.gz格式文件的方法
2016/02/14 PHP
php实现socket推送技术的示例
2017/12/20 PHP
php文件上传原理与实现方法详解
2019/12/20 PHP
PHP单元测试配置与使用方法详解
2019/12/27 PHP
HTTP状态代码以及定义(解释)
2007/02/02 Javascript
使用IE6看老赵的博客 jQuery初探
2010/01/17 Javascript
jQuery Ajax 仿AjaxPro.Utility.RegisterTypeForAjax辅助方法
2011/09/27 Javascript
js获取某月的最后一天日期的简单实例
2013/06/22 Javascript
JavaScript截取字符串的2个函数介绍
2014/08/27 Javascript
jQuery fancybox在ie浏览器下无法显示关闭按钮的解决办法
2016/02/19 Javascript
Bootstrap3制作图片轮播效果
2016/05/12 Javascript
ReactNative-JS 调用原生方法实例代码
2016/10/08 Javascript
bootstrapValidator bootstrap-select验证不可用的解决办法
2017/01/11 Javascript
jquery.validate.js 多个相同name的处理方式
2017/07/10 jQuery
JS实现点击循环切换显示内容的方法
2017/10/19 Javascript
tracking.js页面人脸识别插件使用方法
2020/04/16 Javascript
使用JavaScript解析URL的方法示例
2019/03/01 Javascript
用生成器来改写直接返回列表的函数方法
2017/05/25 Python
python实现爬山算法的思路详解
2019/04/09 Python
Python partial函数原理及用法解析
2019/12/11 Python
使用python实现哈希表、字典、集合操作
2019/12/22 Python
手把手教你进行Python虚拟环境配置教程
2020/02/03 Python
TensorFlow的reshape操作 tf.reshape的实现
2020/04/19 Python
怎样实现H5+CSS3手指滑动切换图片的示例代码
2019/05/05 HTML / CSS
澳大利亚在线家具店:Luxo Living
2019/03/24 全球购物
办公室主任先进事迹
2014/01/18 职场文书
小学生元旦感言
2014/02/26 职场文书
银行求职信范文怎么写
2015/03/20 职场文书
解除劳动合同通知书范本
2015/04/16 职场文书
自荐信范文
2019/05/20 职场文书
深入理解CSS 中 transform matrix矩阵变换问题
2021/08/30 HTML / CSS
Mysql数据库手动及定时备份步骤
2021/11/07 MySQL
Python面试不修改数组找出重复的数字
2022/05/20 Python
彻底弄懂Python中的回调函数(callback)
2022/06/25 Python