ADN
Una cadena de ADN es válida si está compuesta únicamente por las bases Adenina (A), Citosina (C), Guanina (G) o Timina (T). Escriba una función para validar una cadena de ADN, retornando True
si es válida y False
en caso contrario. Suponga que la cadena está compuesta por múltiples grupos de 4 letras separados por guiones. Adicionalmente escriba un programa que lea \(n\) cadenas, y vaya señalando las que son válidas. Al finalizar debe decir cuántas fueron válidas y cuántas no.
Solución
def validaADN(cadena):
caracteres = "ACGT" # Caracteres validos
i = 0 # Contador utilizado para verificar el grupo de 4 letras
for c in cadena:
if c == "-" and i == 5: # Si encuentra un guion, verificar que sea el 5to caracter
i = 0 # Se reinicia el contador, para verificar el siguiente grupo
else: # En caso contrario hay mas o menos de 4 bases
return False
if c not in caracteres: # Verificar si es un grupo de las 4 bases
return False
i += 1 # Contador para las bases
return True
# Programa principal
n = int(input("Ingrese n: "))
i = 0 # Contador para las cadencas
cv = 0 # Contador de validas
cn = 0 # Contador no validas
while i < n:
# Entrada de cadena
cadena = input("Ingresar cadena: ")
# Verificacion de cadena
if validaADN(cadena):
cv += 1
print("Cadena valida")
else:
cn += 1
print("Cadena no valida")
i += 1
# Contador de cadenas validas e invalidas
print("Cadenas validas: ", cv)
print("Cadenas no validas:", cn)