如何从TXT文件读取姓名并实现有效搜索?代码问题求助
问题解决:无法搜索TXT文件中的姓名
你的代码核心问题是错误地将读取到的姓名列表额外嵌套了一层,导致搜索逻辑根本没在单个姓名里匹配。
看这行代码:
numberList = [data]
data已经是splitlines()返回的列表(每个元素对应TXT里的一行姓名),你把它再放进新列表,就变成了[[姓名1, 姓名2, ...]]这种嵌套结构。后续循环里numberList[i]取的是整个子列表,自然不可能和输入的单个姓名匹配。
修正后的代码
def liner_search(): with open("example.txt", "r") as myfile: # 直接用data作为待搜索的姓名列表,无需嵌套 data = myfile.read().splitlines() print("读取到的姓名列表:", data) searchRequest = input("请输入要搜索的姓名:") found = False # 直接遍历data里的每个姓名 for name in data: if name == searchRequest: print("找到匹配姓名!") found = True break print("继续查找...") if not found: print("未找到该姓名") liner_search()
说明
- 去掉了
numberList = [data]这行错误的嵌套赋值,直接使用data作为待搜索列表 - 把while循环换成更简洁的for循环,直接遍历每个姓名,逻辑更清晰
- 增加了未找到时的提示,体验更友好
现在运行代码,输入TXT文件里存在的姓名就能正确匹配了。
内容的提问来源于stack exchange,提问作者Reece Neacy
相关产品推荐
相关产品推荐

