美文网首页
python学习笔记—黑马程序员名片管理系统复写

python学习笔记—黑马程序员名片管理系统复写

作者: _karen | 来源:发表于2020-03-01 14:08 被阅读0次

系统需求

程序启动,显示名片管理系统欢迎界面,并显示功能菜单


欢迎使用【名片管理系统】V1.0

  1. 新建名片
  2. 显示全部
  3. 查询名片
  4. 退出系统

1.用户用数字选择不同的功能
2.根据功能选择,执行不同的功能
3.用户名片需要记录用户的 姓名、电话、QQ、邮件
4.如果查询到指定的名片,用户可以选择 修改 或者 删除 名片

源代码

cards_main() 主程序入口
cards_tool() 操作卡片方法
cards_main()

#! /Library/Frameworks/Python.framework/Versions/3.7/bin/python3
# 主入库文件
import  cards_tool

# 无限循环,由用户主动决定什么时候退出循环
while True :
    #  显示欢迎菜单
    cards_tool.show_menu()

    handler = input("请选择希望执行的操作:")
    print("您选择的操作是【% s】" % handler)

    user_input = ["0","1","2","3"]

    if handler in user_input:
        if handler=="0":
            # print("用户输入的是%s,需要调用退出系统功能" % handler)
            # 调用退出系统函数
            # cards_tool.exit_card()
            print("欢迎下次使用【名片管理系统】")
            break
        elif handler=="1":
            # print("用户输入的是%s,需要调用新建名片功能" % handler)
            # 调用新建名片函数
            cards_tool.new_card()
            # break
        elif handler=="2":
            # print("用户输入的是%s,需要调用显示全部功能" % handler)
            # 调用显示全部函数
            cards_tool.show_all()
            # break
        elif handler=="3":
            # print("用户输入的是%s,需要调用查询名片功能" % handler)
            # 调用查询名片函数
            cards_tool.query_card()
            # break
    else:
        print("用户输入的是%s,请重新输入" % handler)

cards_tool()

# 具体方法文件

# 记录所有名片的列表,里面的保存方式是字典
card_list = []



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



def new_card():
    """
    新增名片
    :return: 
    """
    print("-"*50)
    print("1---新增名片")
    # 1. 提示用户输入名片的详细信息  姓名、电话、QQ、邮件
    name = input("请输入姓名: ")
    phone = input("请输入电话: ")
    qq = input("请输入QQ: ")
    mail =  input("请输入邮件: ")
    # 2.使用用户的输入的信息建立一个名片字典
    dic = {
        "name":name,
        "phone":phone,
        "qq":qq,
        "mail":mail
    }
    print(dic)
    # 3.将名片字典添加到列表中
    # card_list.extend(dic) 不能用extend
    card_list.append(dic)
    # 4.告知用户输入成功
    print("添加%s的名片成功" % name)


def show_all():
    print("-" * 50)
    # print("显示所有名片")
    # 如果列表没有内容,不执行打印表头操作
    if len(card_list)==0:
        print("当前没有任何的名片,请选择新建名片")
        return

    # 打印表头
    for header in ["姓名","电话","QQ","邮箱"]:
        print(header,end="\t\t")
    # 打印分隔符
    print()
    print("-" * 50)
    # 遍历名片字典,输出所有值
    for dic in card_list:
        print("%s\t\t%s\t\t%s\t\t%s" % (dic["name"],
                                        dic["phone"],
                                        dic["qq"],
                                        dic["mail"]))
    # 打印分隔符
    print("-" * 50)

def query_card():
    """
    查找名片
    :return: 
    """
    print("-" * 50)
    print("3---查询名片")
    # 1.提示用户输入要查找的姓名
    find_name = input("请输入要搜索的用户姓名:")
    # 2遍历名片列表,查询要搜索的姓名,如果没有,提示用户
    for dic in card_list:
        if dic["name"]==find_name:
            print("找到了%s,信息如下" % find_name)
            # 打印表头
            print("姓名\t\t电话\t\tQQ\t\t邮箱")
            # 打印分隔符
            print()
            print("-" * 50)
            # 打印用户信息
            print("%s\t\t%s\t\t%s\t\t%s" % (dic["name"],
                                            dic["phone"],
                                            dic["qq"],
                                            dic["mail"]))
            # 针对找到的名片需要进行修改和删除操作
            deal_card(dic)
            break
    else:
        print("抱歉,没有找到%s" % find_name)




def deal_card(find_dic):

    """
    修改或者删除名片   
    :param find_dic: 要查找的用户信息
    """
    print(find_dic)
    action_str = input("请输入对名片的操作:【1】修改 【2】删除 【0】返回上一级菜单")
    if action_str=="1":
        find_dic["name"] = input_card_info(find_dic["name"],"姓名[回车不修改]:")
        find_dic["phone"] = input_card_info(find_dic["phone"],"电话[回车不修改]:")
        find_dic["qq"] = input_card_info(find_dic["qq"],"qq[回车不修改]:")
        find_dic["mail"] = input_card_info(find_dic["mail"],"邮箱[回车不修改]:")

        print("修改名片成功")
    elif action_str=="2":
        card_list.remove(find_dic)
        print("删除名片成功!")



def input_card_info(dic_value,tip_message):
    """
    判断用户输入的内容
    :param dic_value: 字典中原有的值
    :param tip_message: 控制台的提示信息
    :return: 如果用户输入了内容,返回输入的内容,如果没有输入,返回原有的值
    """
    result_str = input(tip_message)

    if len(result_str)>0:
        return result_str
    else:
        return dic_value

执行程序

  • 方法1:在pycharm中直接执行
  • 方法2:在终端中执行 python3 cards_main.py
  • 方法3:在终端中执行./cards_main.py

方法3需要提前配置:
1.通过which python3找到python3的位置
2.将python3路径加在主程序cards_main.py上方 #! /Library/Frameworks/Python.framework/Versions/3.7/bin/python3
3.给文件赋值可执行权限 sudo chmod 777 cards_main.py
4.执行./cards_main.py

感悟

while TRUE:无限循环用的非常的秒,佩服!
输出的时候有制表符真的很美腻
return是个神操作,棒呆

相关文章

网友评论

      本文标题:python学习笔记—黑马程序员名片管理系统复写

      本文链接:https://www.haomeiwen.com/subject/musqkhtx.html