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

系统需求

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


欢迎使用【名片管理系统】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是个神操作,棒呆

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,734评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,931评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,133评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,532评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,585评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,462评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,262评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,153评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,587评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,792评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,919评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,635评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,237评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,855评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,983评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,048评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,864评论 2 354