ALGORITHMES OPÉRANT SUR UNE STRUCTURE SÉQUENTIELLE PAR BOUCLES IMBRIQUÉES(1) TP
Algorithmes opérant sur une structure sé- quentielle par boucles imbriquées (1) – TP
9Rappels sur les chaînes de caractères
Définition 9.1
Leschaînes de caractères(string) permettent de manipuler du texte. Une chaîne de caractères se note entre guillemets (ou entre apostrophes, nous vous conseillons d’éviter les apostrophes).
Un caractère est une chaîne de caractères de longueur 1.
Python – Opérations sur les chaînes de caractères
1 # Affectation
2 chaine1 = "Ceci est une"
3 chaine2 = " chaîne de caractères"
4 # Extraction
5 chaine1[5]
6 chaine2[-2]
7 chaine1[3:7]
8 # Répétition
9 2*chaine1
10 # Concaténation
11 chaine1 + chaine2
12 # Longueur
13 len(chaine1)
14 # Egalité de deux chaînes
15 # (dans ce TP nous ne nous autoriserons qu'à tester l'égalité de deux caractères)
16 chaine1 == chaine2
17 # Chaîne vide
18 ch = ""
19 # Test d'appartenance à une chaîne de caractères (nous ne l'utiliserons pas dans ce TP !)
20 "b" in "abc"
21 "d" in "abc"
22 "abra" in "abracadabra"
23 "aa" in "abracadabra"
Les chaînes de caractères sont immuables (on ne peut pas modifier un caractère en particulier dans une chaîne de caractères).
Attention
Python – Opérations sur les chaînes de caractères
1 >>> chaine = "Bonjonr"
2 >>> chaine[5] = "u"
3 Traceback (most recent call last):
4 File "<console>", line 1, in <module>
5 TypeError: 'str' object does not support item assignment
G. BOUTARD 1 Lycée GAY-LUSSAC
TP ALGORITHMES OPÉRANT SUR UNE STRUCTURE SÉQUENTIELLE PAR BOUCLES IMBRIQUÉES(1)
Exercice
L’objectif de cet exercice est de déterminer le nombre d’apparition d’une chaîne de caractères dans un texte. C’est ce qui se passe quand on cherche un texte sur une page Web par exemple (en général, le raccourci clavierCtrl+F).
On considère une chaîne de caractèrestexteet une autre appeléemotif.
1. Écrire une fonctionchainesEgales(chaine1,chaine2)qui renvoie le booléenTrue si les deux chaînes de caractères sont identiques et qui renvoieFalsedans le cas contraire. Seules les comparaisons entre caractères sont autorisées.
2. En supposant les chaîneschaine1etchaine2de même longueurm, compter le nombre maximum de compa- raisons de caractères effectué.
3. La fonction suivanteoccurence(texte,motif)prend en paramètres deux chaînes de caractères et renvoie le nombre de fois oùmotifapparaît danstexte.
Python –occurence(texte,motif)
1 def occurence(texte,motif):
2 '''
3 Entrée : deux chaînes de caractères
4 Sortie : nombre de fois où motif apparaît dans texte.
5 '''
6 compteur = 0
7 ltexte = len(texte)
8 lmotif = len(motif)
9 for i in range(ltexte - lmotif + 1):
10 extrait = texte[...]
11 # A compléter
12
13 return compteur
4. En supposant la chaînetextede longueurnet la chaînemotifde longueurm, avecnÊm, compter le nombre maximum de comparaisons de caractères effectué. Étudier le cas oùn<m.
5. Écrire une fonctionestDans(texte,motif)qui renvoieTruesi la chaînemotifest dans la chaînetexteet Falsesinon.
PCSI 2021 – 2022 2 G. BOUTARD