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 相关文章推荐
Mac OS X10.9安装的Python2.7升级Python3.3步骤详解
Dec 04 Python
快速实现基于Python的微信聊天机器人示例代码
Mar 03 Python
python中通过预先编译正则表达式提高效率
Sep 25 Python
Python实现字典的遍历与排序功能示例
Dec 23 Python
Python爬虫实例_利用百度地图API批量获取城市所有的POI点
Jan 10 Python
python中scikit-learn机器代码实例
Aug 05 Python
设置python3为默认python的方法
Oct 31 Python
python实现在遍历列表时,直接对dict元素增加字段的方法
Jan 15 Python
解决django xadmin主题不显示和只显示bootstrap2的问题
Mar 30 Python
完美解决pycharm 不显示代码提示问题
Jun 02 Python
Python错误的处理方法
Jun 23 Python
python 通过使用Yolact训练数据集
Apr 06 Python
python 自动化偷懒的四个实用操作
python Tkinter的简单入门教程
PyQt5 显示超清高分辨率图片的方法
用Python提取PDF表格的方法
用Python提取PDF表格的方法
python实现自动化群控的步骤
Apr 11 #Python
python 调用js的四种方式
Apr 11 #Python
You might like
地球防卫队:陪着奥特曼打小怪兽的人类力量 那些经典队服
2020/03/08 日漫
mysql_fetch_row,mysql_fetch_array,mysql_fetch_assoc的区别
2009/04/24 PHP
在PHP中养成7个面向对象的好习惯
2010/07/17 PHP
php生成缩略图示例代码分享(使用gd库实现)
2014/01/20 PHP
php生成随机字符串可指定纯数字、纯字母或者混合的
2014/04/18 PHP
PHP编程中的__clone()方法使用详解
2015/11/27 PHP
jQuery 源代码显示控件 (Ajax加载方式).
2009/05/18 Javascript
JScript 脚本实现文件下载 一般用于下载木马
2009/10/29 Javascript
JavaScript 语法集锦 脚本之家基础推荐
2009/11/15 Javascript
js去字符串前后空格5种实现方法及比较
2013/04/03 Javascript
onbeforeunload与onunload事件异同点总结
2013/06/24 Javascript
纯Javascript实现Windows 8 Metro风格实现
2013/10/15 Javascript
js实现的后台左侧管理菜单代码
2015/09/11 Javascript
微信小程序模板之分页滑动栏
2017/02/10 Javascript
JavaScript中常见的八个陷阱总结
2017/06/28 Javascript
express 项目分层实践详解
2018/12/10 Javascript
简单实现vue中的依赖收集与响应的方法
2019/02/18 Javascript
微信小程序实现动态列表项的顺序加载动画
2019/07/25 Javascript
vue-form表单验证是否为空值的实例详解
2019/10/29 Javascript
vue-cli3中配置alias和打包加hash值操作
2020/09/04 Javascript
[48:53]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS VG第一场
2014/05/26 DOTA
python实现从web抓取文档的方法
2014/09/26 Python
详解Python文本操作相关模块
2017/06/22 Python
python脚本之一键移动自定格式文件方法实例
2019/09/02 Python
python两个_多个字典合并相加的实例代码
2019/12/26 Python
Windows系统下pycharm中的pip换源
2020/02/23 Python
高考考python编程是真的吗
2020/07/20 Python
基于python实现MQTT发布订阅过程原理解析
2020/07/27 Python
怀旧收藏品和经典纪念品:Betty’s Attic
2018/08/29 全球购物
如何在发生故障的节点上重新安装 SQL Server
2013/03/14 面试题
护士求职自荐信范文
2014/03/19 职场文书
迎七一演讲稿
2014/09/12 职场文书
院系推荐意见
2015/06/05 职场文书
工资证明范本
2015/06/12 职场文书
CSS 伪元素::marker详解
2021/06/26 HTML / CSS
python实现商品进销存管理系统
2022/05/30 Python