为什么existing_client()函数会返回5次信息而非仅返回1次?
问题根源
代码多了一层无用的内层遍历for part in line.split():这层循环会把每一行按空格拆分为多个元素,有多少个元素就会执行多少次后续的判断打印逻辑。你遇到的匹配行重复输出5次的情况,就是因为对应匹配行按空格拆分后刚好有5个元素,触发了5次打印。
修复代码
直接删掉无用的内层循环即可,修改后的代码如下:
def existing_client(): client_number = input("现有客户号是什么?(请按照123-456-7890的格式输入)") with open("clients.txt", 'r', encoding='utf-8') as openfile: for line in openfile: if line.startswith(client_number): print(line.strip()) # 若确认同一个客户号在文件中仅对应一行记录,可取消下方注释,匹配后直接终止遍历 # break
补充说明:额外加的strip()是为了去掉行末多余的换行符,让输出更整洁;encoding参数是为了避免不同系统读取文件出现编码报错,不需要可以自行删除。
内容的提问来源于stack exchange,提问作者user17441867
相关产品推荐
相关产品推荐

