前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Python】名片管理系统

【Python】名片管理系统

作者头像
謓泽
发布2024-02-22 10:31:01
1410
发布2024-02-22 10:31:01
举报
文章被收录于专栏:【C】系列【C】系列

菜单界面

菜单界面顾名思义,那么接下来就来演示下一个游戏界面。当我们程序启动的时候会有欢迎界面并且显示功能菜单。那么在本篇博客的内容当中我们也需要弄个菜单界面⇥〔名片管理系统〕那么接下来我们就来实现下吧(●'◡'●) 而菜单界面也很容易就能实现只需要print()即可实现(☆-v-)

要求

㈠名片管理系统界面要求如下↓

代码语言:javascript
复制
—————————————————
[名片管理系统]→0.0
~~~~~~~~~~~~~~~~~
1.新建名片的管理人
2.显示全部的管理人
3.查询名片的管理人
0.名片管理系统退出
~~~~~~~~~~~~~~~~~
[名片管理系统]→0.0
—————————————————

㈡用户输入数字可以选择并实现不同的功能。

㈢根据不同的功能选择,执行不同的功能。

㈣用户的名片包含着:姓名、电话、年龄、学号。

㈤查询到(3.查询名片的管理人)的时候,可以选择修改或者是删除以及返回上级菜单的③个选项。没有查找到就输入没有找到xxx.

两个文件

  • 在这里我们可以新建两个文件的准备,如下所示↓

host_main().py ⇥ 主程序的功能,像名片管理系统的框架等...

  • 注⇢main()当中文件是程序的入口。
  • 每一次启动这个文件都通过 main() 的这个文件来进行启动。

functional_module.py ⇥ 保存所有名片的功能的函数,将会对名片管理系统实现 新增、查询、删除、修改,等功能可以封装在不同的函数当中去。

拓展 

㈠⇥字符串的判断
  • 第一行代码
代码语言:javascript
复制
if str_n == "1" or str_n == "2" or str_n == "3":
  • 第二行代码
代码语言:javascript
复制
​if str_n in ["1","2","3"]

这两个代码实现的功能都是一样的也就是它们的效果都是一样的,在这里可能对于初学的小伙伴更加熟悉第一行的代码。那么在这里来说说第二行的代码是什么:in 针对列表进行判断,使用 in 当然好处是有的相比于 or 减少了复杂的逻辑条件的拼接。

㈡⇥pass

Python 当中的 pass 是空语句,是为了保持程序结构的完整性。

pass 不做任何事情,一般用做占位语句。

㈢⇥无限循环
代码语言:javascript
复制
while True:
  • 无限循环无论是在我们写框架或者是开发软件还是写项目都是非常常用的,前提是如果不希望程序执行后就立刻退出。
  • 可以在软件上增加一个无限循环。
  • 由开发者来决定程序的退出。

保存名片的数据的结构 

使用字典可以记录每一张名片的详细信息。 使用列表可以统一所有的名片的字典。 如果对字典和列表不熟悉或者是忘记的话可以看看博主这两篇博客相信会对你有所帮助的↓ 🍊链接: 🍏链接: 定义名片列表变量 在 card_list 的文件顶部添加一个列表变量。 ⒈所有的名片在进行相关的操作的时候,都需要使用这个列表,所以应该顶一直程序的顶部 ⒉程序刚运行的时候,没有数据,所以是空列表。 一调多个

此时,这str_phone就是同步修改了。  return 

  • return是使整个函数返回的,后面的不管是循环里面还是循环外面的都不执行。下方代码不会执行。break是跳出整个循环体但还是会执行相对应的函数。

名片管理系统程序 

host_main.py
代码语言:javascript
复制
import functional_module
while True:
    # 显示功能菜单
    functional_module.menu()
    str_n = input('你要选择的操作是:')
    print('你输入的操作是:[%s]'%str_n)
    # 针对名片管理系统的操作
    # 实现相关操作                                                        # 如果在指定的序列中找到值返回 True,否则返回 False.(in针对列表进行判断)
    if str_n == "1" or str_n == "2" or str_n == "3":  # if str_n in ["1","2","3"] (同样ok)
        # 新建名片
        if str_n == "1":
            functional_module.new_card()
        # 显示全部名片
        if str_n == "2":
            functional_module.all_card()
        # 查询名片
        if str_n == "3":
            functional_module.inquire_card()
    # "0"退出名片管理系统
    elif str_n == "0":
        pass
        print('小py提醒你退出名片管理系统')
        break
    # 输入错误
    else:
        print('你输入的相关操作错误,请重新选择:')
