zoukankan      html  css  js  c++  java
  • python视频学习笔记6(名片管理系统开发)

    
    
    cards_main.py主函数

    cards_tools.py

     ----------------------------------------------------------------------------------------------------------------------------------

    cards_main.py
    """TODO 显示系统菜单,用于标记需要去做的工作
    pass就是一个空语句,不做任何事情,一般用做占位语句
    开发步骤思路讲解:
    1.准备主模块和子模块。子模块放各种函数(将对名片的 **新增**、**查询**、**修改**、**删除** 等功能封装在不同的函数中
    2.main函数先导入子函数模块,实现无限循环,主菜单展示,用户输入,字符串判断
    3.子函数中先罗列出各个功能函数名称,而后将子函数安插到main函数中等待调用
    4.开发子函数,完成show_menu
    5.开发子函数,完成new_card
    6.开发子函数,完成show_all
    7.开发子函数,完成search_card
    8.
    """
    import cards_tools #导入要用到的模块
    while True:#在开发软件时,如果 **不希望程序执行后** 立即退出,可以在程序中增加一个 **无限循环**
    cards_tools.show_menu()#调用子函数中第一个方法
    action = input("请选择操作的功能")
    print("您选择的操作是:%s"%action)
    if action in ["1","2","3"]:
    #if action == "1" or action == "2" or action == "3":使用 `in` 针对 **列表** 判断,避免使用 `or` 拼接复杂的逻辑条件
    if action =="1":
    cards_tools.new_card()
    elif action =="2":
    cards_tools.show_all()
    elif action =="3":
    cards_tools.search_card()
    elif action == "0":
    print("欢迎再次使用")
    break#和while一起用表示由用户来决定** 退出程序的时机
    else:
    print("输出错误,重新输入")

    -------------------------------------------------------------------------------------------------------------------------------------
    cards_tools.py
    card_list = []
    #程序就是用来处理数据的,而变量就是用来存储数据的
    # 使用 **字典** 记录 **每一张名片** 的详细信息,使用 **列表** 统一记录所有的 **名片字典**
    # 在 `cards_tools` 文件的顶部增加一个 **列表变量**,所有名片相关操作**,都需要使用这个列表,所以应该 **定义在程序的顶部**

    def show_menu():
    print("*"*50)
    print("欢迎使用【菜单管理系统】V1.0")
    print("")
    print("1. 新建名片")
    print("2. 显示全部")
    print("3. 查询名片")
    print("")
    print("0. 退出系统")
    print("*" * 50)

    #增加名片
    #1.定义一个列表变量在开头
    #2.输入名片信息并保存到一个字典
    #3.将字典添加到名片列表
    def new_card():
    print("-"*50)
    print("功能:新建名片")
    name = input("请输入姓名:") #提示用户依次输入名片信息
    phone = input("请输入电话:")
    qq = input("请输入 QQ 号码:")
    email = input("请输入邮箱:")
    card_dict = {"name":name,
    "phone":phone,
    "qq":qq,
    "email":email}#将名片信息保存到一个字典
    card_list.append(card_dict)#将字典添加到名片列表,这个名片列表是空的定义在开头
    print(card_list)
    print("成功添加%s的名片" % card_dict["name"])#提示名片添加完成

    #查看所有名片
    #增加标题
    #遍历一遍列表
    #增加没有名片记录判断
    def show_all():
    print("-" * 50)
    print("功能:显示全部")
    if len(card_list)==0:#增加没有名片记录判断
    print("提示:没有任何名片记录")
    return #如果在 `return` 后没有跟任何内容,只是表示该函数执行到此就不再执行后续的代码
    for name in ["姓名", "电话", "QQ", "邮箱"]: # 打印表头
    print(name, end=" ")#增加标题和使用 ` ` 显示
    print("")
    print("=" * 50)
    for card_dict in card_list:

    print("%s %s %s %s" % (card_dict["name"],
    card_dict["phone"],
    card_dict["qq"],
    card_dict["email"]))
    #搜索名片
    #让用户输入需要搜索的姓名
    #遍历字典
    #搜索成功后开启一个新函数用来修改删除
    def search_card():
    print("-" * 50)
    print("功能:搜索名片")
    find_name = input("请输入要搜索的姓名:")# 1. 提示要搜索的姓名
    for card_dict in card_list:# 2. 遍历字典
    if card_dict["name"] == find_name:
    print("%s %s %s %s" % (
    card_dict["name"],
    card_dict["phone"],
    card_dict["qq"],
    card_dict["email"]))
    print("_"*40)
    deal_card(card_dict) #3.下方开始定义修改删除的新函数
    break
    else:
    print("没有找到 %s" % find_name)

    #修改删除名片
    #先让用户输入操作
    #根据提示来做修改和删除方法
    #开启新函数用来优化不想修改名片的功能
    def deal_card(find_dict):#操作找到的名片字典,修改删除
    print(find_dict)
    action_str = input("请选择要执行的操作 "
    "[1] 修改 [2] 删除 [0] 返回上级菜单")
    if action_str == "1":
    find_dict["name"] = input_card_info(find_dict["name"],"请输入姓名,回车不修改")
    find_dict["phone"] = input_card_info(find_dict["phone"],"请输入电话,回车不修改")
    find_dict["qq"] = input_card_info(find_dict["qq"],"请输入QQ,回车不修改")
    find_dict["email"] = input_card_info(find_dict["email"],"请输入邮箱,回车不修改")#由于找到的字典记录已经在列表中保存,要修改名片记录,只需要把列表中对应的字典中每一个键值对的数据修改即可
    elif action_str == "2":
    card_list.remove(find_dict) #由于找到的字典记录已经在列表中保存,要删除名片记录,只需要把列表中对应的字典删除即可
    print("删除成功")

    #名片不想修改的情况
    #定义原有值和输入值,有哪个返回哪个字段
    def input_card_info(dict_value,tip_message):#:param dict_value: 字典原有值:param tip_message: 输入提示信息 :return: 如果输入,返回输入内容,否则返回字典原有值
    result_str = input(tip_message) # 1. 提示用户输入内容
    if len(result_str) > 0: # 2. 针对用户的输入进行判断,如果用户输入了内容,直接返回结果
    return result_str
    else:# 3. 如果用户没有输入内容,返回字典中原有的值`
    return dict_value
  • 相关阅读:
    pagic Deno + React 驱动的静态网站生成器 入门
    antd Form.Item label添加解释信息
    deno可以通过url引入标准库,运行时自动下载,下载到哪里呢
    如何查看github开源项目star趋势
    使用deno开发post请求,get请求,监测文件变化自动重启(类似于nodemon)
    windows安装deno
    react 轮播图 react-slick
    display:flex 元素垂直居中,有间距,右对齐
    Java对map键名进行顺序排序后转为字符串
    IDEA快捷键大全
  • 原文地址:https://www.cnblogs.com/yinlili/p/11164601.html
Copyright © 2011-2022 走看看