Corrigés : Chaînes de caractères et notions précédentes¶
Exercices de base¶
Exercice 1 : Inverser une chaîne¶
Exercice 2 : Compter les mots¶
def compter_mots(chaine):
return len(chaine.split())
print(compter_mots("Bonjour tout le monde")) # 4
Exercice 3 : Palindrome¶
def est_palindrome(chaine):
return chaine == chaine[::-1]
print(est_palindrome("radar")) # True
print(est_palindrome("python")) # False
Exercice 4 : Majuscules alternées¶
def majuscules_alternées(chaine):
resultat = []
for i, lettre in enumerate(chaine):
if i % 2 == 0:
resultat.append(lettre.lower())
else:
resultat.append(lettre.upper())
return "".join(resultat)
print(majuscules_alternées("python")) # "pYtHoN"
Exercice 5 : Censure de mots¶
def censurer(texte, mot_interdit):
return texte.replace(mot_interdit, "*" * len(mot_interdit))
print(censurer("Ce mot est interdit.", "interdit")) # "Ce mot est ********""
Exercice 6 : Initiales¶
def initiales(nom_complet):
mots = nom_complet.split()
resultat = ""
for mot in mots:
# On ajoute la première lettre, un point et un espace
resultat += mot[0] + ". "
# On retire l'espace final superflu avec .strip()
return resultat.strip()
print(initiales("Jean Tremblay")) # "J. T."
Exercices combinant chaînes et listes¶
Exercice 7 : Convertir une chaîne en liste de mots¶
def chaine_en_liste(chaine):
return chaine.split()
print(chaine_en_liste("Bonjour tout le monde")) # ["Bonjour", "tout", "le", "monde"]
Exercice 8 : Trouver les mots les plus longs¶
def mots_les_plus_long(mots):
if not mots:
return []
# 1. Trouver la longueur maximale
longueur_max = 0
for mot in mots:
if len(mot) > longueur_max:
longueur_max = len(mot)
# 2. Filtrer les mots qui ont cette longueur
resultat = []
for mot in mots:
if len(mot) == longueur_max:
resultat.append(mot)
return resultat
print(mots_les_plus_long(["pomme", "banane", "cerise", "ananas"])) # ["banane", "ananas"]```
Exercice 9 : Compter les voyelles dans une liste de mots¶
def compter_voyelles_liste(mots):
voyelles = "aeiouyAEIOUY"
compte = 0
for mot in mots:
for lettre in mot:
if lettre in voyelles:
compte += 1
return compte
print(compter_voyelles_liste(["pomme", "banane", "kiwi"])) # 7
Exercice 10 : Inverser l’ordre des mots¶
def inverser_mots(chaine):
mots = chaine.split()
return " ".join(mots[::-1])
print(inverser_mots("Bonjour tout le monde")) # "monde le tout Bonjour"
Exercice 11 : Filtrer les mots commençant par une lettre¶
def filtrer_mots(mots, lettre):
return [mot for mot in mots if mot.startswith(lettre)]
print(filtrer_mots(["pomme", "banane", "poire", "cerise"], "p")) # ["pomme", "poire"]
Exercices combinant chaînes et boucles/conditionnelles¶
Exercice 12 : Valider un mot de passe¶
def est_mot_de_passe_valide(mot_de_passe):
if len(mot_de_passe) < 8:
return False
if not any(c.isupper() for c in mot_de_passe):
return False
if not any(c.isdigit() for c in mot_de_passe):
return False
return True
print(est_mot_de_passe_valide("MotDePasse123")) # True
print(est_mot_de_passe_valide("motdepasse")) # False
Exercice 13 : Remplacer les voyelles par un caractère¶
def remplacer_voyelles(chaine, caractere):
voyelles = "aeiouyAEIOUY"
resultat = []
for lettre in chaine:
if lettre in voyelles:
resultat.append(caractere)
else:
resultat.append(lettre)
return "".join(resultat)
print(remplacer_voyelles("Bonjour", "*")) # "B*nj**r"
Utilisation de l’IA
Page rédigée en partie avec l’aide d’un assistant IA, principalement à l’aide de Perplexity AI. L’IA a été utilisée pour générer des explications, des exemples et/ou des suggestions de structure. Toutes les informations ont été vérifiées, éditées et complétées par l’auteur.