python实现简易名片管理系统

 更新时间:2021年04月11日 09:51:03   作者:我是小海星  
这篇文章主要为大家详细介绍了python实现简易名片管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了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 playwright--pytest-playwright、pytest-base-url插件编写用例

    python playwright--pytest-playwright、pytest-base-url插件编

    这篇文章主要介绍了python playwright--pytest-playwright、pytest-base-url插件编写用例,它提供上下文隔离,开箱即用地在多个浏览器配置上运行,它继承了pytest框架,以及支持playwright的一些基础使用,需要的朋友可以参考下
    2023-05-05
  • python对二维数组赋值问题

    python对二维数组赋值问题

    这篇文章主要介绍了python对二维数组赋值问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • Python编程实现双击更新所有已安装python模块的方法

    Python编程实现双击更新所有已安装python模块的方法

    这篇文章主要介绍了Python编程实现双击更新所有已安装python模块的方法,涉及Python针对模块操作命令的相关封装与调用技巧,需要的朋友可以参考下
    2017-06-06
  • Python调用C语言的实现

    Python调用C语言的实现

    这篇文章主要介绍了Python调用C语言的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • python正则表达式抓取成语网站

    python正则表达式抓取成语网站

    做NLPproject时需要一个成语库,我需要的是纯成语,网上找的都是有详细解释的。于是自己写了一个爬成语的python程序
    2013-11-11
  • python-docx如何删除所有bookmarks

    python-docx如何删除所有bookmarks

    在Python-docx库中,虽然没有直接删除书签的功能,但可以通过操作XML元素,遍历文档结构并删除指定元素来实现删除所有书签的目的,首先要明白书签在XML文件中的位置,然后利用Python-docx提供的element元素遍历并删除特定的书签元素
    2024-09-09
  • Python黑魔法远程控制开机的实例

    Python黑魔法远程控制开机的实例

    这篇文章主要介绍了Python黑魔法远程控制开机的实例,文中有非常详细的代码示例,对正在学习python的小伙伴们有很大的帮助,需要的朋友可以参考下
    2021-04-04
  • Python中tkinter的用户登录管理的实现

    Python中tkinter的用户登录管理的实现

    这篇文章主要介绍了Python中tkinter的用户登录管理的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • Python调整PDF页面尺寸大小的两种方法

    Python调整PDF页面尺寸大小的两种方法

    利用Python语言的高效性和灵活性,再结合Spire.PDF for Python 库的强大功能,我们可以通过Python代码轻松实现对PDF页面的批量调整,在这篇文章中,我们将介绍两种调整PDF页面大小的方法,感兴趣的朋友可以参考下
    2024-05-05
  • python和pyqt-tools安装位置图文详解

    python和pyqt-tools安装位置图文详解

    查询Python安装位置可通过命令行输入import sys和sys.path实现,而Python-tools的安装位置则可在Python文件夹内找到,本文介绍了如何查询Python及其工具包PyQt-tools的安装位置,便于用户进行相关设置或调试,更多关于Python安装和配置的内容,可查阅脚本之家的相关文章
    2024-09-09

最新评论