Решение модуля 2.4 из курса «Программирование на Python»

Показываю разборы с ответами и решениями урока 2.4 (Строки и символы) для курса «Программирование на Python».
Предыдущий модуль 2.3 следующий модуль 2.5

GC-состав является важной характеристикой геномных последовательностей и определяется как процентное соотношение суммы всех гуанинов и цитозинов к общему числу нуклеиновых оснований в геномной последовательности.

Напишите программу, которая вычисляет процентное содержание символов G (гуанин) и C (цитозин) в введенной строке (программа не должна зависеть от регистра вводимых символов).

Например, в строке «acggtgttat» процентное содержание символов G и C равно 4 / 100 = 40, где 4 — это количество символов G и C,  а 10 — это длина строки.

a = input()
res1 = a.upper()
k = res1.count('C')
k2 = res1.count('G')
k3 = int(k) + int(k2)
k4 = res1.count('')
result = (k3 / (k4 - 1)) * 100
print(result)

Есть строка s = «abcdefghijk».
В поле ответа через пробел запишите строки (без кавычек), полученные в результате следующих операций:
s = ‘abcdefghijk’
s[3:6]
s[:6]
s[3:]
s[::-1]
s[-3:]
s[:-6]
s[-1:-10:-2]

Попробуйте найти ответ к этой задаче, не используя интерпретатор Python. Если без интерпретатора решить не получается, разберитесь, почему выводятся именно такие строки в каждом из вариантов.

s = 'abcdefghijk'
print (s[3:6], end=" ")
print (s[:6], end=" ")
print (s[3:], end=" ")
print (s[::-1], end=" ")
print (s[-3:], end=" ")
print (s[:-6], end=" ")
print (s[-1:-10:-2], end=" ")

Ответ: def abcdef defghijk kjihgfedcba ijk abcde kigec

Узнав, что ДНК не является случайной строкой, только что поступившие в Институт биоинформатики студенты группы информатиков предложили использовать алгоритм сжатия, который сжимает повторяющиеся символы в строке.

Кодирование осуществляется следующим образом:
s = ‘aaaabbсaa’ преобразуется в ‘a4b2с1a2’, то есть группы одинаковых символов исходной строки заменяются на этот символ и количество его повторений в этой позиции строки.

Напишите программу, которая считывает строку, кодирует её предложенным алгоритмом и выводит закодированную последовательность на стандартный вывод. Кодирование должно учитывать регистр символов.

s = str(input())
l = len(s)-1
c = 1
t = ''
if len(s)==1:
    t = t +s+str(c)
else:
    for i in range(0,l):
        if s[i]==s[i+1]:
            c +=1
        elif s[i]!=s[i+1]:
            t = t + s[i]+str(c)
            c = 1
    for j in range(l,l+1):
        if s[-1]==s[-2]:
            t = t +s[j]+str(c)
        elif s[-1]!=s[-2]:
            t = t +s[j]+str(c)
            c = 1
print(t)

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

Adblock
detector