gpt4 book ai didi

python - 函数一直返回 None

转载 作者:行者123 更新时间:2023-11-28 21:47:38 27 4
gpt4 key购买 nike

我正在尝试编写一个函数来计算输入文件中有多少行以“AJ000012.1”开头,但我的函数一直返回 None。我是初学者,不完全确定问题出在哪里以及为什么会不断发生。答案应该是 13,当我只写代码时,例如:

    count=0
input=BLASTreport
for line in input:
if line.startswith('AJ000012.1'):
count=count+1
print('Number of HSPs: {}'.format(count))

我得到了正确的答案。当我尝试将它变成一个函数并调用它时,它不起作用:

    def nohsps(input):
count=0
for line in input:
if line.startswith('AJ000012.1'):
count=count+1
return

ans1=nohsps(BLASTreport)
print('Number of HSPs: {}'.format(ans1))

非常感谢任何帮助,谢谢!

(如果您想知道,HSP 代表高分片段对。输入文件是一个 BLAST 报告文件,其中列出了 DNA 序列的比对结果)

最佳答案

如果您只是简单地return 而不指定要返回的内容,您将不会返回任何东西。它将是 None。你想返回东西。根据您的规范,您希望返回 count。此外,您将在 for 循环内返回,这意味着您永远不会得到预期的计数。您想要计算匹配项的所有出现次数,因此您需要将此返回移到循环之外:

def nohsps(input):
count=0
for line in input:
if line.startswith('AJ000012.1'):
count=count+1
return count

关于python - 函数一直返回 None,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36285191/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com