2017-10-13 54 views
0

代码:预期的缩进块错误(蛋白质序列计数)

def find_orf_lengths(dna,frame,cutoff): 
    orfs_lengths = [] 

    for i in range(0,len(dna),3): 
     if(dna[i:i+3] == "ATG"): 
      orfs_lenghts[i] += 1 
      elif(dna[i:i+3] == "TGA"|"TAA"|"TAG"): 
       if(orfs_lenghts[i] >= cutoff): 
        orfs_lengths.append(100) 
        elif(orfs_lenghts[i] < cutoff): 
         continue 

    return orfs_lengths   

我工作的一个蛋白质序列项目和问题是,无论我做什么,我不能让过去的“预期的缩进这是考虑这样块”错误:

   File "lab6hw.py", line 27 
       if(dna[i:i+3] == "ATG"): 
      IndentationError: expected an indented block 
+0

您已经混合空格和制表符,其他压痕问题之一。 – user2357112

+1

'elif'应该缩进与其相关的'if'相同。 –

+0

这可能对您有所帮助:https://stackoverflow.com/questions/45621722/im-getting-an-indentationerror-how-do-i-fix-it –

回答

1

elif必须在相同的缩进层次,因为它高于if。你可能意思是这样的:

def find_orf_lengths(dna,frame,cutoff): 
    orfs_lengths = [] 

    for i in range(0,len(dna),3): 
     if(dna[i:i+3] == "ATG"): 
      orfs_lenghts[i] += 1 
     elif(dna[i:i+3] == "TGA"|"TAA"|"TAG"): 
      if(orfs_lenghts[i] >= cutoff): 
       orfs_lengths.append(100) 
      elif(orfs_lenghts[i] < cutoff): 
       continue 

    return orfs_lengths 

虽然我不能在不知道输入的情况下测试你的代码。在相同的缩进级别

2

认沽ELIF仿佛:

def find_orf_lengths(dna,frame,cutoff): 
    orfs_lengths = [] 
    for i in range(0, len(dna), 3): 
     if(dna[i:i + 3] == "ATG"): 
      orfs_lenghts[i] += 1 
     elif(dna[i:i + 3] == "TGA" | "TAA" | "TAG"): 
      if(orfs_lenghts[i] >= cutoff): 
       orfs_lengths.append(100) 
      elif(orfs_lenghts[i] < cutoff): 
       continue 

    return orfs_lengths