Python-名片管理系统(运用函数 文件)

文章目录

  • 名片管理系统
          • 1.查看名片列表
          • 2.添加名片
          • 3.修改名片
          • 4.删除名片
          • 5.查询名片
          • 6.退出
          • 7.其他
          • 8.基础版
        • 9. 升级版-使用函数
        • 10.终极版-使用文件

名片管理系统

  • 名片夹-容器:列表[{名片}]
    • 名片:字典
      • 内容:姓名,年龄…
1.查看名片列表
  1. 遍历 名片夹(列表)
  2. 输出名片中的信息
2.添加名片
  1. 录入名片信息
  2. 合成一个名片(字典)
  3. 将名片追加到名片夹列表
3.修改名片
  1. 录入查询姓名
  2. 遍历名片夹 对比每个名片中的名字
  3. 如果找到就修改
    3.1. 重新录入新的名片信息
    3.2.更新旧字典名片
  4. 如果没有找到就提示名字错了
4.删除名片
  1. 录入查询姓名
  2. 遍历名片夹 对比每个名片中的名字
  3. 如果找到就删除
  4. 如果没有找到就提示名字错了
5.查询名片
  1. 录入查询姓名
  2. 遍历名片夹 对比每个名片中的名字
  3. 如果找到就输出
  4. 如果没有找到就提示名字错了
6.退出
  1. 如果输入正确指令,成功退出
7.其他
  1. 系统要一直循环 while True
  2. 输入不符合以上几项指令 提示"请输入正确指令"
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()
							开心~

在这里插入图片描述


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

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部