Aller au contenu

Inclusion de texte⚓︎

L'ADN peut être représenté par une chaine de caractères formée avec les lettres A, T, G, C.

  • Un brin est un petit morceau d'ADN, que l'on retrouve parfois dans
  • un gène qui est une grande séquence d'ADN.

La fonction est_inclus prend en paramètres deux chaines de caractères brin et gene et renvoie la réponse, un booléen, à la question « Retrouve-t-on brin inclus dans gene ? ».

Cette fonction utilise une fonction auxiliaire : correspond(motif, chaine, position) qui renvoie True si on retrouve motif exactement à partir de position dans chaine et False sinon.

Exemples
🐍 Console Python
>>> correspond("AA", "AAGGTTCC", 4)
False
>>> correspond("AT", "ATGCATGC", 4)
True
>>> est_inclus("AATC", "GTACAAATCTTGCC")
True
>>> est_inclus("AGTC", "GTACAAATCTTGCC")
False
>>> est_inclus("AGTC", "GTACAAATCTTGCA")
False
>>> est_inclus("AGTC", "GTACAAATCTAGTC")
True

Compléter le code Python ci-dessous.

###
# testsbksl-nlassert correspond("AA", "AAGGTTCC", 4) == Falsebksl-nlassert correspond("AT", "ATGCATGC", 4) == Truebksl-nlbksl-nlassert estpy-undinclus("AATC", "GTACAAATCTTGCC") == Truebksl-nlassert estpy-undinclus("AGTC", "GTACAAATCTTGCC") == Falsebksl-nlassert estpy-undinclus("AGTC", "GTACAAATCTTGCA") == Falsebksl-nlassert estpy-undinclus("AGTC", "GTACAAATCTAGTC") == Truebksl-nlbksl-nlbksl-nl# autres testsbksl-nlassert correspond("AA", "AAGGTTCC", 7) == Falsebksl-nlassert correspond("CC", "AAGGTTCC", 6) == Truebksl-nlassert estpy-undinclus("AAAA", "AAAAGTATCTTGCC") == Truebksl-nlassert estpy-undinclus("GTAC", "GTACAAATCTTGCC") == Truebksl-nlassert estpy-undinclus("AAAA", "GTACAAATCTAAAA") == Truebksl-nlassert estpy-undinclus("AGTA", "GTACAAATCTAGTA") == Truebksl-nlassert estpy-undinclus("AGTA", "GTACAAATCTAGTC") == Falsebksl-nlbksl-nl 5/5

def correspond(motif, chaine, position):bksl-nl if ... > len(chaine):bksl-nl return Falsebksl-nl for i in range(len(motif)):bksl-nl if chaine[position + ...] != ...:bksl-nl return ...bksl-nl return Truebksl-nlbksl-nlbksl-nldef estpy-undinclus(brin, gene):bksl-nl taillepy-undgene = len(gene)bksl-nl taillepy-undbrin = len(brin)bksl-nl for i in range(... - ... + 1):bksl-nl if correspond(..., ..., ...):bksl-nl return Truebksl-nl return Falsebksl-nlbksl-nlbksl-nl# testsbksl-nlassert correspond("AA", "AAGGTTCC", 4) == Falsebksl-nlassert correspond("AT", "ATGCATGC", 4) == Truebksl-nlbksl-nlassert estpy-undinclus("AATC", "GTACAAATCTTGCC") == Truebksl-nlassert estpy-undinclus("AGTC", "GTACAAATCTTGCC") == Falsebksl-nlassert estpy-undinclus("AGTC", "GTACAAATCTTGCA") == Falsebksl-nlassert estpy-undinclus("AGTC", "GTACAAATCTAGTC") == Truebksl-nlbksl-nldef correspond(motif, chaine, position):bksl-nl if position + len(motif) > len(chaine):bksl-nl return Falsebksl-nl for i in range(len(motif)):bksl-nl if chaine[position + i] != motif[i]:bksl-nl return Falsebksl-nl return Truebksl-nlbksl-nlbksl-nldef estpy-undinclus(brin, gene):bksl-nl taillepy-undgene = len(gene)bksl-nl taillepy-undbrin = len(brin)bksl-nl for i in range(taillepy-undgene - taillepy-undbrin + 1):bksl-nl if correspond(brin, gene, i):bksl-nl return Truebksl-nl return Falsebksl-nlbksl-nl

A

Z