Exercices Chaînes et Fonctions en Python⚓︎
Chaque exercice ci-dessous utilise la boucle for.
Ex
On rappelle que les voyelles sont les lettres aeiouy (on pourra négliger, ou pas.., les voyelles accentuées)
Créer une fonction voyelles(phrase:str)->str qui :
- reçoit en entrée une
phrase - renvoie en sortie la même
phraseà laquelle on a enlevé toutes ses voyelles
Ex
Créer une fonction nombre_dans(lettre:str, phrase:str)->int qui :
- reçoit en entrée une
lettre, et unephrase - renvoie en sortie le nombre d'occurences (combien y en a t il?) de la
lettre(passée en entrée) dans laphrase(passée en entrée)
Ex
Créer une fonction remplace(lettre:str, chaine:str, phrase:str)->str qui :
- reçoit en entrée une
lettre, unechaineet unephrase - renvoie en sortie une chaine de caractères
nouvelledans laquelle toutes les occurences de lalettre(reçue en entrée) sont remplacées parchainedans laphrase
Par exemple, Si
lettre='o'chaîne='oha'phrase='allo maman'
Alors la phrase renvoyée doit être
alloha maman
Ex
On rappelle les codes ASCII des principaux caractères alphabétiques :
| Caractère | A | B | C | ... | Z |
|---|---|---|---|---|---|
| Code ASCII Ordinal |
\(65\) | \(66\) | \(67\) | ... | \(90\) |
et
| Caractère | a | b | c | ... | z |
|---|---|---|---|---|---|
| Code ASCII Ordinal |
\(97\) | \(98\) | \(99\) | ... | \(122\) |
On rappelle également que les fonctions chr() et ord() permettent les conversion de l'une des ligne de ce tableau vers l'autre (à vous de vous en souvenir..)
-
Créer une fonction
vers_maj(phrase:str)->strqui :- reçoit en entrée une phrase, prétendument en minuscules (on pourra faire comme si)
- renvoie en sortie la même phrase en MAJUSCULES
-
Modifier l'algorihtme précédent pour qu'il traite de manière neutre les caractères contenus dans la variable
neutre = '.,:!': cela veut dire que ces caractères ne doivent pas être modifiés, et doivent être réinsérés tels quels dans la phrase en majuscules, en sortie.
Ex
Créer une fonction freq(c:str, phrase:str)->float qui :
- reçoit en entrée deux variables :
- un caractère
c:str - une phrase
phrase:str
- un caractère
- renvoie en sortie la frequence
f:floatdu caractère reçu en entrée, dans laphrasedonnée en entrée.
Par exemple, si :
c = "a"phrase = "allo maman"
Alors la fréquence du caractère c="a" dans la phrase "allo maman"` peut être calculée comme suit :
- nombre de
adans la phrase = \(3\) lettresadans la phrase - longueur de la phrase = \(10\) caractères dans la phrase (l'espace compte)
- donc la fréquence vaut \(f=\dfrac {3}{10}= 0.3\). Le nombre flottant à renvoyer dans ce cas est donc \(0.3\)
Ex
Créer une fonction estOK(mdp:str)->bool qui:
- reçoit en entrée un mot de passe
mdp(une châine de caractères) - renvoie en sortie :
Truelorsque le mot de passe vérifie (TOUTES) les règles suivantes- au moins 10 caractères dans le
mdp - le
mdpdoit contenir au moins une minuscule - le
mdpdoit contenir au moins une MAJUSCULE - le
mdpdoit contenir au moins un chiffre (de \(0\) à \(9\))
- au moins 10 caractères dans le
Falsesinon
Ex
-
Créer une fonction
renverse(phrase:str)->strqui:- reçoit en entrée une
phrase(chaîne de caractères) - renvoie en sortie la même phrase mais écrite à l'envers
Par exemple, la phrase initiale
allo mamandoit être renvoyée comme la chaînenamam olla - reçoit en entrée une
-
(En déduire/) Créer une (deuxième) fonction
estPalindrome(mot:str)->boolqui (peut utiliser la fonction précédente) :- reçoit en entrée un
mot(chaîne de caractères) - renvoie en sortie le booléen :
Truesi ce mot est un palindromeFalsesinon
Def
Rappelons qu'un palindrome est un mot (en fait, plus généralement une phrase) qui s'écrit de la même manière à l'endroit (de gauche à droite) et à l'envers (de droite à gauche). Par exemple, le mot KAYAK est un palindrome.
- reçoit en entrée un