python客户管理系统视频_python视频学习笔记6(名片管理系统开发)

cards_main.py主函数

cards_tools.py

----------------------------------------------------------------------------------------------------------------------------------

cards_main.py

"""TODO 显示系统菜单,用于标记需要去做的工作

pass就是一个空语句,不做任何事情,一般用做占位语句

开发步骤思路讲解:

1.准备主模块和子模块。子模块放各种函数(将对名片的 **新增**、**查询**、**修改**、**删除** 等功能封装在不同的函数中

2.main函数先导入子函数模块,实现无限循环,主菜单展示,用户输入,字符串判断

3.子函数中先罗列出各个功能函数名称,而后将子函数安插到main函数中等待调用

4.开发子函数,完成show_menu

5.开发子函数,完成new_card

6.开发子函数,完成show_all

7.开发子函数,完成search_card

8.

"""

import cards_tools #导入要用到的模块

while True:#在开发软件时,如果 **不希望程序执行后** 立即退出,可以在程序中增加一个 **无限循环**

cards_tools.show_menu()#调用子函数中第一个方法

action = input("请选择操作的功能")

print("您选择的操作是:%s"%action)

if action in ["1","2","3"]:

#if action == "1" or action == "2" or action == "3":使用 `in` 针对 **列表** 判断,避免使用 `or` 拼接复杂的逻辑条件

if action =="1":

cards_tools.new_card()

elif action =="2":

cards_tools.show_all()

elif action =="3":

cards_tools.search_card()

elif action == "0":

print("欢迎再次使用")

break#和while一起用表示由用户来决定** 退出程序的时机

else:

print("输出错误,重新输入")

-------------------------------------------------------------------------------------------------------------------------------------

cards_tools.py

card_list = []

#程序就是用来处理数据的,而变量就是用来存储数据的

# 使用 **字典** 记录 **每一张名片** 的详细信息,使用 **列表** 统一记录所有的 **名片字典**

# 在 `cards_tools` 文件的顶部增加一个 **列表变量**,所有名片相关操作**,都需要使用这个列表,所以应该 **定义在程序的顶部**

def show_menu():

print("*"*50)

print("欢迎使用【菜单管理系统】V1.0")

print("")

print("1. 新建名片")

print("2. 显示全部")

print("3. 查询名片")

print("")

print("0. 退出系统")

print("*" * 50)

#增加名片

#1.定义一个列表变量在开头

#2.输入名片信息并保存到一个字典

#3.将字典添加到名片列表

def new_card():

print("-"*50)

print("功能:新建名片")

name = input("请输入姓名:") #提示用户依次输入名片信息

phone = input("请输入电话:")

qq = input("请输入 QQ 号码:")

email = input("请输入邮箱:")

card_dict = {"name":name,

"phone":phone,

"qq":qq,

"email":email}#将名片信息保存到一个字典

card_list.append(card_dict)#将字典添加到名片列表,这个名片列表是空的定义在开头

print(card_list)

print("成功添加%s的名片" % card_dict["name"])#提示名片添加完成

#查看所有名片

#增加标题

#遍历一遍列表

#增加没有名片记录判断

def show_all():

print("-" * 50)

print("功能:显示全部")

if len(card_list)==0:#增加没有名片记录判断

print("提示:没有任何名片记录")

return #如果在 `return` 后没有跟任何内容,只是表示该函数执行到此就不再执行后续的代码

for name in ["姓名", "电话", "QQ", "邮箱"]: # 打印表头

print(name, end="\t\t")#增加标题和使用 `\t` 显示

print("")

print("=" * 50)

for card_dict in card_list:

print("%s\t\t%s\t\t%s\t\t%s" % (card_dict["name"],

card_dict["phone"],

card_dict["qq"],

card_dict["email"]))

#搜索名片

#让用户输入需要搜索的姓名

#遍历字典

#搜索成功后开启一个新函数用来修改删除

def search_card():

print("-" * 50)

print("功能:搜索名片")

find_name = input("请输入要搜索的姓名:")# 1. 提示要搜索的姓名

for card_dict in card_list:# 2. 遍历字典

if card_dict["name"] == find_name:

print("%s\t\t\t%s\t\t\t%s\t\t\t%s" % (

card_dict["name"],

card_dict["phone"],

card_dict["qq"],

card_dict["email"]))

print("_"*40)

deal_card(card_dict) #3.下方开始定义修改删除的新函数

break

else:

print("没有找到 %s" % find_name)

#修改删除名片

#先让用户输入操作

#根据提示来做修改和删除方法

#开启新函数用来优化不想修改名片的功能

def deal_card(find_dict):#操作找到的名片字典,修改删除

print(find_dict)

action_str = input("请选择要执行的操作 "

"[1] 修改 [2] 删除 [0] 返回上级菜单")

if action_str == "1":

find_dict["name"] = input_card_info(find_dict["name"],"请输入姓名,回车不修改")

find_dict["phone"] = input_card_info(find_dict["phone"],"请输入电话,回车不修改")

find_dict["qq"] = input_card_info(find_dict["qq"],"请输入QQ,回车不修改")

find_dict["email"] = input_card_info(find_dict["email"],"请输入邮箱,回车不修改")#由于找到的字典记录已经在列表中保存,要修改名片记录,只需要把列表中对应的字典中每一个键值对的数据修改即可

elif action_str == "2":

card_list.remove(find_dict) #由于找到的字典记录已经在列表中保存,要删除名片记录,只需要把列表中对应的字典删除即可

print("删除成功")

#名片不想修改的情况

#定义原有值和输入值,有哪个返回哪个字段

def input_card_info(dict_value,tip_message):#:param dict_value: 字典原有值:param tip_message: 输入提示信息 :return: 如果输入,返回输入内容,否则返回字典原有值

result_str = input(tip_message) # 1. 提示用户输入内容

if len(result_str) > 0: # 2. 针对用户的输入进行判断,如果用户输入了内容,直接返回结果

return result_str

else:# 3. 如果用户没有输入内容,返回字典中原有的值`

return dict_value

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值