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.

Que s’affiche-t-il lors de l’exécution des scripts suivants ?
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])

 

Que renvoient les expressions suivantes ?
"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")

 

 

Classer les noms suivants dans une des catégories : fonction ou méthode ?

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

Écrire un programme permettant de réaliser la conversion Euros ↔ Dollars.
  • Un utilisateur saisi un montant, suivi du symbole de la devise (« € » ou « $ »).
  • Le programme affiche le montant équivalent dans l’autre devise.
 Compléter ce même programme de manière à prendre en compte d’autres devises.
  • 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.

 

Vous aimerez aussi...

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *