Texte inclus

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.

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(Esc)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Évaluations restantes : 10/10
.128013,!n w-5e9(]38m=0p)rhk[uois;cb/6TS1vt_dg:aFy24P+fl7050M0i0K0P0z0X0A0e0C0X0P0A0A0p010K0z0r010406050A0x0o0o0P0t0R040H0y0X0x0?0y0d050E0}0 11130{0r041c1j051m0E1m1o1j0{0M0z0J0+0-0/0;0u0z0N0u0X1C0u0K0_050$0D0X0i1x0.0:011B1D1F1D0K1L1N1J0K0D0y0M131K0t1k0K0u0+160A0r0P0d0;0S011P1z010W0(0i0d0P0o0i1J1;1?1{1R1~1N21230_0a0e0U0t0y0r0y0A0z190d0e0!1/0t0t0i0C2o1c260d1k0E1-2B0K1+1*1,0M280;1F0d202l1J1u1w0,1Q2L0z2N0d1%1v1J0r2u1k2z2B2)0|1=2p2T1|2Y0t100X0_0e0I2y2-0`2,272/1R2;2?2^0S2{1?2}2z2K01320P2@040e0m362A0{39300;3c3e0e0T3i382-3a3o2^0h3s3k3u3m3b0y2=3d2^0F3z2~2.1y313E333f0Y3J3l3M3n3O3G3f0n3S3B3U3D3F3p0j3!2 3$3w040I0q3+3L2U3%3P0I2`1d2|3A3,3@3.0I353|373~3?2:3W3e0I3h443j3K3v490_0I3r4d3t3 483(4i3y4l464g4p3/3I4l1l2%1c2R2E0M2I3a0C1%241k4C1n4A2+4y4H0!2(3#3@0v0_0!0W3s4f3C0f2^4Z3T400W0_4H2t0i1;1a0M4(4T1|0^040k4?4n310_0o0y0?4Y4y4)4^0_0b3s0e4!3-4,0u0%2N4|471R4_584l5a554~042k2m2x544@5j0_0s0O3z0e5B5n5v0;4V040z532)5D4}3n0_5r2n0z1a595b3@0y0_0V5T5o3n0D0_2b5h3a4_4{5u5M3b4 515I5)3C4_0s5Z5E015W04020N0K0B5`5.0d5$045(5-5i0;5+5?5c040C5e2W0i6d3@5^5z4s5C6p5L6a015G2u0K0x0t1b5m5U1|0v0C0_0Q3d0A6j6o5C6B1R5G0W3E636s0d0_0z6R3a0y4$5H6z5K6M5#0_0t1?0N6J2+5!016c693v66686.5{6;6_645:526k56040s5y5A6q5B6%6t6U5J2|6r3v5d5f6-2|784_0w705p5P5t6$6/5}5Y6A6/6T5H7m6b0_0l6W3C5}0c0p7C6e506 6=5@0_7l7L6e6V7P6l7A6n2)067676786u0#6x6#7c7!6E046G0)7h456p7!6)7$6y7H4U7+0G0t0x7/3j064t3C5G4X7y016Z5a7S2:4+044/0K0L2W0,0x0A866{7i7v0_0D0t2W8l577_2:0_6,5g8a5w727V3}7;8o040$0(1N0L8y7 3f785}7G7u5{655%208t4`867w8M8X5_6K778G8I0X8K8q8s8S5.8Q8v316@8W8A7z8Y8`5/048.7(377j5x758)5{6O6Q8:6S6U8?0;6Y6U912A7d3C8U046*0d6,8X5,6|9b8H0%8,0i8L208N9j3$5}0g9d8~8+8-8r9h8O7r5X9F0o0z4i8$8D7:7Y7=5H7b379B404,3E2u4:0d4=8}8m928G908X5l7q8T8x9z9;9F7w7R9s5*5x9T3j7Y6q9W6v7%9F6D0_7|7~959!6C7?6w7^9a3aa97,6H8N0{0E4Q0i2B2$as4B1v4D2E2G2C1$1(2E0P1Mav0E4Cap0!8+0A04.