准备两个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("输入错误,请重新选择!")