Algorithmique et techniques de programmation PROF : S.BENGHAZOUANI Chapitre 10 : Les chaines de caractères Le type de données str représente une séquence de caractères Unicode. Operations sur les chaines de caractères >>> Nom = 'fathi' # entre apostrophes >>> print Nom >>> print type(Nom) >>> Prenom = "MOHAMMED" # on peut utiliser les guillemets >>> print Prenom >>> print Nom,Prenom # ne pas oublier la virgule >>> chaine = 'Aujourd'hui' >>> chaine = 'Aujourd\'hui' >>> print chaine >>> chaine = "Aujourd'hui" >>> print chaine >>> chaine = 'Première ligne\nDeuxième ligne' >>> print chaine >>> chaine = """Première ligne Deuxième ligne""" >>> print chaine On ne peut pas mélanger les chaines de caractères et les entiers (ici type str et type int) : >>> chaine = '17.45' >>> print type(chaine) >>> chaine = chaine + 2 La fonction float() permet de convertir un type str en type float >>> nombre = float(chaine) >>> print nombre >>> print type(nombre) >>> nombre = nombre + 2 # en plus court : nombre += 2 >>> print nombre La concaténation + >>> >>> >>> >>> chaine = Nom + Prenom print chaine chaine = Prenom + ' ' + Nom print chaine La fonction len() retourne la longueur de la chaîne de caractères : >>> print len(chaine) Répétition >>>s1=’stop’ 1 Algorithmique et techniques de programmation PROF : S.BENGHAZOUANI >>>S2=s1*3 >>>s2 Accès On peut accéder à chaque caractère de la chaine, mais on ne peut pas le modifier. S=”python” S[0] donne ‘p’ S[5] donne’ n’ S[-1] donne ‘n’ S[-3] donne ‘h’ Extraction S[1:5] donne ‘ytho’ #5non compris S[-3 :] donne ‘hon’#-3 compris jusqu’à la fin S[2 :] donne’thon’#2 compris jusqu’à la fin S [ ::2] donne’pto’# du début à la fin mais de 2 en 2 TD N°5 Les chaînes de caractères EXERCICE N° 1 : Ecrire un programme qui demande l'introduction du nom et du prénom de l'utilisateur et qui affiche alors la longueur totale du nom sans compter les espaces. (Écrire une fonction qui calcul la longueur) Exemple: Introduisez votre nom et votre prénom: Ahmed benjelloun Bonjour Ahmed benjelloun ! Votre nom est composé de 11 lettres. EXERCICE N° 2 : a) Ecrire un programme qui lit un texte, la mémorise dans une variable TXT b) Ecrire une fonction qui calcul la longueur L de la chaîne TXT. c) Ecrire une fonction qui calcul le nombre d’apparition d’un caractère quelconque donné par l’utilisateur dans le texte. d) Ecrire une fonction qui recopie la chaine (dans une nouvelle variable) en l'inversant. voici une petite phrase ! ! esarhp etitep enu iciov EXERCICE N° 3: Ecrire une fonction « supprimer_cara (TXT,X) » qui enlève toutes les apparitions du caractère X dans le texte TXT. Les modifications se feront dans une autre variable TXT2. Exemple: Cette ligne contient quelques lettres e. Ctt lign contint qulqus lttrs . 2 Algorithmique et techniques de programmation PROF : S.BENGHAZOUANI EXERCICE N° 4: 1 L’ordre lexicographique est celui du dictionnaire. Ecrire un programme qui lit deux chaînes de caractères CH1 et CH2, les compare lexicographiquement et affiche le résultat: Exemple: Introduisez la première chaîne: ABC Introduisez la deuxième chaîne: abc "ABC" précède "abc" 2 Ecrire une fonction trier_liste_chaine(L) qui recoit en argument une liste L de n chaines de caractères alphabétiques, la fonction trie et retourne la liste Ltriée suivant l'order alphabétique. EXERCICE N° 5: 1 Ecrire une fonction alphabetique(ch) qui recoit en argument une chaine de caractères ch, la fonction retourne la chaine ch après avoir supprimé tous les caractères qui ne sont pas des caractères alphabétiques dans cette chaine. 2 Ecrire un programme qui lit deux chaînes de caractères CH1 et CH2 et qui copie la première moitié de CH1 et la première moitié de CH2 dans une troisième chaîne CH3. Afficher le résultat. EXERCICE N° 6: Ecrire un programme qui lit un verbe régulier en "er" au clavier et qui en affiche la conjugaison au présent de l'indicatif de ce verbe. Contrôlez s'il s'agit bien d'un verbe en "er" avant de conjuguer. Exemple: Verbe : fêter je fête tu fêtes il fête nous fêtons vous fêtez ils fêtent EXERCICE N° 7: Ecrire un programme qui lit une chaîne de caractères CH et qui convertit toutes les majuscules dans des minuscules et vice-versa. Le résultat sera mémorisé dans une autre variable CH2. EXERCICE N° 8: Ecrire un programme qui vérifie si une chaîne CH introduite au clavier est un palindrome: utiliser une fonction Rappel: Un palindrome est un mot qui reste le même qu'on le lise de gauche à droite ou de droite à gauche: Exemples: PIERRE ==> n'est pas un palindrome OTTO ==> est un palindrome 23432 ==> est un palindrome 3 Algorithmique et techniques de programmation PROF : S.BENGHAZOUANI EXERCICE N° 9: 4