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

Python通讯录实现多姓名批量搜索功能的技术需求

多姓名搜索版通讯录实现

修改后的完整代码

num = int(input("请输入要创建的通讯录联系人总数: "))
contacts = {}  # 用字典存储,键为姓名,值为手机号

for i in range(num):
    name = input("请输入姓名: ")
    contact_number = input("请输入手机号: ")
    contacts[name] = contact_number

# 打印通讯录表格
print("\n\t姓名\t\t\t手机号\n")
for name, number in contacts.items():
    print(f"\t{name}\t\t\t{number}")

# 搜索功能
while True:
    try:
        choice = int(input("\n\n请选择操作:\n1=搜索联系人\n2=退出\n"))
        if choice == 1:
            search_names_input = input("\n请输入要搜索的姓名(多个姓名用逗号分隔): ")
            # 分割输入的姓名列表,去除空格
            search_names = [name.strip() for name in search_names_input.split(",")]
            
            print("\n搜索结果:")
            for name in search_names:
                if name in contacts:
                    print(f"姓名: {name}, 手机号: {contacts[name]}")
                else:
                    print(f"姓名 {name} 未在通讯录中找到")
                    
        elif choice == 2:
            print("退出程序")
            break
        else:
            print("输入无效,请选择1或2")
    except ValueError:
        print("输入无效,请输入数字1或2")

关键改动说明

  • 改用字典存储联系人:相比原来的两个列表,字典可以直接通过姓名快速查找对应的手机号,无需手动匹配索引,代码逻辑更简洁高效。
  • 支持多姓名批量搜索:允许用户输入多个姓名(用逗号分隔),程序自动分割并逐个处理每个姓名的搜索请求。
  • 增加输入容错处理:添加try-except捕获非数字输入的异常,避免程序崩溃;同时对输入的姓名做去空格处理,兼容用户输入时的空格问题。
  • 优化输出格式:使用f-string替代format方法,代码可读性更强。

内容的提问来源于stack exchange,提问作者Utkarsh Singh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 12:21:03