菜单界面顾名思义,那么接下来就来演示下一个游戏界面。当我们程序启动的时候会有欢迎界面并且显示功能菜单。那么在本篇博客的内容当中我们也需要弄个菜单界面⇥〔名片管理系统〕那么接下来我们就来实现下吧(●'◡'●) 而菜单界面也很容易就能实现只需要print()即可实现(☆-v-)
㈠名片管理系统界面要求如下↓
—————————————————
[名片管理系统]→0.0
~~~~~~~~~~~~~~~~~
1.新建名片的管理人
2.显示全部的管理人
3.查询名片的管理人
0.名片管理系统退出
~~~~~~~~~~~~~~~~~
[名片管理系统]→0.0
—————————————————
㈡用户输入数字可以选择并实现不同的功能。
㈢根据不同的功能选择,执行不同的功能。
㈣用户的名片包含着:姓名、电话、年龄、学号。
㈤查询到(3.查询名片的管理人)的时候,可以选择修改或者是删除以及返回上级菜单的③个选项。没有查找到就输入没有找到xxx.
host_main().py ⇥ 主程序的功能,像名片管理系统的框架等...
functional_module.py ⇥ 保存所有名片的功能的函数,将会对名片管理系统实现 新增、查询、删除、修改,等功能可以封装在不同的函数当中去。
if str_n == "1" or str_n == "2" or str_n == "3":
if str_n in ["1","2","3"]
这两个代码实现的功能都是一样的也就是它们的效果都是一样的,在这里可能对于初学的小伙伴更加熟悉第一行的代码。那么在这里来说说第二行的代码是什么:in 针对列表进行判断,使用 in 当然好处是有的相比于 or 减少了复杂的逻辑条件的拼接。
Python 当中的 pass 是空语句,是为了保持程序结构的完整性。
pass 不做任何事情,一般用做占位语句。
while True:
使用字典可以记录每一张名片的详细信息。 使用列表可以统一所有的名片的字典。 如果对字典和列表不熟悉或者是忘记的话可以看看博主这两篇博客相信会对你有所帮助的↓ 🍊链接: 🍏链接: 定义名片列表变量 在 card_list 的文件顶部添加一个列表变量。 ⒈所有的名片在进行相关的操作的时候,都需要使用这个列表,所以应该顶一直程序的顶部 ⒉程序刚运行的时候,没有数据,所以是空列表。 一调多个
此时,这str_phone就是同步修改了。 return
import functional_module
while True:
# 显示功能菜单
functional_module.menu()
str_n = input('你要选择的操作是:')
print('你输入的操作是:[%s]'%str_n)
# 针对名片管理系统的操作
# 实现相关操作 # 如果在指定的序列中找到值返回 True,否则返回 False.(in针对列表进行判断)
if str_n == "1" or str_n == "2" or str_n == "3": # if str_n in ["1","2","3"] (同样ok)
# 新建名片
if str_n == "1":
functional_module.new_card()
# 显示全部名片
if str_n == "2":
functional_module.all_card()
# 查询名片
if str_n == "3":
functional_module.inquire_card()
# "0"退出名片管理系统
elif str_n == "0":
pass
print('小py提醒你退出名片管理系统')
break
# 输入错误
else:
print('你输入的相关操作错误,请重新选择:')
# 记录所有的名片字典
card_list = []
def menu():
# 显示菜单
print("—" * 30)
print("[名片管理系统]→0.0")
print("~" * 30)
print("1.新建名片的管理人")
print("2.显示全部的管理人")
print("3.查询名片的管理人")
print("0.名片管理系统退出")
print("~" * 30)
print("[名片管理系统]→0.0")
print("—" * 30)
def new_card():
print("^" * 30)
print('新增名片')
# 1.用户输入信息
str_name = input('请输入姓名:')
str_phone = input('请输入电话:')
str_age = input('请输入年龄:')
str_id = input('请输入学号:')
# 2.用户输入的信息建立一个名片字典
card_dict = {"name": str_name,
"phone": str_phone,
"age": str_age,
"id": str_id}
# 3.将字典追加到列表当中去 - append()
card_list.append(card_dict)
# 4.打印card_list
print(card_list)
# 5.提示成功
print('添加%s名片成功' % str_name)
def all_card():
# 没有添加名片的情况
if len(card_list) == 0:
pass
print('当前你还没有添加任何名片')
return # 下方代码不会执行
print("^" * 30)
print('显示所有名片')
# 表格
for name in ["姓名", "电话", "年龄", "学号"]:
pass
print(name, end="\t\t") # 不换行
print()
# 分割线
print('—' * 30)
# 遍历名片列表依次输出信息
for card_dict in card_list:
pass
print("%s\t\t%s\t\t%s\t\t%s" % (card_dict["name"], card_dict["phone"], card_dict["age"], card_dict["id"]))
def inquire_card():
print("^" * 30)
print('查询名片')
inguire_name = input('请输入你要查询的名片:')
# 遍历名片列表依次输出信息
for card_dict in card_list:
pass
# 判断姓名被找到(检查名片字典当中的name是否等于inguire_name当中的名片即可)
if card_dict['name'] == inguire_name:
pass
print('找到你要查询的名片%s' % inguire_name)
print('姓名\t\t电话\t\t年龄\t\t学号')
print('=' * 50)
print("%s\t\t%s\t\t%s\t\t%s" % (card_dict["name"], card_dict["phone"], card_dict["age"], card_dict["id"]))
# 针对修改以及删除的操作(封装函数)
deal_card(card_dict)
break # 找到就退出
else:
pass
print('您输入的名片错误,没有找到此人%s' % inguire_name)
def deal_card(find_dict):
pass
print(find_dict)
choice = input('请输入你要选择的操作:[1.修改]、[2.删除]、[0.返回上级菜单]:')
if choice == "1":
pass
find_dict["name"] = input_card(find_dict["name"], '姓名:')
find_dict["phone"] = input_card(find_dict["phone"], '电话:')
find_dict["age"] = input_card(find_dict["age"], '年龄:')
find_dict["id"] = input_card(find_dict["id"], '学号:')
print("修改名片成功")
elif choice == "2":
pass
card_list.remove(find_dict)
print("删除名片成功")
# 针对输入函数进行扩展
def input_card(dict_value, tip_message):
result_str = input(tip_message)
if len(result_str) > 0:
return result_str
else:
return dict_value
🍊查询名片的管理人
🍅1.修改
✨程序经过运行可以实现!(●'◡'●)✨