0%

Python基础--名片管理系统

Python基础–名片管理系统

代码解析

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

代码实现功能

  • 根据用户的输入选择不同的功能
  • 记录用户的姓名和年龄
  • 查询名片的时候可以删除或者修改对应信息

    步骤

  • 主程序
  • 添加功能模块
  • 将功能模块导入主程序
  • 调试bug

    main文件代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    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文件代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    # 定义全局变量,用于存储姓名信息的列表
    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("输入错误,请重新输入")