黑马程序员技术交流社区
标题:
加强笔记_day1(中)
[打印本页]
作者:
小江哥
时间:
2018-10-10 14:32
标题:
加强笔记_day1(中)
01.新增名⽚
3.1功能分析
1.提示⽤户依次输⼊名⽚信息
2.将名⽚信息保存到⼀个字典
3.将字典添加到名⽚列表
4.提示名⽚添加完成
3.2实现 new_card ⽅法
根据步骤实现代码
def new_card():
"""新建名⽚"""
print("-" * 50)
print("功能:新建名⽚")
# 1. 提示⽤户输⼊名⽚信息name = input("请输⼊姓名:") phone = input("请输⼊电话:")
qq = input("请输⼊ QQ 号码:") email = input("请输⼊邮箱:")
# 2. 将⽤户信息保存到⼀个字典
card_dict = {"name": name,
"phone": phone, "qq": qq, "email": email}
# 3. 将⽤户字典添加到名⽚列表
card_list.append(card_dict) print(card_list)
# 4. 提示添加成功信息
print("成功添加 %s 的名⽚" % card_dict["name"])
技巧:在 PyCharm 中,可以使⽤ SHIFT + F6 统⼀修改变量名
02.显示所有名⽚
4.1功能分析
循环遍历名⽚列表,顺序显示每⼀个字典的信息
4.2基础代码实现
def show_all():
"""显示全部"""
print("-" * 50)
print("功能:显示全部")
for card_dict in card_list: print(card_dict)
显示效果不好!
4.3增加标题和使⽤\t 显示
def show_all():
"""显示全部
"""
print("-" * 50)
print("功能:显示全部")
# 打印表头
for name in ["姓名", "电话", "QQ", "邮箱"]: print(name, end="\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"]))
4.4增加没有名⽚记录判断
def show_all():
"""显示全部
"""
print("-" * 50)
print("功能:显示全部")
# 1. 判断是否有名⽚记录
if len(card_list) == 0:
print("提示:没有任何名⽚记录")
Return
注意
在函数中使⽤ return 表示返回
如果在 return 后没有跟任何内容,只是表示该函数执⾏到此就不再执⾏后续的代码
03.查询名⽚
5.1功能分析
1.提示⽤户要搜索的姓名
2.根据⽤户输⼊的姓名遍历列表
3.搜索到指定的名⽚后,再执⾏后续的操作
5.2代码实现
查询功能实现
def search_card():
"""搜索名⽚
"""
print("-" * 50)
print("功能:搜索名⽚")
# 1. 提示要搜索的姓名
find_name = input("请输⼊要搜索的姓名:")
# 2. 遍历字典
for card_dict in card_list:
if card_dict["name"] == find_name:
print("姓名\t\t\t电话\t\t\tQQ\t\t\t邮箱") print("-" * 40)
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)
# TODO(⼩明) 针对找到的字典进⾏后续操作:修改/删除
break
else:
print("没有找到 %s" % find_name)
增加名⽚操作函数:修改/删除/返回主菜单
def deal_card(find_dict):
"""操作搜索到的名⽚字典
:param find_dict:找到的名⽚字典"""
print(find_dict)
action_str = input("请选择要执⾏的操作 "
"[1] 修改 [2] 删除 [0] 返回上级菜单")
if action == "1":
print("修改") elif action == "2":
print("删除")
04.修改和删除
6.1查询成功后删除名⽚
由于找到的字典记录已经在列表中保存
要删除名⽚记录,只需要把列表中对应的字典删除即可
elif action == "2": card_list.remove(find_dict)
print("删除成功")
6.2修改名⽚
由于找到的字典记录已经在列表中保存
要修改名⽚记录,只需要把列表中对应的字典中每⼀个键值对的数据修改即可
if action == "1":
find_dict["name"] = input("请输⼊姓名:") find_dict["phone"] = input("请输⼊电话:") find_dict["qq"] = input(" 请 输 ⼊ QQ:") find_dict["email"] = input("请输⼊邮件:")
print("%s 的名⽚修改成功" % find_dict["name"])
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2