Informatique et Sciences du Numérique 2012 Chaînes de caractères : La puissance d'un langage se mesure entre autres à sa faculté à traiter les chaînes de caractères. Python est doté de nombreuses possibilités de traitement de chaînes. Déclaration et initialisation d'une chaîne, type: Dans un Terminal, sur la ligne de commande : >>>cadena='des mots' # Remarquer les quotes ' ' que l'on peut aussi remplacer par " ". >>>print (cadena) >>>type(cadena) La dernière instruction affiche <class 'str'>. La variable cadena est reconnu par Python comme une variable de type string ou chaîne. Autres types : Tester : >>>a=10 >>>type(a) >>>b=(10==2) >>>type(b) >>>a=3.14159 >>>type(a) Quels sont les types affichés? Revenons au type string (chaîne de caractères). Accès à un caractère de la chaîne : >>>cadena='des mots' >>>print (cadena[1]) Les caractères sont numérotés de gauche à droite. Le premier caractère a le numéro 0 (zéro) Pour désigner un caractère, on utilise nom_variable [NUMERO] (crochets [ ]) Qu'affiche >>>print (cadena[0]) ? Qu'affiche >>>print (cadena[4]) ? Pourquoi >>>print (cadena[3]) semble ne rien afficher? Pourquoi >>>print (cadena[8]) provoque-t-il une erreur? Que signifie, en français, cette erreur? Une fonction intéressante: La fonction len(nom_variable) donne la longueur ( nombre de caractères) de la chaîne contenue dans nom_variable. >>>cadena='des mots' >>>print (len(cadena)) 8 Informatique et Sciences du Numérique 2012 Expliquer alors complètement pourquoi >>>print (cadena[8]) provoque une erreur? Qu'affiche >>>print (cadena[len(cadena)-1])? (toujours sur la chaîne démo 'des mots') Excel possède une fonction semblable. Quel est son nom? Rechercher en lançant Excel. Excel possède aussi une fonction de concaténation (vue précédemment). Quel est son nom? Ecrire un programme qui affiche la chaîne de caractères 'noel' à l'envers. Spécifications : - une variable de type chaîne contenant 'noel' - le programme devra effectuer une concaténation - le programme devra contenir un commentaire - son nom après sauvegarde sera 'palindrome.py' - le programme devra marcher aussi si on remplace 'noel' par 'kool' Extraire une partie de chaîne : Toujours à partir de la chaîne démo 'des mots'. >>>cadena='des mots' >>>extrait=cadena[2:5] >>>print(extrait) sm On utilise nom_variable[i:j] pour extraire dans la chaîne nom_variable les caractères de la position i (inclus) à j (non inclus). Quelle est la bonne syntaxe pour extraire 'mot' : extrait=cadena[4:6] ou extrait=cadena[5:8] ou extrait=cadena[4:7] ou extrait=cadena[5:7] ? Excel possède une fonction semblable. Quelles sont les différences entre Python et Excel? Ecrire un programme qui, à partir des mots : 'potion, 'être', 'gamma' affiche le mot 'programmation'. Remarque : cadena[i:] extrait de la position i (inclus) jusqu'à la fin de la chaîne. Révisions Sans écrire le programme, dire seulement quelle instruction ou fonction, il faut utiliser pour : obtenir la chaîne 'voir' à partir de la chaîne 'savoir' obtenir la longueur de la chaîne 'pas très long' accéder à la lettre accentuée de la chaîne précédente former la chaîne 'chansonnette' à partir des chaînes 'chante' et 'sonnet' former la chaîne 'aisé' à partir de la chaîne 'aseptisé' obtenir la chaîne 'passeport' à partir des chaînes 'port' et 'passe' Ecrire un programme qui transforme 'option informatique' en 'portique'.