我的输出列表中没有添加任何内容。有人能解释为什么吗

2024-07-02 10:40:28 发布

您现在位置:Python中文网/ 问答频道 /正文

  def translateGene(dnaStrand, startPos, stop):
        protein = []
        def aminoAcid(dnaCodon):
            return(dnaCode[dnaCodon])
            maybeCodon = [dnaStrand[i:i +3] for i in range (startPos, stop-1)]
            for j in maybeCodon:
                if j == (dnaCode[dnaCodon]):
                    protein.append(j)
                return protein

此函数接受一个字符串,一个整数作为字符串中的起始索引,一个整数作为字符串中的结束索引。该程序的思想是将字符串拆分为3个字母的首字母缩略词,字母从起点到终点。然后它应该在给定的字典中查找所有首字母缩略词,如果它们出现在字典中,则将它们的结果添加到蛋白质列表中,但我上面的代码将蛋白质保留为空。氨基酸函数是为我创建的,作为这个函数的一部分,但我不确定我是否正确调用了它。我上面的代码将蛋白质保留为空

谁能解释一下原因吗。非常感谢您的帮助


Tags: 函数字符串inforreturndef整数蛋白质
1条回答
网友
1楼 · 发布于 2024-07-02 10:40:28

首先,我认为您的代码应该进行缩进调整,以便:

def translateGene(dnaStrand, startPos, stop):
    protein = []
    
    def aminoAcid(dnaCodon):
        return (dnaCode[dnaCodon])
    
    maybeCodon = [dnaStrand[i:i + 3] for i in range(startPos, stop - 1)]
    for j in maybeCodon:
        if j == (dnaCode[dnaCodon]):
            protein.append(dnaCodon)
    return protein

然后测试它

请注意,您似乎有两个全局dnaCodednCodon,这在调用函数之前是已知的

相关问题 更多 >