Python基础--名片管理系统

本文介绍了一个简单的Python名片管理系统。系统包括添加、显示、查询名片等功能,并通过两个文件进行代码组织:main.py作为主程序入口,tools.py封装了具体的功能实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Python基础–名片管理系统

代码解析

代码分为两个文件,main.py和tools.py,main是主干,tools是定义的函数,进行导入
tools 是自己定义的一个模块,里面写了较多的函数
为了减少主代码的臃肿和方便后期添加功能
因为是直接使用makdown书写的博文,所以有可能代码在注释的地方会出现缩进上的问题,可以稍微改下,麻烦了

代码实现功能
  • 根据用户的输入选择不同的功能
  • 记录用户的姓名和年龄
  • 查询名片的时候可以删除或者修改对应信息
步骤
  • 主程序
  • 添加功能模块
  • 将功能模块导入主程序
  • 调试bug
main文件代码
import tools
# 导入tools模块文件
while True:
    tools.max_print(1, "*", 20)
    tools.prin_fun()
    tools.max_print(1, "*", 20)
    cz_num=input("请选择执行的操作:")
    if cz_num == "1":
        tools.add_card()
    elif cz_num == "2":
        print("您选择的功能:2")
        print("功能: 显示全部")
        tools.show_alllist()
    elif cz_num == "3":
        print("您选择的功能:3")
        print("功能: 查询名片")
        tools.search_name()
    elif cz_num == "0":
        print("您选择的功能:0")
        print("欢迎再次使用[姓名管理系统]")
        break
    else:
        print("输入有误,请重新输入")
tools文件代码
# 定义全局变量,用于存储姓名信息的列表
card_info = [] 

# `print_line()`和`max_print()`函数是之前随便写的一个函数,刚好拿来用,功能是输出指定行数的特殊符号
def print_line(char, w_lenth):
    """单行打印,允许输入指定行数和字符"""
    print(char * w_lenth)
    return w_lenth, char


def max_print(line_count, char, w_lenth):
    i = 1
    while i <= line_count:
        #  进行函数的嵌套,直接调用对应的函数
        print_line(char, w_lenth)
        i += 1


def prin_fun():
	"""进入程序的显示界面"""
    print("欢迎使用[姓名管理系统]")
    print()
    print("1.新建名片")
    print("2.显示全部")
    print("3.查询名片")
    print()
    print("0.退出系统")


def add_card():
	"""新建名片"""
    print("您选择的功能:1")
    print("功能: 新建名片")
    name_str = input("请输入姓名:")
    # 定义姓名的字符串进行传参判断是否姓名存在
    for card_dict in card_info:
        if name_str == card_dict["name"]:
            print("姓名存在,请重新输入")
            break
    age_str = input("请输入年龄:")
    card_dict = {"name": name_str, "age": age_str}
    card_info.append(card_dict)
    print(card_info)


def show_alllist():
	"""显示名片所有信息"""
    print("您选择的功能:2")
    print("功能: 显示全部")
    print("显示所有信息")
    # 判断列表是否有数据,无数据进行返回无信息
    if len(card_info) == 0:
        print("本表内无信息,请您添加信息")
        return
	# 显示表头函数
    show_table_head()
    # 变量整个列表,逐个输出当前程序存储的所有信息
    for i in card_info:
        print("%s\t\t%s" % (i["name"], i["age"]))
    print("-" * 30)


def show_table_head():
    """显示表头"""
    print("姓名\t\t年龄")
    print("-" * 30)


def search_name():
	"""查询名片功能"""
    print("您选择的功能:3")
    print("功能: 查询名片")
    print("查询名片")
    sea_name = input("请输入查询的名字")
    # 根据上面传参进行遍历比对,如果有信息就输出对应信息,否则返回无此姓名
    for i in card_info:
        if sea_name == i["name"]:
            show_table_head()
            print("%s\t\t%s" % (i["name"], i["age"]))
            print("-" * 30)

            fix_card(i)
            break
    else:
        print("未找到信息%s" % sea_name)


def fix_card(card):
	"""查询到姓名之后可以修改的功能"""
    while True:
        cmd_num = input("请输入操作:1.修改/2.删除/0.退出")
        if cmd_num == "1":
            print(card)
            card["name"] = input("请输入您更新的名字")
            card["age"]  = input("请输入您更新的年龄")
            print(card)
            print("更新成功")
            break
        elif cmd_num == "2":
            card_info.remove(card)
            print("删除成功")
        elif cmd_num == "0":
            print("您选择退出")
            break
        else:
            print("输入错误,请重新输入")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值