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

Python搜索文本文件中的数字时始终提示不存在该如何解决

问题原因

你的代码存在3个核心问题导致运行结果不符合预期:

  • 循环逻辑错误:condition的取值会被遍历到的最后一行覆盖。哪怕前面的行已经匹配到目标数字,只要最后一行没匹配到,最终condition会被改写为False,只有目标刚好在最后一行时才会返回正确结果。
  • 格式匹配风险:input()返回的是字符串类型,文件每行末尾默认带换行符\n、可能存在首尾空格,如果没有做空白处理,容易出现看似内容一致实际匹配失败的情况。
  • 初始值不规范:condition初始赋值为整数0,虽然Python中0等价于布尔值False,但直接用布尔值赋值可读性更强,也能避免类型判断出错的潜在风险。

修复后代码

# 用with上下文管理器自动管理文件关闭,不需要手动调用close()
with open("searching.txt", "r") as searchfile:
    condition = False
    b = input("enter a number to search ").strip()  # 去除输入内容首尾的空白、换行
    for line in searchfile:
        # 去除每行首尾的空白、换行后再匹配
        if b in line.strip():
            condition = True
            break  # 匹配到就直接跳出循环,不需要遍历后续内容

if condition:
    print("The number is in the list")
else:
    print("The number is not in the list")

优化说明

  • 匹配到目标后直接用break终止循环,减少不必要的遍历,文件越大优化效果越明显
  • 用with语句管理文件操作,哪怕代码运行中途报错也会自动释放文件资源,不会出现文件占用异常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 16:45:00