Bonjour,
je bloque un peu sur un exercice, je viens donc solliciter votre aide :
Réalisez une fonction nommée estADN qui vérifie si la chaîne de caractères passée en paramètre ne contient aucun autre caractère que les quatre bases A, C, G et T. Cette fonction retourne la valeur True si tel est le cas, et la valeur False dans le cas contraire. En particulier, elle renvoie True si la chaîne est vide.
j'ai donc écrit comme fonction :
mon problème : la fonction ne fonctionne pas car même si la chaîne en paramètre contient les caractères A C G T, la fonction me renvoie False. J'en déduis donc que le code ne fonctionne pas mais j'ai essayé beaucoup de code sans succès à chaque fois.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 def estADN(s): """ Fonction qui permet de vérifier si la chaîne de caractère contient les bases "A", "C", "G" et "T" pour être un ADN. :param s: (int) chaîne de caractère que l'on souhaite vérifier :return: (bool) Renvoie True si la chaîne s est un ADN, sinon false CU : aucune Exemple : >>> estADN("ACGGTAGCTAGTTTCGACTGGAGGGGTA") True >>> estADN("ACTZATCFDSFSZZG") False >>> estADN("GCTTYCFZGSGZG") False >>> estADN("AGCCGPQFQFZFZA") False >>> estADN("AGTVGSGEGTGA") False >>> estADN("") True """ if (s == ""): res = True carac = "A" and "G" and "T" and "C" for c in s: if carac == c in s: res = True if carac != c in s: res = False return (res) if __name__ == '__main__': import doctest doctest.testmod(optionflags=doctest.NORMALIZE_WHITESPACE | doctest.ELLIPSIS, verbose = True)
Je me tourne vers vous pour comprendre tout cela et avoir le bon code. Je tiens à préciser que cet exercice m'est demandé dans un contexte de cours en Licence et je dois me limiter à ce que mon prof m'a apprît en cours : Données et expressions, Fonctions, Conditions, Chaînes de caractères.
Merci d'avance pour votre aide !