functional_module.py
代码语言:javascript
复制
# 记录所有的名片字典
card_list = []


def menu():
    # 显示菜单
    print("—" * 30)
    print("[名片管理系统]→0.0")
    print("~" * 30)
    print("1.新建名片的管理人")
    print("2.显示全部的管理人")
    print("3.查询名片的管理人")
    print("0.名片管理系统退出")
    print("~" * 30)
    print("[名片管理系统]→0.0")
    print("—" * 30)


def new_card():
    print("^" * 30)
    print('新增名片')
    # 1.用户输入信息
    str_name = input('请输入姓名:')
    str_phone = input('请输入电话:')
    str_age = input('请输入年龄:')
    str_id = input('请输入学号:')
    # 2.用户输入的信息建立一个名片字典
    card_dict = {"name": str_name,
                 "phone": str_phone,
                 "age": str_age,
                 "id": str_id}
    # 3.将字典追加到列表当中去 - append()
    card_list.append(card_dict)
    # 4.打印card_list
    print(card_list)
    # 5.提示成功
    print('添加%s名片成功' % str_name)


def all_card():
    # 没有添加名片的情况
    if len(card_list) == 0:
        pass
        print('当前你还没有添加任何名片')
        return  # 下方代码不会执行
    print("^" * 30)
    print('显示所有名片')
    # 表格
    for name in ["姓名", "电话", "年龄", "学号"]:
        pass
        print(name, end="\t\t")  # 不换行
    print()
    # 分割线
    print('—' * 30)
    # 遍历名片列表依次输出信息
    for card_dict in card_list:
        pass
        print("%s\t\t%s\t\t%s\t\t%s" % (card_dict["name"], card_dict["phone"], card_dict["age"], card_dict["id"]))


def inquire_card():
    print("^" * 30)
    print('查询名片')
    inguire_name = input('请输入你要查询的名片:')
    #  遍历名片列表依次输出信息
    for card_dict in card_list:
        pass
        # 判断姓名被找到(检查名片字典当中的name是否等于inguire_name当中的名片即可)
        if card_dict['name'] == inguire_name:
            pass
            print('找到你要查询的名片%s' % inguire_name)
            print('姓名\t\t电话\t\t年龄\t\t学号')
            print('=' * 50)
            print("%s\t\t%s\t\t%s\t\t%s" % (card_dict["name"], card_dict["phone"], card_dict["age"], card_dict["id"]))
            # 针对修改以及删除的操作(封装函数)
            deal_card(card_dict)
            break  # 找到就退出
    else:
        pass
        print('您输入的名片错误,没有找到此人%s' % inguire_name)


def deal_card(find_dict):
    pass
    print(find_dict)
    choice = input('请输入你要选择的操作:[1.修改]、[2.删除]、[0.返回上级菜单]:')
    if choice == "1":
        pass
        find_dict["name"] = input_card(find_dict["name"], '姓名:')
        find_dict["phone"] = input_card(find_dict["phone"], '电话:')
        find_dict["age"] = input_card(find_dict["age"], '年龄:')
        find_dict["id"] = input_card(find_dict["id"], '学号:')
        print("修改名片成功")
    elif choice == "2":
        pass
        card_list.remove(find_dict)
        print("删除名片成功")

#  针对输入函数进行扩展
def input_card(dict_value, tip_message):
    result_str = input(tip_message)

    if len(result_str) > 0:

        return result_str
    else:

        return dict_value

运行结果🖊『演示』

🍊名片界面
🍊名片系统退出
🍊新建名片
🍊显示全部名片

🍊查询名片的管理人

🍅1.修改 

🍅2.删除

✨程序经过运行可以实现!(●'◡'●)✨ 

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-02-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 菜单界面
  • 要求
    • 两个文件
      • 拓展 
        • ㈠⇥字符串的判断
        • ㈡⇥pass
        • ㈢⇥无限循环
      • 保存名片的数据的结构 
        • host_main.py
        • functional_module.py
    • 名片管理系统程序 
      • 运行结果🖊『演示』
        • 🍊名片界面
        • 🍊名片系统退出
        • 🍊新建名片
        • 🍊显示全部名片
        • 🍅2.删除
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档