系统需求
程序启动,显示名片管理系统欢迎界面,并显示功能菜单
欢迎使用【名片管理系统】V1.0
- 新建名片
- 显示全部
- 查询名片
- 退出系统
1.用户用数字选择不同的功能
2.根据功能选择,执行不同的功能
3.用户名片需要记录用户的 姓名、电话、QQ、邮件
4.如果查询到指定的名片,用户可以选择 修改 或者 删除 名片
源代码
cards_main() 主程序入口
cards_tool() 操作卡片方法
cards_main()
#! /Library/Frameworks/Python.framework/Versions/3.7/bin/python3
# 主入库文件
import cards_tool
# 无限循环,由用户主动决定什么时候退出循环
while True :
# 显示欢迎菜单
cards_tool.show_menu()
handler = input("请选择希望执行的操作:")
print("您选择的操作是【% s】" % handler)
user_input = ["0","1","2","3"]
if handler in user_input:
if handler=="0":
# print("用户输入的是%s,需要调用退出系统功能" % handler)
# 调用退出系统函数
# cards_tool.exit_card()
print("欢迎下次使用【名片管理系统】")
break
elif handler=="1":
# print("用户输入的是%s,需要调用新建名片功能" % handler)
# 调用新建名片函数
cards_tool.new_card()
# break
elif handler=="2":
# print("用户输入的是%s,需要调用显示全部功能" % handler)
# 调用显示全部函数
cards_tool.show_all()
# break
elif handler=="3":
# print("用户输入的是%s,需要调用查询名片功能" % handler)
# 调用查询名片函数
cards_tool.query_card()
# break
else:
print("用户输入的是%s,请重新输入" % handler)
cards_tool()
# 具体方法文件
# 记录所有名片的列表,里面的保存方式是字典
card_list = []
def show_menu():
"""显示菜单"""
print("**************************************************")
print("欢迎使用【名片管理系统】V1.0")
print("\n")
print("1. 新建名片")
print("2. 显示全部")
print("3. 查询名片")
print("\n")
print("0. 退出系统")
print("**************************************************")
def new_card():
"""
新增名片
:return:
"""
print("-"*50)
print("1---新增名片")
# 1. 提示用户输入名片的详细信息 姓名、电话、QQ、邮件
name = input("请输入姓名: ")
phone = input("请输入电话: ")
qq = input("请输入QQ: ")
mail = input("请输入邮件: ")
# 2.使用用户的输入的信息建立一个名片字典
dic = {
"name":name,
"phone":phone,
"qq":qq,
"mail":mail
}
print(dic)
# 3.将名片字典添加到列表中
# card_list.extend(dic) 不能用extend
card_list.append(dic)
# 4.告知用户输入成功
print("添加%s的名片成功" % name)
def show_all():
print("-" * 50)
# print("显示所有名片")
# 如果列表没有内容,不执行打印表头操作
if len(card_list)==0:
print("当前没有任何的名片,请选择新建名片")
return
# 打印表头
for header in ["姓名","电话","QQ","邮箱"]:
print(header,end="\t\t")
# 打印分隔符
print()
print("-" * 50)
# 遍历名片字典,输出所有值
for dic in card_list:
print("%s\t\t%s\t\t%s\t\t%s" % (dic["name"],
dic["phone"],
dic["qq"],
dic["mail"]))
# 打印分隔符
print("-" * 50)
def query_card():
"""
查找名片
:return:
"""
print("-" * 50)
print("3---查询名片")
# 1.提示用户输入要查找的姓名
find_name = input("请输入要搜索的用户姓名:")
# 2遍历名片列表,查询要搜索的姓名,如果没有,提示用户
for dic in card_list:
if dic["name"]==find_name:
print("找到了%s,信息如下" % find_name)
# 打印表头
print("姓名\t\t电话\t\tQQ\t\t邮箱")
# 打印分隔符
print()
print("-" * 50)
# 打印用户信息
print("%s\t\t%s\t\t%s\t\t%s" % (dic["name"],
dic["phone"],
dic["qq"],
dic["mail"]))
# 针对找到的名片需要进行修改和删除操作
deal_card(dic)
break
else:
print("抱歉,没有找到%s" % find_name)
def deal_card(find_dic):
"""
修改或者删除名片
:param find_dic: 要查找的用户信息
"""
print(find_dic)
action_str = input("请输入对名片的操作:【1】修改 【2】删除 【0】返回上一级菜单")
if action_str=="1":
find_dic["name"] = input_card_info(find_dic["name"],"姓名[回车不修改]:")
find_dic["phone"] = input_card_info(find_dic["phone"],"电话[回车不修改]:")
find_dic["qq"] = input_card_info(find_dic["qq"],"qq[回车不修改]:")
find_dic["mail"] = input_card_info(find_dic["mail"],"邮箱[回车不修改]:")
print("修改名片成功")
elif action_str=="2":
card_list.remove(find_dic)
print("删除名片成功!")
def input_card_info(dic_value,tip_message):
"""
判断用户输入的内容
:param dic_value: 字典中原有的值
:param tip_message: 控制台的提示信息
:return: 如果用户输入了内容,返回输入的内容,如果没有输入,返回原有的值
"""
result_str = input(tip_message)
if len(result_str)>0:
return result_str
else:
return dic_value
执行程序
- 方法1:在pycharm中直接执行
- 方法2:在终端中执行 python3 cards_main.py
- 方法3:在终端中执行./cards_main.py
方法3需要提前配置:
1.通过which python3找到python3的位置
2.将python3路径加在主程序cards_main.py上方 #! /Library/Frameworks/Python.framework/Versions/3.7/bin/python3
3.给文件赋值可执行权限 sudo chmod 777 cards_main.py
4.执行./cards_main.py
感悟
while TRUE:无限循环用的非常的秒,佩服!
输出的时候有制表符真的很美腻
return是个神操作,棒呆