黑马程序员技术交流社区

标题: 加强笔记_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