文章目录
- 名片管理系统
- 1.查看名片列表
- 2.添加名片
- 3.修改名片
- 4.删除名片
- 5.查询名片
- 6.退出
- 7.其他
- 8.基础版
- 9. 升级版-使用函数
- 10.终极版-使用文件
名片管理系统
- 名片夹-容器:列表[{名片}]
- 名片:字典
- 内容:姓名,年龄…
1.查看名片列表
- 遍历 名片夹(列表)
- 输出名片中的信息
2.添加名片
- 录入名片信息
- 合成一个名片(字典)
- 将名片追加到名片夹列表
3.修改名片
- 录入查询姓名
- 遍历名片夹 对比每个名片中的名字
- 如果找到就修改
3.1. 重新录入新的名片信息
3.2.更新旧字典名片 - 如果没有找到就提示名字错了
4.删除名片
- 录入查询姓名
- 遍历名片夹 对比每个名片中的名字
- 如果找到就删除
- 如果没有找到就提示名字错了
5.查询名片
- 录入查询姓名
- 遍历名片夹 对比每个名片中的名字
- 如果找到就输出
- 如果没有找到就提示名字错了
6.退出
- 如果输入正确指令,成功退出
7.其他
- 系统要一直循环 while True
- 输入不符合以上几项指令 提示"请输入正确指令"
8.基础版
print("""
************************
欢迎来到小林名片系统管理
************************
""")
cards=[
{"name":"张飞","age":28,"job":"经理","com":"牛肉馆"},
{"name": "貂蝉", "age": 18, "job": "总经理","com":"牛肉馆"}
]
while True:
print("""
1 查看名片列表
2 添加名片
3 修改名片
4 删除名片
5 查询名片
0 退出系统
""")
num =int(input("请选择业务类型:"))
if num == 1:
print("欢迎进入查看列表名片页面")
if len(cards)==0:
print("名片夹为空,请先添加名片")
continue
print("姓名\t年龄\t职位\t公司名称")
for card in cards:
print(f"{card['name']}\t{card['age']}\t{card['job']}\t{card['com']}")
elif num==2:
print("欢迎进入添加名片页面")
#录入信息
name=input("姓名")
age=input("年龄")
job=input("职位")
com=input("公司名称")
#合成字典
card={"name":name,"age":age,"job":job,"com":com}
print(card)
#追加到名片
cards.append(card)
print(f"成功添加{name}")
#修改名片
elif num==3:
print("欢迎进入修改名片页面")#进入修改页面
#查询出修改哪张名片
old_name=input("请输入修改名片名")
#遍历名片夹找出需要修改的名片
for card in cards:#card 是遍历出来后的所有名片
if card['name']==old_name:#在名片里通过键找到name的值 如果找到了
#重新录入内容
name = input("姓名")
age = input("年龄")
job = input("职位")
com = input("公司名称")
#更新名片内容
card.update({"name":name,"age":age,"job":job,"com":com})
print(f"修改{old_name}成功")
break
print("没有该名片")
elif num==4:
print("欢迎进入删除页面")
old_name = input("请输入删除的名片名")
# 遍历名片夹找出需要删除的名片
for card in cards: # card 是遍历出来后的所有名片
if card['name'] == old_name: # 在名片里通过键找到name的值 如果找到了
cards.remove(card)#删除
print(f"删除{old_name}成功")
break
print("没有该名片")#找不到就提示
elif num==5:
print("欢迎进入查询页面")
old_name = input("请输入查询名")
# 遍历名片夹找出需要查询的名片
for card in cards: # card 是遍历出来后的所有名片
if card['name'] == old_name: # 在名片里通过键找到name的值 如果找到了
info=f"""
*****************************
{card['com']}
{card['name']}({card['job']})
{card['age']}
*****************************
"""
print(info)
break
else:
print("没有该名片") # 找不到就提示
elif num==0:
print("欢迎下次使用!")
break
else:
print("请输入正确序号!")
9. 升级版-使用函数
方便查看和使用
def list_card():
print("""
1 查看名片列表
2 添加名片
3 修改名片
4 删除名片
5 查询名片
0 退出系统
""")
num = int(input("请选择业务类型:"))
return num
def look(cards):
"""
查看名片列表
:param cards:
:return:
"""
print("欢迎进入查看列表名片页面")
if len(cards) == 0:
print("名片夹为空,请先添加名片")
print("姓名\t年龄\t职位\t公司名称")
for card in cards:
print(f"{card['name']}\t{card['age']}\t{card['job']}\t{card['com']}")
def add(cards):
"""
添加名片
:return:
"""
print("欢迎进入添加名片页面")
# 录入信息
name = input("姓名")
age = input("年龄")
job = input("职位")
com = input("公司名称")
card = {"name": name, "age": age, "job": job, "com": com}
print(card)
cards.append(card)
print(f"成功添加{name}")
def change(cards):
"""
修改名片
:param cards: 名片夹
:return:
"""
print("欢迎进入修改名片页面") # 进入修改页面
# 查询出修改哪张名片
old_name = input("请输入修改名片名")
# 遍历名片夹找出需要修改的名片
for card in cards: # card 是遍历出来后的所有名片
if card['name'] == old_name: # 在名片里通过键找到name的值 如果找到了
# 重新录入内容
name = input("姓名")
age = input("年龄")
job = input("职位")
com = input("公司名称")
# 更新名片内容
card.update({"name": name, "age": age, "job": job, "com": com})
print(f"修改{old_name}成功")
break
else:
print("没有该名片")
def delete(cards):
"""
删除列表
:param cards: 名片夹
:return:
"""
print("欢迎进入删除页面")
old_name = input("请输入删除的名片名")
# 遍历名片夹找出需要删除的名片
for card in cards: # card 是遍历出来后的所有名片
if card['name'] == old_name: # 在名片里通过键找到name的值 如果找到了
cards.remove(card) # 删除
print(f"删除{old_name}成功")
break
else:
print("没有该名片") # 找不到就提示
def selete(cards):
"""
查看名片
:param cards: 名片夹
:return:
"""
print("欢迎进入查询页面")
old_name = input("请输入查询名")
# 遍历名片夹找出需要查询的名片
for card in cards: # card 是遍历出来后的所有名片
if card['name'] == old_name: # 在名片里通过键找到name的值 如果找到了
info = f"""
*****************************
{card['com']}
{card['name']}({card['job']})
{card['age']}
*****************************
"""
print(info)
break
else:
print("没有该名片!") # 找不到就提示
def main():
"""
名片管理系统
:return:
"""
print("""
************************
欢迎来到小林名片系统管理
************************
""")
cards = [#准备文件夹
]
while True:
num=list_card()
if num == 1:
look(cards)#查看名片列表
elif num == 2:
add(cards)#添加名片
elif num == 3: # 修改名片
change(cards)
elif num == 4:
delete(cards)#删除名片
elif num == 5:
selete(cards)#查询名片
elif num == 0:
print("欢迎下次使用")
break
else:
print("请输入正确序号")
main()
10.终极版-使用文件
账号信息需要永久保存
def read_cards(cards):
"""
读取文件中数据到文件夹
:param cards: 文件夹
:return:
"""
#打开文件
fp=open("./cards.cvs","r",encoding="utf-8")
#读取文件
lines=fp.readlines()
#print(lines)
for l in lines:
tmp=l.strip().split(",")#获取名片列表信息
#print(tmp) ['张飞', '男', '经理', '啦啦啦']
#组装成字典添加到名片夹中
card={"name":tmp[0],"age":tmp[1],"job":tmp[2],"com":tmp[3]}
cards.append(card)
#关闭文件
fp.close()
def list_card():
print("""
1 查看名片列表
2 添加名片
3 修改名片
4 删除名片
5 查询名片
0 退出系统
""")
num = int(input("请选择业务类型:"))
return num
def look(cards):
"""
查看名片列表
:param cards:
:return:
"""
print("欢迎进入查看列表名片页面")
if len(cards) == 0:
print("名片夹为空,请先添加名片")
print("姓名\t年龄\t职位\t公司名称")
for card in cards:
print(f"{card['name']}\t{card['age']}\t{card['job']}\t{card['com']}")
def add(cards):
"""
添加名片
:return:
"""
print("欢迎进入添加名片页面")
# 录入信息
name = input("姓名")
age = input("年龄")
job = input("职位")
com = input("公司名称")
card = {"name": name, "age": age, "job": job, "com": com}
print(card)
cards.append(card)
print(f"成功添加{name}")
def change(cards):
"""
修改名片
:param cards: 名片夹
:return:
"""
print("欢迎进入修改名片页面") # 进入修改页面
# 查询出修改哪张名片
old_name = input("请输入修改名片名")
# 遍历名片夹找出需要修改的名片
for card in cards: # card 是遍历出来后的所有名片
if card['name'] == old_name: # 在名片里通过键找到name的值 如果找到了
# 重新录入内容
name = input("姓名")
age = input("年龄")
job = input("职位")
com = input("公司名称")
# 更新名片内容
card.update({"name": name, "age": age, "job": job, "com": com})
print(f"修改{old_name}成功")
break
else:
print("没有该名片")
def delete(cards):
"""
删除列表
:param cards: 名片夹
:return:
"""
print("欢迎进入删除页面")
old_name = input("请输入删除的名片名")
# 遍历名片夹找出需要删除的名片
for card in cards: # card 是遍历出来后的所有名片
if card['name'] == old_name: # 在名片里通过键找到name的值 如果找到了
cards.remove(card) # 删除
print(f"删除{old_name}成功")
break
else:
print("没有该名片") # 找不到就提示
def selete(cards):
"""
查看名片
:param cards: 名片夹
:return:
"""
print("欢迎进入查询页面")
old_name = input("请输入查询名")
# 遍历名片夹找出需要查询的名片
for card in cards: # card 是遍历出来后的所有名片
if card['name'] == old_name: # 在名片里通过键找到name的值 如果找到了
info = f"""
*****************************
{card['com']}
{card['name']}({card['job']})
{card['age']}
*****************************
"""
print(info)
break
else:
print("没有该名片!") # 找不到就提示
def write_cards(cards):
"""
写数据到文件中(以覆盖 w 方式写入)
:param cards: 名片夹
:return:
"""
# 打开文件
fp = open("./cards.cvs","w",encoding="utf-8")
# 读写文件
# 遍历名片夹
for card in cards:
fp.write("{name},{age},{job},{com}\n".format(**card))
# 关闭文件
fp.close()
def main():
"""
名片管理系统
:return:
"""
print("""
************************
欢迎来到小林名片系统管理
************************
""")
cards = [#准备文件夹
]
read_cards(cards)
while True:
num=list_card()
if num == 1:
look(cards)#查看名片列表
elif num == 2:
add(cards)#添加名片
elif num == 3: # 修改名片
change(cards)
elif num == 4:
delete(cards)#删除名片
elif num == 5:
selete(cards)#查询名片
elif num == 0:
print("欢迎下次使用")
break
else:
print("请输入正确序号")
write_cards(cards)
main()
开心~