名片管理系统支持用户对名片信息进行添加、删除、修改和查询操作,涵盖Python基本语法、自定义函数及参数传递等知识点,内容基础全面,适合初学者实践练习,有助于巩固编程基础,提升实际开发能力。
1、 建立名片管理项目
2、 在名片管理系统中创建两个Python文件,分别为cards_main和cards_tools。其中,cards_main负责搭建系统整体结构,实现主程序流程;cards_tools用于定义各类功能函数,如新增、查询、修改和删除名片等操作,供主文件调用,实现模块化设计,提升代码可读性与维护性。
3、 程序主体结构被置于一个while循环内部,以便用户能够反复执行各项操作。若不使用循环,程序将在完成一次指令后直接退出。当用户输入1时,系统将执行新增名片功能;输入2时,将显示当前所有已保存的名片信息;输入3时,进入名片查询功能,支持按指定条件查找对应名片;此处暂时使用pass语句作为代码占位符,便于开发阶段的调试与测试,后续实际功能完善后将予以删除;当用户输入0时,程序触发break语句,立即跳出循环,结束运行。若用户输入的选项不在上述范围内,则系统会提示操作无效,要求重新输入有效指令。特别需要注意的是,break语句必须正确放置在判断逻辑中,确保仅在接收到退出指令时才中断循环,避免程序提前终止或陷入死循环,保障流程控制的准确性与稳定性。
4、 框架已初步搭建并正常运行,需重点检查序号为0的执行过程中是否顺利退出。若未退出,请仔细核对while循环中break语句的位置是否正确。
5、 在cards_tools函数中实现菜单显示功能,并于主函数导入该模块,菜单样式可自行设计,形式不限,灵活多样,便于用户操作与界面美观协调统一呈现。
6、 执行代码后菜单正常显示,运行顺利。将菜单显示功能置于cards_tools中,旨在简化主函数结构,降低其复杂程度。
7、 在cards_tools模块中创建一个全局列表card_list,编写一个自定义函数用于实现新建名片功能。通过input()函数获取用户输入的姓名、电话、QQ号码及邮箱信息,并将这些数据存储到相应变量中,便于后续处理与保存。
8、 创建一个名为card_dist的字典,用于保存不同用户的基本信息。该字典包含name、phone、qq和email四个键,分别对应用户输入的姓名、电话、QQ号码和电子邮箱。每个键所对应的值来自用户输入时存储在变量name_str、phone_str、qq_str和email_str中的内容。通过这种方式,将用户输入的各项信息依次存入字典中,实现数据的集中管理和后续使用。
9、 通过append()方法将字典中的数据添加至全局列表card_list中,便于后续函数调用使用,具体操作为card_list.append(card_dist)。
10、 当名片添加成功后,系统将显示名片添加成功!,提示用户操作完成,至此该功能模块已实现并完善。
11、 在主函数中移除pass语句,添加对new_cards()函数的调用,当用户输入1时,程序将执行该函数,实现新增名片的功能。
12、 执行代码,测试验证无误
13、 首先检查cards_list列表是否为空,若为空则表示用户尚未添加名片,应提示用户进行添加并直接返回。由于return会终止函数执行,后续代码将不会运行,从而避免对空列表进行操作。
14、 显示名片表格的表头,各标题间以end = 分隔,每个分隔符相当于一个Tab键的间距。
15、 使用for循环遍历字典,将其中的用户信息逐条输出到表格中,每条名片信息占一行。通过%s格式符输出字符串内容,确保信息清晰展示。至此,名片管理系统的显示全部功能已实现。在主函数的第二项功能中调用show_all()函数,并移除原有的pass语句,使程序能够正确执行该功能。
16、 需先通过添加名片功能录入一个或多个联系人,之后方可使用显示全部功能查看所有名片信息。
17、 定义一个名为search_card()的函数,用于查找指定名片。函数中通过find_name获取用户输入的姓名信息,随后利用for循环遍历存储名片的列表,逐一比对每张名片字典中name键对应的值是否与find_name相同。若找到匹配项,则以表格形式展示该名片的详细信息,并将对应名片字典作为参数传入deal_card()函数,随即调用该函数进行后续处理;若遍历结束后未发现匹配项,则向用户提示没有找到该名片,告知查询失败。整个过程实现了名片的查找与结果反馈功能。
18、 定义一个名为deal_card的函数,其参数为find_card,用于接收之前需要查询的名片信息字典。在函数内部创建一个名为action_str的字符串变量,用于记录用户选择的操作:输入1表示修改名片,输入2表示删除名片,输入0则返回上一级菜单。当用户输入1时,进入修改流程,此时将获取用户新输入的信息,并将其对应字段的值更新到传入的find_card字典中。更新过程采用覆盖原有值的方式,仅针对用户指定的字段进行修改。例如,若原名片中的姓名为张三,用户希望改为李四,则只更新字典中name对应的值,其余信息保持不变。通过这种方式实现对名片局部信息的精准修改,确保数据更新灵活且高效。整个过程依托用户交互输入驱动,操作清晰明确。
19、 定义一个名为input_card_info的函数,该函数接收两个参数:dist_value和tip_message。其中,dist_value表示从find_dist函数传入的字典中已存在的键值,而tip_message则是提示用户输入新内容的提示信息。函数内部使用变量result_str来获取用户的输入结果。通过判断result_str的长度是否大于零,确定用户是否进行了新的输入操作。若result_str长度大于0,说明用户输入了新的内容,此时返回用户输入的值(即tip_message对应的输入结果);反之,如果result_str为空,表示用户未做任何修改,则保持原值不变,返回原本存在于字典中的键值dist_value。该函数主要用于在信息编辑过程中判断是否需要更新原有数据,确保在用户未输入新内容时保留原始信息,避免数据丢失,从而实现灵活且安全的数据处理逻辑。
