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
>>> 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.
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-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-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-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-nl
A
Z