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妹子图简单爬虫实例
Jul 07 Python
python中format()函数的简单使用教程
Mar 14 Python
python 列表降维的实例讲解
Jun 28 Python
Python饼状图的绘制实例
Jan 15 Python
python中logging模块的一些简单用法的使用
Feb 22 Python
python 自动轨迹绘制的实例代码
Jul 05 Python
Python 实现取多维数组第n维的前几位
Nov 26 Python
3种python调用其他脚本的方法
Jan 06 Python
python框架flask入门之路由及简单实现方法
Jun 07 Python
python 模拟登陆163邮箱
Dec 15 Python
pycharm 配置svn的图文教程(手把手教你)
Jan 15 Python
python内置模块之上下文管理contextlib
Jun 14 Python
python 自动化偷懒的四个实用操作
python Tkinter的简单入门教程
PyQt5 显示超清高分辨率图片的方法
用Python提取PDF表格的方法
用Python提取PDF表格的方法
python实现自动化群控的步骤
Apr 11 #Python
python 调用js的四种方式
Apr 11 #Python
You might like
超外差式晶体管收音机的组装与统调
2021/03/01 无线电
php数组函数序列之in_array() 查找数组值是否存在
2011/10/29 PHP
JavaScript TO HTML 转换
2006/06/26 Javascript
javascript 使td内容不换行不撑开
2012/11/29 Javascript
JS上传图片前的限制包括(jpg jpg gif及大小高宽)等
2012/12/19 Javascript
window.showModalDialog参数传递中含有特殊字符的处理方法
2013/06/06 Javascript
jquery datatable后台封装数据示例代码
2014/08/07 Javascript
2014年最火的Node.JS后端框架推荐
2014/10/27 Javascript
node.js中的fs.writeFile方法使用说明
2014/12/14 Javascript
javascript中类的定义方式详解(四种方式)
2015/12/22 Javascript
使用vue.js开发时一些注意事项
2016/04/27 Javascript
jquery遍历标签中自定义的属性方法
2016/09/17 Javascript
javascript常用的设计模式
2017/02/09 Javascript
如何使用JS在HTML中自定义字符串格式化
2017/07/20 Javascript
Vue运用transition实现过渡动画
2019/05/06 Javascript
js校验开始时间和结束时间
2020/05/26 Javascript
React倒计时功能实现代码——解耦通用
2020/09/18 Javascript
详解在Python程序中解析并修改XML内容的方法
2015/11/16 Python
python调用Delphi写的Dll代码示例
2017/12/05 Python
python实现对输入的密文加密
2019/03/20 Python
python批量识别图片指定区域文字内容
2019/04/30 Python
python爬虫租房信息在地图上显示的方法
2019/05/13 Python
使用Keras实现Tensor的相乘和相加代码
2020/06/18 Python
matplotlib 范围选区(SpanSelector)的使用
2021/02/24 Python
Python如何使用神经网络进行简单文本分类
2021/02/25 Python
10 套华丽的CSS3 按钮小结
2012/10/03 HTML / CSS
什么是GWT的Entry Point
2013/08/16 面试题
董事长职责范文
2013/11/08 职场文书
大学生预备党员自我评价分享
2013/11/16 职场文书
大学生求职自荐信
2013/12/12 职场文书
餐饮总经理岗位职责
2014/03/07 职场文书
环境科学专业求职信
2014/08/04 职场文书
2014年信息宣传工作总结
2014/12/18 职场文书
求职简历自我评价怎么写
2015/03/10 职场文书
返乡农民工证明
2015/06/24 职场文书
MySQL完整性约束的定义与实例教程
2021/05/30 MySQL