Python 这个DNA解决这个问题的功能是什么
[H6-4](gene.py)编写一个从用户处读取字符串的程序。这个字符串将DNA分子表示为字母a、C、G和T的序列,每个字母代表不同的碱基。然后确定它是否代表一个潜在基因,如果它满足以下4部分密码子标准: •它以起始密码子ATG开始。 •其长度为3的倍数。 •它以一个终止密码子标签、TAA或TGA结束。 •在第一个密码子和最后一个密码子之间的密码子序列中,它没有中间终止密码子 通过定义布尔函数即_基因(dna),当dna为有效dna且满足每个密码子标准时,该函数返回True 另外,定义一个布尔函数为_valid _DNA(seq),如果seq中的每个字符都是a、C、G或T中的一个,则返回True。否则返回False 然后完成程序:使用is_valid_DNA(seq)函数验证输入字符串seq的内容,如果它包含除A、C、G和T以外的任何字符,则打印无效的DNA。否则,通过is_gene()函数检查它,如果它满足之前的4部分密码子标准,则打印is potential gene,而不是潜在的基因Python 这个DNA解决这个问题的功能是什么,python,Python,[H6-4](gene.py)编写一个从用户处读取字符串的程序。这个字符串将DNA分子表示为字母a、C、G和T的序列,每个字母代表不同的碱基。然后确定它是否代表一个潜在基因,如果它满足以下4部分密码子标准: •它以起始密码子ATG开始。 •其长度为3的倍数。 •它以一个终止密码子标签、TAA或TGA结束。 •在第一个密码子和最后一个密码子之间的密码子序列中,它没有中间终止密码子 通过定义布尔函数即_基因(dna),当dna为有效dna且满足每个密码子标准时,该函数返回True 另外,定义一个布尔
最后,如果输入字符串不是有效的DNA或违反了由4部分组成的密码子标准,请打印一些诊断信息,详细说明其无效的原因。这些信息可能会描述为什么内容物是无效的DNA,例如哪些碱基是非法的,它们发生在什么序列位置。对于4部分密码子标准,它可能是一个描述,如“不以ATG开头”或“长度不是3的倍数”,等等。对于如此详细且格式良好的诊断输出,我将给予高达1分的额外积分。看看以下两个函数。字符串可以用作列表或集合。这两个概念对于检查需要满足的条件非常有用
def is_valid_DNA(dna):
if len(set(dna) - {'A','C','G','T'}) == 0: return True
return False
def is_gene(dna):
if dna[0:3] != 'ATG':
print('Invalid start')
return False
if len(dna) % 3 != 0:
print('Invalid length')
return False
if dna[-3::] not in ['TAG', 'TAA', 'TGA']:
print('Invalid end')
return False
for i in range(len(dna)-3):
if dna[i:i+3] in ['TAG', 'TAA', 'TGA']:
print('Invalid inner sequence')
return False
return True
dna = input()
if not is_valid_DNA(dna): print('Not valid DNA')
else:
if is_gene(dna): print('Vaid DNA sequence!')
else: print('Invalid DNA sequence.')
看起来你在要求一项作业的完整解决方案。这是这里。你必须先尝试自己编写一些代码,然后当你在自己的尝试中遇到困难时,带着解决问题的方法回到这里,以便其他人可以帮助你。这是我第一次在这里问问题,所以我不知道真正的格式,很抱歉,伙计们,我很快会添加一些代码来说明我在这个问题上遇到的困难。