bonsoir,
j'ai l'énoncé suivant :
j'ai codé ces lignes :Énoncé
Écrire une fonction trans(text, replaceA, replaceB), qui reçoit trois paramètres:
text : une chaîne de caractères
replaceA : un couple (oldA, newA) où oldA est un caractère et newA un texte
replaceB : un couple (oldB, newB) où oldB est un caractère et newB un texte
et qui renvoie le résultat de la transformation suivante : chaque occurrence du symbole oldA dans la chaîne text est remplacée par la chaîne newA, et simultanément chaque occurrence du symbole oldB est remplacée par la chaîne newB.
Pour simplifier, vous pouvez supposer que oldA est différent de oldB.
Exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 >>> print(trans('ABBAB', ('A','AB'), ('B','BA'))) >>> 'ABBABAABBA'
mais le résultat qu'il donne pour trans('chicane', ('c', 'KH'), ('i', 'ii'))) est le suivant : KHhicane alors que la résultat attendu est : KHhiiKHane.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
36
37 def isprefixe(texte,mot,i): """Vérifie si mot a une occurrence dans texte en position i""" B = True j = 0 while (j < len(mot)) and B: if texte[i + j] != mot[j]: B = False j += 1 return B def cherche_occurrences(texte, mot): """Donne la liste de toutes les occurrences de mot dans texte""" occ = [] # liste des occurrences for i in range(len(texte) - len(mot) + 1): if isprefixe(texte, mot, i): occ.append(i) return occ replaceA=("","") replaceB=("","") def trans(text, replaceA, replaceB): print(text) """Donne la liste de toutes les occurrences de mot dans texte""" occ1=cherche_occurrences(text,replaceA[0]) occ2 =cherche_occurrences(text,replaceB[0]) # liste des occurrences if(replaceA[0]!=replaceB[0]): print(occ1) for i in range(len(occ1)- 1): text = replaceA[1] + text[occ1[i]+1:] for j in range(len(occ2)-1): text = replaceB[1] + text[occ2[j]+1:] return text print(trans('chicane', ('c', 'KH'), ('i', 'ii')))
Partager