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 相关文章推荐
Zabbix实现微信报警功能
Oct 09 Python
Python正则替换字符串函数re.sub用法示例
Jan 19 Python
python3+PyQt5重新实现自定义数据拖放处理
Apr 19 Python
win10下tensorflow和matplotlib安装教程
Sep 19 Python
python中dir()与__dict__属性的区别浅析
Dec 10 Python
通过python的matplotlib包将Tensorflow数据进行可视化的方法
Jan 09 Python
Python实现去除图片中指定颜色的像素功能示例
Apr 13 Python
浅谈PySpark SQL 相关知识介绍
Jun 14 Python
基于Python实现天天酷跑功能
Jan 06 Python
python 获取计算机的网卡信息
Feb 18 Python
pytorch 如何使用batch训练lstm网络
May 28 Python
基于Python实现射击小游戏的制作
Apr 06 Python
python 自动化偷懒的四个实用操作
python Tkinter的简单入门教程
PyQt5 显示超清高分辨率图片的方法
用Python提取PDF表格的方法
用Python提取PDF表格的方法
python实现自动化群控的步骤
Apr 11 #Python
python 调用js的四种方式
Apr 11 #Python
You might like
php实现有序数组打印或排序的方法【附Python、C及Go语言实现代码】
2016/11/10 PHP
thinkphp整合微信支付代码分享
2016/11/24 PHP
PHP封装的非对称加密RSA算法示例
2018/05/28 PHP
fancybox1.3.1 基于Jquery的插件在IE中图片显示问题
2010/10/01 Javascript
javascript jscroll模拟html元素滚动条
2012/12/18 Javascript
ECMAScript6的新特性箭头函数(Arrow Function)详细介绍
2014/06/07 Javascript
js中的json对象详细介绍
2014/10/29 Javascript
JS获取网页图片name属性的方法
2015/04/01 Javascript
Angular的$http的ajax的请求操作(推荐)
2017/01/10 Javascript
js定时器实现倒计时效果
2017/11/05 Javascript
详解create-react-app 自定义 eslint 配置
2018/06/07 Javascript
Layui组件Table绑定行点击事件和获取行数据的方法
2018/08/19 Javascript
小程序实现单选多选功能
2018/11/04 Javascript
layui table 多行删除(id获取)的方法
2019/09/12 Javascript
微信小程序canvas开发水果老虎机的思路详解
2020/02/07 Javascript
Vue如何将页面导出成PDF文件
2020/08/17 Javascript
微信小程序获取当前时间及星期几的实例代码
2020/09/20 Javascript
Python中的字典与成员运算符初步探究
2015/10/13 Python
对TensorFlow的assign赋值用法详解
2018/07/30 Python
pyshp创建shp点文件的方法
2018/12/31 Python
python 模拟银行转账功能过程详解
2019/08/06 Python
python设置代理和添加镜像源的方法
2020/02/14 Python
解决pycharm中opencv-python导入cv2后无法自动补全的问题(不用作任何文件上的修改)
2020/03/05 Python
使用Python通过oBIX协议访问Niagara数据的示例
2020/12/04 Python
python palywright库基本使用
2021/01/21 Python
Berghaus官网:户外服装和设备,防水服
2020/01/17 全球购物
EJB3.1都有哪些改进
2012/11/17 面试题
入党申请书自我鉴定
2013/10/12 职场文书
会计电算化专业毕业生求职信范文
2013/12/10 职场文书
2014年工程工作总结
2014/11/25 职场文书
公司会议开幕词
2015/01/29 职场文书
常务副总经理岗位职责
2015/02/02 职场文书
大学生团日活动总结
2015/05/06 职场文书
幼儿园迎新生欢迎词
2015/09/30 职场文书
Python基础之字符串格式化详解
2021/04/21 Python
python运算符之与用户交互
2022/04/13 Python