python -- 名片管理系统

准备两个python 文件,一个cards_tool 装函数,一个cards_main运行程序

cards_tool:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2018/10/28 14:32
# @Author  : penny
# @Site    : 
# @File    : cards_def.py
# @Software: PyCharm
card_list=[]
# 显示主菜单
def show_main_menu():
    '''
    显示主菜单
    :return: 
    '''
    print("*"*50)
    print("欢迎使用【名片管理系统】V1.8")
    print("1.新建名片\n2.显示全部\n3.查询名片\n\n0.退出系统")
    print("*"*50)
    
# 新建名片
def creat_cards():
    '''
    新建名片
    :return:
    '''
    
    # 提示用户输入信息
    print("功能:新增名片")
    name_str = input("姓名:")
    phone_str = input("电话号码:")
    QQ_str = input("QQ:")
    email_str = input("邮箱:")
    
    # 将用户输入的信息放进字典里
    cards_dict = {
        "name":name_str,
        "phone":phone_str,
        "QQ":QQ_str,
        "email":email_str
    }
    
    # 将字典加入到列表中去
    card_list.append(cards_dict)
    
    print("添加%s的名片已经成功!" %cards_dict["name"])
# 显示全部
def show_all_cards():
    '''
    显示所有名片
    :return:
    '''
    print("功能:显示名片")
    # 如果系统内没有名片,提示用户新增名片
    if len(card_list)==0:
        print("目前没有名片,请新增名片!")
        return


    # 如果有名片,就显示全部
    else:
        show_find_dict()






# 查询名片
def find_cards():
    print("功能:查询名片")
    name = input("请输入您要查找的人的姓名:")
    # 遍历列表,如果匹配到了有这个姓名,继续
    for cards_dict in card_list:
        if cards_dict["name"] == name:
            show_find_dict()
            #  继续修改、删除、返回上级
            ope_find_cards(cards_dict)
            
    # 如果没有匹配到这个姓名, 提示错误,并返回
        break
    else:
        print("没有查找到您要找的人!")

def ope_find_cards(cards_dict):
    '''
    对找到的字典进行操作
    :param cards_dict: 
    :return: 
    '''
    ope_str = input("请选择您要进行的操作:[1]修改\t[2]删除\t[0]返回上一级\n请输入:")
    # 修改1
    if ope_str=="1":
        cards_dict["name"] = input_cards_info(cards_dict["name"],"姓名:")
        cards_dict["phone"] = input_cards_info(cards_dict["phone"],"电话:")
        cards_dict["QQ"] =input_cards_info(cards_dict["QQ"],"QQ:")
        cards_dict["email"] = input_cards_info(cards_dict["email"],"邮箱:")
        print("修改成功!")
    # 删除2
    elif ope_str=="2":
        # 找到这个列表,删除列表中的字典
        card_list.remove(cards_dict)
        print("删除成功!")
    
    # 返回上级0
    else:
        find_cards()
        
def input_cards_info(dict_value,tip_massage):
    '''
    对查找到的人进行修改删除
    :param dict_value: 原有字典的值
    :param tip_massage: 输入的值
    :return: 
    '''
    result_str = input(tip_massage)
    # 如果输入的内容长度大于0 ,则返回 输入的内容
    if len(result_str)>0:
        return result_str
        
    # 如果没有输入内容,则返回原来的字典内的值
    else:
        return dict_value
        
    

def show_find_dict():
    '''
    显示查询到的人
    :return:
    '''
    # 输出表头
    for i in ["姓名", '电话', 'QQ', '邮箱']:
        print(i, end="\t\t\t")
    print("")
    print("-" * 50)

    # 遍历列表中的字典中的每个值输出
    for cards_dict in card_list:
        print("%s\t\t%s\t\t%s\t\t%s" % (cards_dict["name"],
                                        cards_dict["phone"],
                                        cards_dict["QQ"],
                                        cards_dict["email"]))

cards_main:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2018/10/26 18:52
# @Author  : penny
# @Site    : 
# @File    : cards_main.py
# @Software: PyCharm

import card_tools

# 无限循环,由用户主动决定什么时候退出循环
while True:
    card_tools.show_menu()
    action_str = input("请选择操作功能:")
    print("您选择的功能是[%s]" % action_str)
    # 1,2,3针对名片进行操作
    if action_str in ["1","2","3"]:
        # 1.新建名片
        if action_str=="1":
            card_tools.creat_cards()
        # 2.显示全部
        if action_str=="2":
            card_tools.show_cards()
        # 3.查询名片
        if action_str=="3":
            card_tools.find_cards()

    # 0 退出系统
    elif action_str=="0":
        print("谢谢使用,您已退出系统!")
        break
    # 其他内容输入错误,需要提示重新弄输入
    else:
        print("输入错误,请重新选择!")

猜你喜欢

转载自blog.csdn.net/qq_43287650/article/details/83478963