Chaînes de caractères
Fonctions et méthodes de base
Pour les exercices qui suivent, donner une réponse avant de tester avec un interpréteur Python.
print(len("L'informatique, c'est fantastique !"))
print("Oui "*2)
t = "jour" e = "bon" print(e+t)
print("C".join(["A", "D", "!"])
print("L'informatique, c'est fantastique !"[2:])
print("L'informatique, c'est fantastique !"[:-2])
print("L'informatique, c'est fantastique !"[::-2])
"L'informatique, c'est fantastique !".split()
list("Pura Vida !")
".".join(["a", "b", "c"])
"*_*".join(list("azerty"))
"i" in "L'informatique, c'est fantastique !"
"L'informatique, c'est fantastique !".lowercase()
"L'informatique, c'est fantastique !".index("i")
sorted("azerty")
len , split , join , lowercase , sorted
Sous-chaînes
Connaissances supplémentaires requises : Fonctions, Boucles, Structures conditionnelles
Écrire une fonction appartient() qui accepte deux arguments de type chaîne de caractères et renvoie True si la première chaîne est comprise dans la deuxième, et False dans le cas contraire. Le résultat ne doit pas dépendre de la casse (minuscule-majuscule) !
Exemple : appartient(« Tique », « L’informatique, c’est fantastique ! ») doit renvoyer True
Écrire une fonction compter() qui accepte deux arguments de type chaîne de caractères et renvoie le nombre d’occurrences de la première chaîne dans la deuxième. Le résultat ne doit pas dépendre de la casse (minuscule-majuscule) !
Exemple : compter(« Tique », « L’informatique, c’est fantastique ! ») doit renvoyer 2
Écrire une fonction inverser() qui accepte trois arguments de type chaîne de caractères et renvoie une nouvelle chaine de caractères, copie de la troisième mais dans laquelle la première chaine (si elle s’y trouve), est remplacée par la deuxième, et vice-versa. Le résultat ne doit pas dépendre de la casse (minuscule-majuscule) !
Exemple : inverser(« info », « anta », « L’informatique, c’est fantastique ! ») doit renvoyer « L’antarmatique, c’est finfostique ! »
Comptages
Connaissances supplémentaires requises : Fonctions, Boucles, Structures conditionnelles, Chaînes de caractères
Écrire un programme permettant de compter le nombre de mots dans une phrase.
On considère comme un mot toute séquence de caractères sans espace ni caractère de ponctuation.
Exemple : « L’informatique, c’est fantastique ! » → 5 mots
Modifier ce programme de telle sorte d’obtenir une fonction acceptant une phrase (chaîne de caractères) et renvoyant la liste des mots de cette phrase.
Exemple : « L’informatique, c’est fantastique ! » → [« L », « informatique », « c », « est », « fantastique »]
Écrire une fonction lettrePlusFrequente() permettant de déterminer quelle lettre revient le plus fréquemment dans un mot, et le nombre de ses occurences.
Exemple : lettrePlusFrequente(« informatique ») doit renvoyer (« i », 2)
[reveal heading= »%image% Proposition de correction »]
def lettrePlusFrequente(mot): def compte(lettre, mot): n = 0 for c in mot: if c == lettre: n += 1 return n maxi = 0 for c in mot: n = compte(c, mot) if n > maxi: lettre = c maxi = n return lettre, maxi[/reveal]
Analyse
Connaissances supplémentaires requises : Fonctions, Boucles, Structures conditionnelles
Écrire une fonction analyser() permettant de vérifier qu’une expression (mathématique ou non) est correctement parenthésée.
Exemples :
- analyser(« 2*(a+5)/((x-1)**2) ») doit renvoyer True
- analyser(« 2*(a+(5/(x(-1)**2) ») doit renvoyer False
Change de devises
Connaissances supplémentaires requises : Boucles, Structures conditionnelles
- Un utilisateur saisi un montant, suivi du symbole de la devise (« € » ou « $ »).
- Le programme affiche le montant équivalent dans l’autre devise.
- Le programme affiche alors les montants équivalents dans toutes les autres devises que celle choisie.
Javanais
Connaissances supplémentaires requises : Fonctions, Boucles, Structures conditionnelles
Le javanais, apparu en France dans la dernière moitié du XIXe siècle, est un procédé de codage argotique dont l’objectif est de rendre un texte moins compréhensible aux non initiés.
Le javanais était un jargon essentiellement parlé qui aurait été pratiqué par les prostituées et les voyous… et les résistants durant l’occupation.
Il s’agit d’une technique de stéganographie basée sur l’argot insérant une syllabe parasitaire dans les phrases.
Règles
- « av » est ajouté après chaque consonne (ou groupe de consonnes comme « ch », « cl », « ph », « tr », « qu », …) d’un mot, autrement dit avant chaque voyelle.
- si le mot commence par une voyelle, « av » est ajouté devant cette voyelle.
- « av » n’est jamais rajouté après la consonne finale d’un mot.
- si un « y » est suivi d’une voyelle, le « y » est traité comme une consonne (« moyen » est codé « mavoyaven » ).
- si un « y » est prononcé comme « i », il est traité comme une consonne suivie de la voyelle « i » (« pays » est codé « pavayavis »).
- les monosyllabes (« a », « à », « en », « un ») ainsi que les mots commençant par une voyelle prennent une syllabe supplémentaire initiale.
- le « e » muet n’impose pas la présence de syllabe supplémentaire (« tarte » est codé « tavarte »).
Écrire une fonction javanais() acceptant une chaîne de caractères et renvoyant sa version convertie en Javanais.
Exemple : « L’informatique, c’est fantastique ! » → « L’avinfavormavataviquave, c’avest favantavastaviquave ! »
Palindrome
Écrire une fonction palindrome() qui accepte une chaîne de caractères et renvoie True s’il s’agit d’un palindrome, et False dans le cas contraire. (les espaces et la ponctuation ne sont pas pris en compte !)
Exemples de palindromes célèbres :
- « Esope reste ici et se repose »
- « Éric notre valet alla te laver ton ciré » (fonctionne également avec « Luc » !)
Compression
Connaissances supplémentaires requises : Fonctions, Boucles, Structures conditionnelles, Dictionnaires
L’objectif de l’exercice est de réaliser une fonction compression() qui permet de comprimer un texte selon le principe des répétitions de sous chaînes de caractères :
- Écrire une fonction occurrences(n, texte) qui permet d’obtenir le nombre d’occurrences d’une chaine de n caractères dans un texte .
- Modifier occurrences() de telle sorte qu’elle renvoie un dictionnaire ayant pour clefs, les chaînes qui se répètent, et pour valeurs, le nombre d’occurrence de chaque chaîne.
- Modifier encore occurrences() afin que chaque valeur du dictionnaire soit la liste des indices de la chaîne (clef du dictionnaire) qui se répète.
Exemple : occurrences(2, « L’informatique, c’est fantastique ! ») renvoie {‘ue’: [12, 31], ‘iq’: [10, 29], ‘st’: [19, 27], ‘ti’: [9, 28], ‘qu’: [11, 30]}
- Écrire un algorithme simple, utilisant la fonction occurrences() , permettant de trouver la plus longue chaîne de caractères qui se répète dans le texte.