Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 未返回函数中的列表/字典_Python_Bioinformatics_Biopython - Fatal编程技术网

Python 未返回函数中的列表/字典

Python 未返回函数中的列表/字典,python,bioinformatics,biopython,Python,Bioinformatics,Biopython,我试图用Python编写一个脚本,使用BioPython读取一个FASTA文件并生成一个原始DNA序列列表作为条目 由于我将要编写的许多其他脚本都将使用此代码,因此我希望用于此目的的函数位于一个单独的Python文件中,我可以在我编写的每个其他脚本开始时导入该文件。包含我当前调用的函数的脚本如下所示: from Bio import SeqIO def read_fasta(dna): genome = [] for seq_record in SeqIO.parse(dna,

我试图用Python编写一个脚本,使用BioPython读取一个FASTA文件并生成一个原始DNA序列列表作为条目

由于我将要编写的许多其他脚本都将使用此代码,因此我希望用于此目的的函数位于一个单独的Python文件中,我可以在我编写的每个其他脚本开始时导入该文件。包含我当前调用的函数的脚本如下所示:

from Bio import SeqIO
def read_fasta(dna):
    genome = []
    for seq_record in SeqIO.parse(dna, "fasta"):
        genome.append(str(seq_record.seq))
    return genome
当我在Python中从cmd调用此函数时,该函数会按照我的意愿工作并读取生成列表的文件。但是,如果我再次尝试访问列表
基因组
,我会得到一个
回溯| NameError:name'genome'未定义
错误


有人能解释为什么会发生这种情况吗,即使我已经把
returngenome
语句放在这里了?我能做些什么来解决这个问题呢?

基因组
在函数的局部范围内,因此从“外部”看不到它。您应该将
read_fasta
函数的结果分配给某个变量,以便访问函数的返回结果。例如:

new\u variable=read\u fasta(“pcr\u template.fasta”)

并且它是读取的-让
新变量
被分配给函数
读取fasta
的结果,并使用
“pcr\u template.fasta”
作为参数


现在,只需通过访问
新变量
基因组
就可以访问
基因组(或函数返回的任何内容),因为它位于函数的局部范围内,因此从“外部”看不到它。您应该将
read_fasta
函数的结果分配给某个变量,以便访问函数的返回结果。例如:

new\u variable=read\u fasta(“pcr\u template.fasta”)

并且它是读取的-让
新变量
被分配给函数
读取fasta
的结果,并使用
“pcr\u template.fasta”
作为参数


现在,只需通过访问
新变量
基因组
就可以访问
基因组(或函数返回的任何内容),因为它位于函数的局部范围内,因此从“外部”看不到它。您应该将
read_fasta
函数的结果分配给某个变量,以便访问函数的返回结果。例如:

new\u variable=read\u fasta(“pcr\u template.fasta”)

并且它是读取的-让
新变量
被分配给函数
读取fasta
的结果,并使用
“pcr\u template.fasta”
作为参数


现在,只需通过访问
新变量
基因组
就可以访问
基因组(或函数返回的任何内容),因为它位于函数的局部范围内,因此从“外部”看不到它。您应该将
read_fasta
函数的结果分配给某个变量,以便访问函数的返回结果。例如:

new\u variable=read\u fasta(“pcr\u template.fasta”)

并且它是读取的-让
新变量
被分配给函数
读取fasta
的结果,并使用
“pcr\u template.fasta”
作为参数


现在,只需访问
new_variable

即可访问
genome
(或您的函数返回的任何内容),您可以显示堆栈跟踪吗?您可以显示脚本在哪里使用此函数和堆栈跟踪吗?您在哪里调用它?当您调用它时,它返回值,它不会创建名为
genome
的变量。您必须对返回的值进行处理。在cmd中,我这样称呼它:from Bio_FASTA import*read_FASTA(“pcr_template.FASTA”),我应该如何为基因组分配变量/对其进行处理?谢谢
genome=read\u fasta(“pcr\u template.fasta”)
。尽管您正在创建的这个“全局”基因组
变量与“局部”基因组
变量除了名称之外没有任何共同之处(“局部”基因组
只有在函数未完成时才存在,
read\u fasta
函数才存在),但最好将其命名为其他名称,例如
result=read\u fasta(“pcr_template.fasta”)
。现在,当您尝试访问
结果
变量时,您将有
基因组
列表。您可以显示堆栈跟踪吗?您可以显示脚本在哪里使用此函数和堆栈跟踪吗?您在哪里调用它?当您调用它时,它返回值,它不会创建名为
基因组
的变量。您必须o返回值的东西。在cmd中,我这样称呼它:从Bio_FASTA import*read_FASTA(“pcr_template.FASTA”)我应该如何为基因组分配变量/使用它做些什么?谢谢!
genome=read_FASTA(“pcr_template.FASTA”)
。尽管您正在创建的这个“全局”
基因组
变量与“局部”
基因组
变量没有任何共同之处,但名称除外(“局部”
基因组
仅在
read\u fasta
函数未完成时才存在),最好将其命名为其他名称,例如
result=read\u fasta(“pcr\u template.fasta”)
。现在,当您尝试访问
结果
变量时,您将有
基因组
列表。您可以显示堆栈跟踪吗?您可以显示脚本在哪里使用此函数和堆栈跟踪吗?您在哪里调用它?当您调用它时,它返回值,它不会创建名为
基因组
的变量。您必须o返回值的东西。在cmd中,我这样称呼它:从Bio_FASTA import*read_FASTA(“pcr_template.FASTA”)我应该如何为基因组分配变量/使用它做些什么?谢谢!
genome=read_FASTA(“pcr_template.FASTA”)
。尽管您正在创建的“全局”基因组
变量与“局部”基因组