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中用Spark模块的使用教程
Apr 13 Python
最大K个数问题的Python版解法总结
Jun 16 Python
django实现前后台交互实例
Aug 07 Python
python书籍信息爬虫实例
Mar 19 Python
Django框架实现逆向解析url的方法
Jul 04 Python
Python实现的tcp端口检测操作示例
Jul 24 Python
对python3中, print横向输出的方法详解
Jan 28 Python
Pandas DataFrame中的tuple元素遍历的实现
Oct 23 Python
Python中顺序表原理与实现方法详解
Dec 03 Python
如何使用python的ctypes调用医保中心的dll动态库下载医保中心的账单
May 24 Python
Python面向对象多态实现原理及代码实例
Sep 16 Python
Python 机器学习工具包SKlearn的安装与使用
May 14 Python
python 自动化偷懒的四个实用操作
python Tkinter的简单入门教程
PyQt5 显示超清高分辨率图片的方法
用Python提取PDF表格的方法
用Python提取PDF表格的方法
python实现自动化群控的步骤
Apr 11 #Python
python 调用js的四种方式
Apr 11 #Python
You might like
PHP 类商品秒杀计时实现代码
2010/05/05 PHP
xml分页+ajax请求数据源+dom取结果实例代码
2008/10/31 Javascript
对xmlHttp对象的理解
2011/01/17 Javascript
中文路径导致unitpngfix.js不正常的解决方法
2013/06/26 Javascript
javascript判断数组内是否重复的方法
2015/04/21 Javascript
nodejs导出excel的方法
2015/06/30 NodeJs
Javascript别踩白块儿(钢琴块儿)小游戏实现代码
2017/07/20 Javascript
2种简单的js倒计时方式
2017/10/20 Javascript
React-native桥接Android原生开发详解
2018/01/17 Javascript
jQuery中each方法的使用详解
2018/03/18 jQuery
200行HTML+JavaScript实现年会抽奖程序
2019/01/22 Javascript
p5.js临摹动态图形的方法
2019/10/23 Javascript
[02:30]联想杯DOTA2完美世界全国高校联赛—北京站现场
2015/11/16 DOTA
[01:06:32]DOTA2上海特级锦标赛D组资格赛#1 EG VS VP第一局
2016/02/28 DOTA
python 中的列表解析和生成表达式
2011/03/10 Python
解决Django模板无法使用perms变量问题的方法
2017/09/10 Python
python使用xpath中遇到:到底是什么?
2018/01/04 Python
一个简单的python爬虫程序 爬取豆瓣热度Top100以内的电影信息
2018/04/17 Python
python批量将excel内容进行翻译写入功能
2019/10/10 Python
python cv2读取rtsp实时码流按时生成连续视频文件方式
2019/12/25 Python
Python通过VGG16模型实现图像风格转换操作详解
2020/01/16 Python
python递归函数求n的阶乘,优缺点及递归次数设置方式
2020/04/02 Python
Python通过getattr函数获取对象的属性值
2020/10/16 Python
如何创建一个Flask项目并进行简单配置
2020/11/18 Python
Clarks鞋美国官网:全球领军鞋履品牌
2017/05/13 全球购物
纽约复古灵感的现代珠宝品牌:Lulu Frost
2018/03/03 全球购物
英国儿童设计师服装和玩具购物网站:Zac & Lulu
2020/10/19 全球购物
UNIX文件系统分类
2014/11/11 面试题
化工工艺专业求职信
2013/09/22 职场文书
技校毕业生的自我评价
2013/12/27 职场文书
公益广告宣传方案
2014/02/28 职场文书
庆六一文艺汇演活动方案
2014/08/26 职场文书
2014小学语文教师个人工作总结
2014/12/03 职场文书
家长通知书家长意见
2014/12/30 职场文书
小学信息技术教学反思
2016/02/16 职场文书
centos8安装nginx1.9.1的详细过程
2021/08/02 Servers