Python基础实战:构建命令行名片管理系统
本文通过Python代码实例,详细讲解如何构建一个基于控制台的简单名片管理系统。内容涵盖项目结构设计、主循环逻辑、菜单显示、名片的创建、遍历展示、条件查询以及修改与删除功能。通过实际代码片段,帮助读者理解列表与字典在数据存储中的应用,以及函数模块化编程的最佳实践。
一、前言
开发名片管理系统时,建议将代码拆分为两个独立的Python文件:cards_main.py 作为主程序入口,负责流程控制;cards_tool.py 作为工具模块,封装所有具体的业务逻辑函数。
二、主代码块的实现
import cards_tool as ct #导入cards_tool文件,简称ct,以便调用其中的函数
while True:
ct.show_menu()
num=int(input("请选择操作功能:"))
print(f"您选择的操作是[{num}]")
if num==0:
break
elif num==1:
ct.creat_card()
elif num==2:
ct.show_cards()
elif num==3:
ct.search_card()
else:
print("对不起,你输入的有误,请重新输入")
print("欢迎再次使用名片管理系统!")
三、主界面的显示

注:show_menu()用于渲染主菜单,creat_card()负责新增名片,show_cards()用于展示全部名片,search_cards()执行查询操作。系统通过读取用户输入的数字来匹配对应功能。为确保程序持续运行,这些功能调用被封装在while循环中,仅当用户输入0时才会终止循环并退出系统。
四、菜单功能的实现
def show_menu():
print("*"*50)
print("欢迎使用[名片管理系统]")
print("1.新建名片")
print("2.显示全部")
print("3.查询名片")
print("0.退出系统")
print("*"*50)
五、创建名片功能的实现
def creat_card():
print("-"*50)
print("功能:新增名片")
name=input("请输入姓名:")
number=input("请输入电话号码:")
qq= input("请输入qq:")
card_dict={"name":name,"phone":number,"qq":qq}
cards_list.append(card_dict)
print(f"添加[{name}]的名片成功!")
注:首先需在cards_tool.py中定义全局变量cards_list = [],用于存储所有名片数据。每个名片对象设计为字典格式,内部包含用户的关键信息字段。
操作过程:

注:每次执行完具体业务功能后,程序将自动返回至主菜单界面,等待下一次指令。
六、显示所有名片功能的实现
def show_cards():
print("-" * 50)
print("功能:显示所有名片")
if cards_list:
for name in ["name", "number", "qq"]:
print(name,end="\t\t")
print()
print("="*50)
for card_dict in cards_list:
for key in card_dict:
print(f"{card_dict[key]}\t\t\t",end="")
print()
else:
print("暂时没有名片,请使用新建名片功能添加名片!")
注:代码通过if语句判断cards_list列表是否为空。若为空,则输出提示信息;若不为空,则遍历列表并逐行打印每条名片的数据。
此前已添加一名姓名为“奈落”的名片,接下来演示如何查看该名片的完整信息。

七、查询名片功能的实现:
def search_card():
print("-" * 50)
print("功能:查找名片")
name=input("请输入要查找的姓名:")
for card_dict in cards_list:
for key in card_dict:
if card_dict[key]==name:
print("name","phone","qq")
print("=" *50)
print(card_dict["name"],card_dict["phone"],card_dict["qq"],end="\t")
print()
print("=" *50)
deal_card(card_dict)
return
print("该用户不存在!")
操作过程:

注:若查询成功,则打印该名片详情;若未找到匹配项,则提示用户。其中deal_card(card_dict)函数用于处理名片的后续操作,它接收一个包含名片详细信息的字典作为参数。
八、对名片具体操作的实现
def deal_card(card_dict):
num=int(input("请输入对名片名的操作(1:修改 2.删除 0.返回上级菜单):"))
if num==1:
print("----------------更新名片功能-----------------")
update_card(card_dict)
elif num==2:
print("----------------删除名片功能-----------------")
delete_card(card_dict)
elif num == 0:
return
else:
print("对不起,你输入的有误,请重新输入")
deal_card(card_dict)

注:用户输入数字以触发相应功能。update_card(card_dict)用于修改名片信息,delete_card(card_dict)用于删除名片。若输入无效数字,系统将提示错误并要求重新输入。
九、对名片进行修改功能的实现
def update_card(card_dict):
name = input("请输入修改的姓名[按回车键可不修改]:")
number = input("请输入修改的号码[按回车键可不修改]:")
qq = input("请输入修改的qq[按回车键可不修改]:")
if name:
card_dict["name"]=name
if number:
card_dict["phone"]=number
if qq:
card_dict["qq"]=qq
print("恭喜您修改成功!")
注:程序会检查用户输入的新信息是否为空。若为空,则保留原值不变;若不为空,则更新字典中对应的字段值。
现在,我们将之前添加的名为“奈落”的名片用户名修改为“小奈落”,并再次显示名片列表以验证结果。
操作过程:


十、对名片进行删除功能的实现
def delete_card(card_dict):
result=input("是否删除该名片y/n:")
if result in ["Y","y"]:
cards_list.remove(card_dict)
print("恭喜您,删除成功!")
elif result in ["N","n"]:
return
else:
print("对不起,你输入的有误,请重新输入")
deal_card(card_dict)
接下来,我们将删除用户名为“小奈落”的名片,并再次显示全部名片信息以确认删除操作生效。
操作过程:


到此这篇关于Python实战之实现简单的名片管理系统的文章就介绍到这了,更多相关python实现名片管理系统内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









