Le TP est noté. Mais, si vous bloquez, faire appel à l'enseignant. Les questions qu'il faudra rédiger sur votre copie sont indiquées à l'aide d'un crayon ✎ ou de la main levée ✎.
Mais il existe également un certain nombre de fonctions natives à Python permettant de gérer les strings.
3.2 - Fonctions native ord()
Fonction native
Une fonction native est une sorte de code contenu dans une boîte :
On lui donne une ou des données sur lesquelles travailler (les ENTREES)
Elle répond en fournissant sa réponse (la SORTIE)
Obtenir la valeur d'encodage d'un caractère
La fonction ord() permet de récupérer la valeur d'encodage ASCII des caractères basiques.
>>> ord("A")
65
TRADUCTION : Donne l'encodage du caractère A.
La syntaxe Python est simple
On note le nom de la fonction : ord
On ouvre une parenthèse : ord(
On note les paramètres d'entrée, séparés par des virgules éventuellement : ord("A"
On ferme la parenthèse ord("A")
06° Utiliser Python pour trouver, une à une, les valeurs qui encodent le texte "Hello !".
Pour la première :
>>> ord("H")
?
3.3 - Fonction native len()
Obtenir le nombre de caractères d'un string
La fonction native len() permet d'obtenir le nombre de caractères présents dans un string.
>>> len("ABCD")
4
TRADUCTION : Donne le nombre de caractères dans le string "ABCD".
Même chose mais avec un espace dans la chaîne de caractères :
>>> len("ABC D")
5
TRADUCTION : Donne le nombre de caractère dans le string "ABC D".
On notera que l'espace est donc un caractère comme un autre puisqu'il compte parmi les 5 caractères de "ABC D". Le caractère espace n'est pas "le vide".
Le caractère "vide"
Il existe un moyen de signaler le caractère vide : ouvrir un string et le refermer immédiatement : "".
>>> "a" + "" + "b"
'ab'
07° Demander poliment à python le nombre de caractères dans le string fourni ci-dessous
anticonstitutionnellement
✎ 08° Demander poliment à python le nombre de caractères dans la séquence ADN fournie ci-dessous. Notez ce que vous avez noté dans la console et le résultat sur votre feuille. Par contre, ne notez pas toute la séquence ci-dessous, notez juste ADN.
Donne moi le caractère qui correspond à l'encodage 65.
>>> chr(66)
'B'
Donne moi le caractère qui correspond à l'encodage 66.
✎ 09° Demander poliment à Python quels sont les caractères qui correspondent aux valeurs encodées par la suite de nombres 66 puis 111 et enfin 98. Notez sur votre feuille les évaluations que vous avez effectué.
>>> ?
?
10° Ceci n'est pas une question. Juste une manipulation à faire.
En plus des caractères dits "imprimables", il existe des caractères de "contrôle" : ils n'affichent rien mais provoquent un effet d'une façon ou d'une autre.
Ces caractères sont également encodés par une valeur d'encodage.
Visualiser les réponses de la fonction chr() lorsqu'on lui demande à quoi correspondent 7 ou 10.
>>> chr(7)
'\x07'>>> chr(10)
'\n'
Nous allons voir le sens de ces deux caractères question 11.
11° Copier-coller au fur et à mesure les évaluations proposées dans l'encadré ci-dessous.
3.5 Fonction native print()
Interpréter une donnée et l'afficher dans la console
Cette fonction permet de forcer l'affichage dans la console à destination d'un humain.
Ainsi, si on affiche un string, Python ne va pas placer les guillemets qui sont juste une indication pour l'interpréteur Python, pas pour l'humain qui veut lire le contenu.
>>> print("Bonjour à toi")
Bonjour à toi
TRADUCTION : Affiche le string "Bonjour à toi" dans la console pour un lecteur humain.
>>> print("Bonjour\nà\ntoi")
Bonjour
à
toi
TRADUCTION : Affiche le string "Bonjour\nà\ntoi" dans la console pour un lecteur humain.
On peut donc voir que \n veut dire "passe à la ligne". Le n vient du n de new line.
>>> ord("\n")
10
Et le code ASCII du passage à la ligne est ...10.
Encore plus fort (si vous avez du son)
>>> print("Bonjour\nà\ntoi\x07")
Bonjour
à
toi
TRADUCTION : Affiche le string "Bonjour\nà\ntoi\x07" dans la console pour un lecteur humain.
On peut donc entendre que \x07 veut dire "fait TING !".
>>> ord("\x07")
7
Et le code ASCII de ce signal est ...7.
Pour taper \ sur un clavier, c'est ALT-GR maintenue appuyée et la touche 8.
12° Remplacer les 3 points dans le print() pour obtenir l'affichage proposé avec un petit TING final.
L'opérateur de différence se note != . Par exemple, a != b revient à se poser la question suivante à l'interpréteur Python : "a est-il différent de b ?"
✎ 14° L'opérateur multiplication * est plus prioritaire que l'opérateur addition +. Voici comment Python comprend l'expression suivante :
>>> 5 + 2 * 10
25>>> 5 + (2 * 10) # Python réagit comme si vous aviez placé ces parenthèses25
Sur le même principe, l'opérateur addition + est plus prioritaire que l'opérateur d'égalité ==.
Question : L'interpréteur Python comprend-t-il cette expression comme dans le cas A ou le cas B ?
>>> 40 != 30 + 10
False
Propostion d'interprétation A ?
>>> 40 != (30 + 10)
Propostion d'interprétation B ?
>>> (40 != 30) + 10
4.3 Opérateur d'appartenance in
On peut demander très facilement à Python si un string se trouve à l'intérieur d'un autre string.
Imaginons que vous soyez allergique au soja. Vous voulez savoir si vous pouvez manger sans risque tel ou tel aliment. Il vous faut donc savoir si le mot soja apparaît dans la composition du produit.
L'opérateur d'appartenance se note in. Par exemple, a in b revient à poser la question suivante à l'interpréteur Python : "Le string a est-il présent dans le string b ?"
>>> "ab" in "azertyabazerty"
True>>> "bonjour" in "bon, ça va bien ?"
False>>> "soja" in "blé; oeuf; soja; huile de tournesol"
True>>> "soda" in "blé; oeuf; soja; huile de tournesol"
False
✌ 15° Demander poliment à python si la séquence CTCCA est présente dans le bout d'ADN suivant :
L'interpréteur Python exécute les lignes une par une.
Tant qu'il n'a pas fini une ligne, il ne passera pas à la suivante.
Une fois qu'une ligne est exécutée, on ne peut pas revenir en arrière : elle est réalisée.
Pour comprendre un programme Python, il est donc vital de ne pas "sauter" d'instructions mais de comprendre TOUTES les lignes DANS L’ORDRE d’exécution.
Console interactive
L'invite de commande est notée >>>
On valide une ligne avec ENTREE.
Impossible de modifier une ligne déjà exécutée.
En plaçant votre souris sur la console, on peut récupérer les dernières instructions avec la flèche UP.