Python — задача о ДНК-коде

Привет всем! Задача о ДНК-коде попалась вчера вечером на одном из форумов, посвященных Python. Собственно, условие звучит следующим образом:

Пользователь вводит строку, генетический код, состоящий из букв А(аденин), G(гуанин), C(цитозин),T(тимин).
Задание: посчитать сколько гуанина, тимина, цитозина, аденина входит в данную строку ген. кода.
Пользователь может вводить строку некрасивой, то есть использовать маленькие и большие буквы.

Ссылка на первоисточник если что — тут. Стало интересно, а значит сегодня — задача о ДНК-коде 🙂

Как видно из условия — первое, что нужно делать — получить от пользователя исходный ДНК-код. Будем получать его в виде строки, ибо именно строку проще всего потом привести к единому виду (в условии четко оговорено, что код может быть введен как большими, так и маленькими буквами):
dna_code = str(input(‘Введите последовательность кода ДНК: \n’))

т.е. в переменную dna_code вводим строчный код.
После этого нужно (не обязательно, но почему бы и нет?) вывести на экран введенный ДНК-код, что бы пользователь мог повосторгаться своим творением:
print(‘Введен ДНК-код: ‘, dna_code)

Теперь приведем введенный ДНК-код к единому виду — маленькие буквы. В этом нам поможет функция lower(), о которой я писал подробнее тут:
dna_code = dna_code.lower()

т.е. переменная dna_code, содержавшая ДНК-код в строчном виде в перемешанных символах приводится к строчной переменной, в котором ДНК-код содержится в виде маленьких букв.

Теперь вводим в программу переменные, отвечающие за подсчет количества символов, используемых в ДНК-коде:
dna_a = int(0) #отвечает за аденин
dna_g = int(0) #отвечает за гуанин
dna_c = int(0) #отвечает за цитозин
dna_t = int(0) #отвечает за тимин

Важно отметить, что начальное значение каждой переменной равно нулю. А дальше — все просто 🙂 По циклу проверяем каждый символ в переменной на соответствие определенному, и если находится соответствие — увеличиваем счетчик той или иной переменной на единицу:
for symbol in dna_code:
if symbol == ‘a’:
dna_a = dna_a + 1
elif symbol == ‘g’:
dna_g = dna_g + 1
elif symbol == ‘c’:
dna_c = dna_c + 1
elif symbol == ‘t’:
dna_t = dna_t + 1

Ну, а теперь вообще все просто — выводим финальные показания счетчиков:
print(‘Во введенном коде: \n Аденина: ‘, dna_a, ‘\n Гуанина: ‘, dna_g, ‘\n Цитозина: ‘, dna_c, ‘\n Тимина: ‘, dna_t)

Как видно — ничего сложного 🙂 И да, как всегда — исходный код программы доступен в полном виде на моем Git-е

dna_code = str(input('Введите последовательность кода ДНК: \n'))
print('Введен ДНК-код: ', dna_code)
dna_code = dna_code.lower()
dna_a = int(0)
dna_g = int(0)
dna_c = int(0)
dna_t = int(0)
for symbol in dna_code:
if symbol == 'a':
dna_a = dna_a + 1
elif symbol == 'g':
dna_g = dna_g + 1
elif symbol == 'c':
dna_c = dna_c + 1
elif symbol == 't':
dna_t = dna_t + 1
print('Во введенном коде: \n Аденина: ', dna_a, '\n Гуанина: ', dna_g, '\n Цитозина: ', dna_c, '\n Тимина: ', dna_t)

И вот — видео с примером решения этой задачи, наконец, подоспело:

В случае возникновения вопросов — пишите на почту.

Support the Blog!

Running a blog takes a lot of effort, time, and passion. Your donations help improve the content, inspire new ideas, and keep the project going.
If you’ve enjoyed the blog’s materials, any support would mean the world to me. Thank you for being here! ❤️

PayPal Logo Donate via PayPal

Revolut Logo Donate via Revolut