Python多函数间变量传递问题:联系人管理功能实现咨询
实现
optionthree()函数的解决方案 没问题,我来帮你搞定这个联系人查询功能!结合你已经有的联系人存储逻辑(嵌套列表,每个子列表对应单个联系人信息),咱们一步步来实现optionthree():
核心思路
- 先提示用户输入想要查询的联系人姓名
- 遍历存储所有联系人的嵌套列表,逐一比对每个联系人的姓名字段(假设每个子列表的第一个元素是姓名,你可以根据实际结构调整索引)
- 找到匹配项后直接输出该联系人的完整信息列表;如果遍历结束都没找到,就提示用户该联系人不存在
完整代码示例
假设你的全局联系人列表叫contacts,Optionone()已经能正确把联系人子列表存进去,那optionthree()可以这么写:
# 全局联系人存储列表(你应该已经有这个了) contacts = [] def Optionone(): # 你已实现的收集单个联系人逻辑示例 name = input("请输入联系人姓名:") phone = input("请输入联系人电话:") email = input("请输入联系人邮箱:") contacts.append([name, phone, email]) print("联系人信息已保存!") def optionthree(): # 获取用户要查询的姓名 target_name = input("请输入要查看的联系人姓名:") # 遍历查找联系人 found = False for contact in contacts: # 假设子列表第一个元素是姓名,可根据实际结构调整索引 if contact[0] == target_name: print(f"找到联系人信息:{contact}") found = True break # 找到后停止遍历,提升效率 if not found: print(f"未找到姓名为{target_name}的联系人!") # 测试用例 if __name__ == "__main__": # 先添加测试联系人 Optionone() Optionone() # 调用查询函数 optionthree()
额外优化建议
- 如果想让查询不区分大小写(比如用户输入"张三"和"张三"都能匹配),可以把比对逻辑改成
if contact[0].lower() == target_name.lower(): - 如果联系人列表里可能有重名情况,可以去掉
break,把所有匹配的联系人都展示出来 - 可以给输出信息做格式化,比如不用直接打印列表,改成“姓名:xxx,电话:xxx,邮箱:xxx”的格式,更直观友好
内容的提问来源于stack exchange,提问作者Ji.Y
相关产品推荐
相关产品推荐

