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

调用同一函数且参数相同,为何两次返回不同结果?

DNA序列STR匹配结果差异的原因分析

这是Python文件对象的读取指针特性导致的:

  • 首次调用dna.read()时,会读取文件全部内容,同时文件内部的读取指针会移动到文件末尾。
  • 第二次调用dna.read()时,指针已处于末尾位置,无法读取到任何内容,返回空字符串""。
  • 你的longest_match函数处理空字符串时,找不到任何STR匹配,因此返回0;而第一次处理完整DNA序列时能正常匹配,返回35。

解决方法

  • 提前将文件内容读取到变量中复用:
    dna_content = dna.read()
    longest_match(dna_content, sequences[2])
    longest_match(dna_content, sequences[2])
    
  • 每次读取前重置文件指针到开头:
    longest_match(dna.read(), sequences[2])
    dna.seek(0)  # 重置指针到文件起始位置
    longest_match(dna.read(), sequences[2])
    

内容的提问来源于stack exchange,提问作者Mikołaj

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 15:40:23