函数输出不显示任何内容,Python

函数输出不显示任何内容,Python,python,function,bioinformatics,Python,Function,Bioinformatics,我试图在Python3中创建一个程序,将DNA密码子转换为氨基酸,但是,在输入代码后,我没有收到任何错误消息,但是在运行代码并键入DNA代码后,函数不会显示任何内容。例如:ATTGTTCT,应该显示ILE VAL SER,我没有得到ILE VAL SER。任何帮助都将不胜感激 DNA_sequence = input("Enter your DNA sequence below: \n") DNA = DNA_sequence.upper() DNA_to_codons = ([DNA[star

我试图在Python3中创建一个程序,将DNA密码子转换为氨基酸,但是,在输入代码后,我没有收到任何错误消息,但是在运行代码并键入DNA代码后,函数不会显示任何内容。例如:ATTGTTCT,应该显示ILE VAL SER,我没有得到ILE VAL SER。任何帮助都将不胜感激

DNA_sequence = input("Enter your DNA sequence below: \n")
DNA = DNA_sequence.upper()
DNA_to_codons = ([DNA[start:start + 3]] for start in range(0, len(DNA), 3))

print('The amino acid chain of your DNA sequence is as follows: \n')
for i in DNA_to_codons:
    if(i=="ATG"): print("MET", end = ' ')
    if(i=="TGA" or i=="TAA" or i=="TAG"): print("END", end = ' ')
    if(i=="TTT" or i=="TTC"): print("PHE", end = ' ')
    if(i=="TTA" or i=="TTG" or i=="CTT" or i=="CTC" or i=="CTA" or i=="CTG"): print("LEU", end = ' ')
    if(i=="ATT" or i=="ATC" or i=="ATA"): print("ILE", end = ' ')
    if(i=="GTT" or i=="GTC" or i =="GTA" or i=="GTG"): print("VAL", end = ' ')
    if(i=="TCT" or i=="TCC" or i=="TCA" or i=="TCG"): print("SER", end = ' ')
    if(i=="CCT" or i=="CCC" or i=="CCA" or i=="CCG"): print("PRO", end = ' ')
    if(i=="ACT" or i=="ACC" or i=="ACA" or i=="ACG"): print("THR", end = ' ')
    if(i=="GCT" or i=="GCC" or i=="GCA" or i=="GCG"): print("ALA", end = ' ')
    if(i=="TAT" or i=="TAC"): print("TYR", end = ' ')
    if(i=="CAT" or i=="CAC"): print("HIS", end = ' ')
    if(i=="CAA" or i=="CAG"): print("GLN", end = ' ')
    if(i=="AAT" or i=="AAC"): print("ASN", end = ' ')
    if(i=="AAA" or i=="AAG"): print("LYS", end = ' ')
    if(i=="GAT" or i =="GAC"): print("ASP", end = ' ')

在第三行代码中,更改

DNA_to_codons = ([DNA[start:start + 3]] for start in range(0, len(DNA), 3))


DNA\u-to-u密码子中的每一个元素都是作为一个列表而不是一个字符串产生的,这使得
DNA\u-to-u密码子成为了一个生成器,包含了原始代码中的列表,因此比较不能作为一个列表(即
[“ATT”]
)与字符串(即
“ATT”
)进行比较。

使用类似
的词典{'ATG':'MET','TGA':'END'}
等。完全同意@Chris_Rands的观点:Python的字典是这种语言中最有用的对象之一。另一个建议是:如果循环的不是整数,则不要使用
i
作为循环变量名。使用更有意义的变量名,如
codon
,会使代码更清晰。
DNA_to_codons = (DNA[start:start + 3] for start in range(0, len(DNA), 3))