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
相关产品推荐
相关产品推荐

