zoukankan      html  css  js  c++  java
  • python名片管理系统

     1、代码:

    (1)主程序

    #!/usr/bin/env python
    # -*- coding: UTF-8 -*-
    
    import cards_tools
    
    # 无限循环,由用户主动决定什么时候退出循环!
    while True:
    
        # 显示功能菜单
        cards_tools.show_menu()
    
        action_str = input("请选择希望执行的操作:")
        print("您选择的操作是【%s】" % action_str)
    
        # 1,2,3 针对名片的操作
        if action_str in ["1", "2", "3"]:
    
            # 新增名片
            if action_str == "1":
                cards_tools.new_card()
            # 显示全部
            elif action_str == "2":
                cards_tools.show_all()
            # 查询名片
            elif action_str == "3":
                cards_tools.search_card()
    
        # 0 退出系统
        elif action_str == "0":
    
            print("欢迎再次使用【名片管理系统】")
    
            break
            # 如果在开发程序时,不希望立刻编写分支内部的代码
            # 可以使用 pass 关键字,表示一个占位符,能够保证程序的代码结构正确!
            # 程序运行时,pass 关键字不会执行任何的操作!
            # pass
        # 其他内容输入错误,需要提示用户
        else:
            print("您输入的不正确,请重新选择")
    View Code

    (2)功能程序

    #!/usr/bin/env python
    # -*- coding: UTF-8 -*-
    
    # 记录所有的名片字典
    card_list = []
    
    
    def show_menu():
    
        """显示菜单"""
        print("*" * 50)
        print("欢迎使用【名片管理系统】V 1.0")
        print("")
        print("1. 新增名片")
        print("2. 显示全部")
        print("3. 搜索名片")
        print("")
        print("0. 退出系统")
        print("*" * 50)
    
    
    def new_card():
    
        """新增名片"""
        print("-" * 50)
        print("新增名片")
    
        # 1. 提示用户输入名片的详细信息
        name_str = input("请输入姓名:")
        phone_str = input("请输入电话:")
        qq_str = input("请输入QQ:")
        email_str = input("请输入邮箱:")
    
        # 2. 使用用户输入的信息建立一个名片字典
        card_dict = {"name": name_str,
                     "phone": phone_str,
                     "qq": qq_str,
                     "email": email_str}
    
        # 3. 将名片字典添加到列表中
        card_list.append(card_dict)
    
        print(card_list)
    
        # 4. 提示用户添加成功
        print("添加 %s 的名片成功!" % name_str)
    
    
    def show_all():
    
        """显示所有名片"""
        print("-" * 50)
        print("显示所有名片")
    
        # 判断是否存在名片记录,如果没有,提示用户并且返回
        if len(card_list) == 0:
    
            print("当前没有任何的名片记录,请使用新增功能添加名片!")
    
            # return 可以返回一个函数的执行结果
            # 下方的代码不会被执行
            # 如果 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("搜索名片")
    
        # 1. 提示用户输入要搜索的姓名
        find_name = input("请输入要搜索的姓名:")
    
        # 2. 遍历名片列表,查询要搜索的姓名,如果没有找到,需要提示用户
        for card_dict in card_list:
    
            if card_dict["name"] == find_name:
    
                print("姓名		电话		QQ		邮箱")
                print("=" * 50)
                print("%s		%s		%s		%s" % (card_dict["name"],
                                                card_dict["phone"],
                                                card_dict["qq"],
                                                card_dict["email"]))
    
                # 针对找到的名片记录执行修改和删除的操作
                deal_card(card_dict)
    
                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_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"], "邮箱:")
    
            print("修改名片成功!")
        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: 如果用户输入了内容,就返回内容,否则返回字典中原有的值
        """
        # 1. 提示用户输入内容
        result_str = input(tip_message)
    
        # 2. 针对用户的输入进行判断,如果用户输入了内容,直接返回结果
        if len(result_str) > 0:
    
            return result_str
        # 3. 如果用户没有输入内容,返回 `字典中原有的值`
        else:
    
            return dict_value
    View Code

    2、图示:

  • 相关阅读:
    三元表达式 列表和字典推导式 函数对象 名称空间 作用域 global和nonlocal 函数装饰器 枚举对象
    函数参数 打散机制 字符串比较 返回值
    函数简介
    三种字符串的介绍 文件的读写
    字符编码
    数据类型及其常用方法 数据类型转换 可变与不可变 值拷贝与深浅拷贝
    流程控制 while和for循环
    变量命名规范 常量 输入和输出 注释 数据类型 运算符 逻辑运算符
    语言分类 编译型和解释型语言分析 环境变量 代码执行的方式 pip介绍 变量
    Python django tests
  • 原文地址:https://www.cnblogs.com/fyknight/p/9149626.html
Copyright © 2011-2022 走看看