You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python多函数间变量传递问题:联系人管理功能实现咨询

实现optionthree()函数的解决方案

没问题,我来帮你搞定这个联系人查询功能!结合你已经有的联系人存储逻辑(嵌套列表,每个子列表对应单个联系人信息),咱们一步步来实现optionthree():

核心思路

  1. 先提示用户输入想要查询的联系人姓名
  2. 遍历存储所有联系人的嵌套列表,逐一比对每个联系人的姓名字段(假设每个子列表的第一个元素是姓名,你可以根据实际结构调整索引)
  3. 找到匹配项后直接输出该联系人的完整信息列表;如果遍历结束都没找到,就提示用户该联系人不存在

完整代码示例

假设你的全局联系人列表叫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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:10:04