Python-名片管理系统(运用函数 文件)
文章目录
- 名片管理系统
- 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("名片夹为空,请先添加名片")continueprint("姓名\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}成功")breakprint("没有该名片")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}成功")breakprint("没有该名片")#找不到就提示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)breakelse:print("没有该名片") # 找不到就提示elif num==0:print("欢迎下次使用!")breakelse:print("请输入正确序号!")
9. 升级版-使用函数
方便查看和使用
def list_card():print("""1 查看名片列表2 添加名片3 修改名片4 删除名片5 查询名片0 退出系统""")num = int(input("请选择业务类型:"))return numdef 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}成功")breakelse: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}成功")breakelse: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)breakelse: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("欢迎下次使用")breakelse: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 numdef 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}成功")breakelse: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}成功")breakelse: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)breakelse: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("欢迎下次使用")breakelse:print("请输入正确序号")write_cards(cards)
main()
开心~

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
