Мне нужно ввести строковый ввод (в данном случае последовательность кодонов ДНК) и распечатать соответствующий SLC в последовательности в качестве выхода (например, вход: выход ATT: I). Мой текущий код может достичь этого, но я бы хотел, чтобы он также обслуживал последовательности, которые не имеют длины, делящейся на 3, и вывод «X» для них (например, вход: выход ATTOP: IX. Также есть способ для результатов ? быть напечатан в одной строке, в отличие от нескольких линийУлучшение итерации по строке в тройках в Python
DNA = 'GTTATCTTTPY'
def translate(DNA):
if DNA == 'ATT' or DNA == 'ATC' or DNA == 'ATA':
print 'I'
elif DNA == 'CTT' or DNA == 'CTC' or DNA == 'CTA' or DNA =='CTG' or DNA == 'TTA' or DNA == 'TTG':
print 'L'
elif DNA == 'GTT' or DNA == 'GTC' or DNA == 'GTA' or DNA == 'GTG':
print 'V'
elif DNA == 'TTT' or DNA == 'TTC':
print 'F'
elif DNA == 'ATG':
print 'M'
else :
print "X"
for i in range(3, len(DNA) + 1, 3):
translate (DNA[i-3:i])
выход для выше:
в я F
так Я хотел бы «PY», выдаваемый как «X 'в соответствии с выражением else, но не с длиной, делящейся на три. Также хотелось бы, чтобы вывод был следующим: VIFX.
вы можете добавить символы в строку затем распечатать, что после if..elif – depperm
It помогли бы, если бы вы предоставили примеры входов, результаты, которые вы получаете прямо сейчас, и ожидаемые результаты. – Tagc
См. Edit @Tagc – Zambo004