Avec des exercices corrigés en Python, vous pratiquerez divers concepts du langage Python. Vous commencerez par des exercices Python de base à des exercices plus avancés. La solution est fournie pour chaque exercice. Vous devez essayer de résoudre chaque problème par vous-même avant de vérifier la solution. Si vous avez des questions concernant chaque problème, nous vous encourageons à les poster sur notre forum.
Exercice 1:
Écrire un programme Python pour calculer la longueur d’une chaîne de caractères.
Exemple:
Exemple de chaîne de caractères:
waytolearnx
Résultat: 11
Solution:
str = 'waytolearnx'
# Initialiser count à 0 pour garder une trace de la longueur de la chaîne.
count = 0
# Parcourir chaque caractère de la chaîne str.
for char in str:
#Pour chaque caractère rencontré, le compteur est incrémenté de 1
count += 1
# Affiche le résultat final, qui représente la longueur de la chaînea.
print(count)
Exercice 2:
Écrire un programme Python pour compter le nombre de caractères (fréquence des caractères) dans une chaîne de caractères.
Exemple:
Exemple de chaîne de caractères:
zooom
Résultat: {'z': 1, 'o': 3, 'm': 1}
Solution:
str = 'zooom'
# Initialiser un dictionnaire vide nommé 'dict' pour stocker les fréquences de caractères.
dict = {}
# Parcourir chaque caractère 'n' de la chaîne str.
for n in str:
# Récupère les clés (caractères uniques) du dictionnaire dict.
keys = dict.keys()
# Vérifier si le caractère 'n' est déjà une clé dans le dictionnaire.
if n in keys:
# Si 'n' est déjà une clé, sa valeur (fréquence) est incrémentée de 1.
dict[n] += 1
else:
# Si 'n' n'est pas une clé, il est ajouté au dictionnaire avec une fréquence de 1.
dict[n] = 1
# Afficher le dictionnaire contenant la fréquence de chaque caractère de la chaîne.
print(dict)
Exercice 3:
Ecrivez un programme Python pour récupérer une chaîne composée des 2 premiers et des 2 derniers caractères d’une chaîne donnée. Si la longueur de la chaîne est inférieure à 2, il affiche une chaîne vide.
Exemple:
Exemple de chaîne: waytolearnx
Résultat: wanx
Solution:
str = 'waytolearnx'
# Vérifier si la longueur de la chaîne 'str' est inférieure à 2 caractères.
if len(str) < 2:
# Si la chaîne est plus courte que 2 caractères, une chaîne vide est affichée.
print('')
# Si la chaîne a au moins 2 caractères, concaténer les deux premiers caractères
# et les deux derniers caractères de la chaîne et afficher le résultat.
print(str[0:2] + str[-2:])
Exercice 4:
Ecrivez un programme Python pour générer une chaîne de caractères à partir d'une chaîne donnée dont toutes les occurrences du premier caractère seront remplacées par '@', à l'exception du premier caractère lui-même.
Exemple:
Exemple de chaîne: redémarrer
Résultat: redéma@@e@
Solution:
str = 'redémarrer'
# Récupérer le premier caractère de la chaîne str et le stocker dans la variable char.
char = str[0]
# Remplacer toutes les occurrences du caractère char par @ dans la chaîne str.
str = str.replace(char, '@')
# Reconstruire la chaîne 'str' en plaçant le 'char' original comme premier caractère
# suivi de la chaîne modifiée à partir du deuxième caractère.
str = char + str[1:]
# Afficher la chaîne de caractères 'str' modifiée.
print(str)
Exercice 5:
Écrivez un programme Python pour obtenir une seule chaîne à partir de deux chaînes données, séparées par un espace et échanger les deux premiers caractères de chaque chaîne.
Exemple:
Exemple de chaînes: 'abc', 'xyz'
Résultat: 'xyc abz'
Solution:
str1 = 'abc'
str2 = 'xyz'
# Créer une nouvelle chaîne 'new_str1' en prenant les deux premiers caractères de 'str2' et en les
# combinant avec les caractères de 'str1' en commençant par le troisième caractère.
new_str1 = str2[:2] + str1[2:]
# Créer une nouvelle chaîne 'new_str2' en prenant les deux premiers caractères de 'str1' et en les
# combinant avec les caractères de 'str2' à partir du troisième caractère.
new_str2 = str1[:2] + str2[2:]
# Concaténer 'new_str1', un espace, et 'new_str2' pour créer une seule chaîne.
print(new_str1 + ' ' + new_str2)
Exercice 6:
Écrire un programme Python pour supprimer le nième caractère (index) d'une chaîne de caractères non vide.
Exemple:
Exemple de chaîne: 'hello'
index: 1
Résultat: hllo
Solution:
str = 'hello'
n = 1
# Créer une nouvelle chaîne 'str1' qui inclut tous les caractères depuis le début de 'str' jusqu'au caractère à l'index 'n' (non inclus).
str1 = str[:n]
# Créer une nouvelle chaîne 'str2' qui inclut tous les caractères à partir du caractère à l'index 'n+1' jusqu'à la fin de 'str'.
str2 = str[n+1:]
# Afficher le résultat de la concaténation de 'str1' et 'str2', en supprimant le caractère à l'index 'n'.
print(str1 + str2)
Exercice 7:
Écrire un programme Python pour compter les occurrences de chaque mot dans une phrase donnée.
Exemple:
Exemple de chaîne: 'le chemin le plus court'
Résultat: {'le': 2, 'chemin': 1, 'plus': 1, 'court': 1}
Solution:
str = 'le chemin le plus court'
# Créez un dictionnaire vide pour stocker les fréquences des mots.
counts = dict()
# Découpe la chaîne d'entrée en une liste de mots en utilisant des espaces comme séparateurs et la stocke dans la liste 'words'.
words = str.split()
# Parcourez chaque mot de la liste 'words'.
for word in words:
# Vérifier si le mot se trouve déjà dans le dictionnaire 'counts'.
if word in counts:
# Si le mot figure déjà dans le dictionnaire, sa fréquence est incrémentée de 1.
counts[word] += 1
else:
# Si le mot ne figure pas dans le dictionnaire, ajoutez-le au dictionnaire avec une fréquence de 1.
counts[word] = 1
# Afficher le dictionnaire 'counts', qui contient les fréquences des mots.
print(counts)
Exercice 8:
Écrire un script Python qui prend une entrée de l'utilisateur et affiche cette entrée en majuscules et en minuscules.
Exemple:
Entrez une chaîne de caractères: Python
Résultat:
python
PYTHON
Solution:
# Invitez l'utilisateur à saisir et stockez les données dans str.
str = input("Entrez une chaîne de caractères:")
# Afficher le message saisie de l'utilisateur convertie en majuscules.
print(str.upper())
# Afficher le message saisie de l'utilisateur convertie en minuscules.
print(str.lower())
Exercice 9:
Écrire un programme Python qui accepte en entrée une séquence de mots séparés par des virgules et qui affiche les mots séparés en ordre (alphanumérique).
Exemple:
Exemple de chaîne: Emily, Bob, Alex, Jean
Résultat: Alex, Bob, Jean, Emily
Solution:
# Inviter l'utilisateur à saisir une séquence de mots séparés par des virgules et la stocker dans la variable str.
str = input("Entrer une séquence de mots séparés par des virgules")
# Diviser l'entrée 'str' en une liste de mots en utilisant la virgule comme séparateur et la stocker dans la liste 'words'.
words = [i for i in str.split(",")]
# Convertir la liste 'words' en un Set pour supprimer les mots en double, puis la reconvertir en une liste.
# Trier la liste résultante par ordre alphabétique et joindre les mots par des virgules.
# Enfin, afficher la liste triée et séparée par des virgules des mots uniques.
print(",".join(sorted(list(set(words)))))
Exercice 10:
Écrire une fonction Python pour créer une chaîne HTML avec des balises autour du (des) mot(s).
# Définir une fonction qui prend deux arguments, 'balise' et 'str'.
def addTags(balise, str):
# Utilise le formatage de chaîne pour créer et renvoyer une nouvelle chaîne avec la 'balise' fournie entourant 'str'.
return "<%s>%s" % (balise, str, balise)
print(addTags('i', 'Hello'))
print(addTags('b', 'Hello World!'))
Exercice 11:
Écrire une fonction Python pour insérer une chaîne de caractères au milieu d'une chaîne de caractères.
# Définissez une fonction qui prend deux arguments, 'sign' et 'str'.
def insertStr(sign, str):
# Créer et renvoyer une nouvelle chaîne en concaténant les deux premiers caractères de 'sign',
# suivis de 'str', puis les autres caractères de 'sign' à partir du troisième caractère,
return sign[:2] + str + sign[2:]
print(insertStr('{{}}', 'Python'))
print(insertStr('[[]]', 'HTML'))
Exercice 12:
Ecrivez une fonction Python pour obtenir une chaîne composée de 4 copies des deux derniers caractères d'une chaîne spécifiée (la longueur doit être d'au moins 2).
# Définir une fonction qui prend un argument, 'str'.
def copy_end(str):
# Extraire les deux derniers caractères de la chaîne d'entrée 'str' et les stocker dans 'new_str'.
new_str = str[-2:]
# Multipliez 'new_str' par 4 et renvoyez le résultat, en répétant effectivement les deux derniers caractères quatre fois.
return new_str * 4
# Appelez la fonction copy_end avec différentes chaînes et affichez les résultats.
print(copy_end('Hello'))
print(copy_end('Waytolearnx'))
Exercice 13:
Écrivez une fonction Python pour obtenir une chaîne composée des trois premiers caractères d'une chaîne spécifiée. Si la longueur de la chaîne est inférieure à 3, elle renvoie la chaîne originale.
Exemple:
extract_three('waytolearnx') -> way
extract_three('ali') -> ali
Solution:
# Définir une fonction qui prend un argument, 'str'.
def extract_three(str):
# Vérifie si la longueur de la chaîne 'str' est supérieure à 3.
if len(str) > 3:
# Si la chaîne est plus longue que 3 caractères, elle renvoie les trois premiers caractères en utilisant le découpage en tranches.
return str[:3]
else:
# Si la chaîne de caractères est inférieure ou égale à 3 caractères, la chaîne entière est renvoyée.
return str
print(extract_three('waytolearnx'))
print(extract_three('ali'))
Exercice 14:
Écrire un programme Python pour obtenir la dernière partie d'une chaîne de caractères avant un caractère spécifié.
Exemple:
Exemple de chaîne :
https://www.waytolearnx.com/exercises-python/liste
https://www.waytolearnx.com/exercises (-)
https://www.waytolearnx.com/exercises-python (/)
Solution:
str = 'https://www.waytolearnx.com/exercises-python/liste'
# Utiliser la méthode rsplit() avec '-' comme séparateur pour diviser la chaîne à partir de la droite,
# et [0] pour obtenir la partie avant le dernier caractère '-'. Ensuite, affichez le résultat.
print(str.rsplit('-', 1)[0])
# Utiliser la méthode rsplit() avec '/' comme séparateur pour diviser la chaîne à partir de la droite,
# et [0] pour obtenir la partie avant le dernier caractère '/'. Ensuite, affichez le résultat.
print(str.rsplit('/', 1)[0])
Exercice 15:
Écrire une fonction Python pour inverser une chaîne de caractères si sa longueur est un multiple de 4.
# Définir une fonction qui prend un argument 'str'.
def reverse(str):
# Vérifie si la longueur de la chaîne str est divisible par 4 sans reste.
if len(str) % 4 == 0:
# Si la longueur est divisible par 4, inversez les caractères dans str et joignez-les.
return ''.join(reversed(str))
# Si la longueur de 'str' n'est pas divisible par 4, renvoyer 'str' tel quel.
return str
print(reverse('Ruby'))
print(reverse('Python'))
Éditeur de code Python: Testez votre code en ligne!
QCM Python – Partie 1Questions pratiques pour testez vos connaissances sur la programmation Python à savoir des structures conditionnelles, des opérations logiques, des boucles, des fonctions, etc. Testez votre…Lire plus
Bonjour,
Concernant l’exercice 9, il me semble (mais je peux me tromper, mon incompréhension est peut-être dans le mot alpha-numérique) qu’il y a une erreur dans la solution proposée.
Ma compréhension de l’énoncé est la suivante, trier par ordre alphabétique la liste suivante :
Emily, Bob, Alex, Jean
or la solution proposé retourne : Alex, Bob, Jean, Emily au lieu de : Alex, Bob, Emily, Jean
Le code pour retourner la liste triée par ordre alphabétique :
str = input("Entrer une séquence de mots séparés par des virgules : ")
print(" ".join(sorted(list(str.split()))))
Note que si vous vouliez trie sur la valeur ascii de la première lettre de chaque mot le code propose ne fonctionne pas non plus.
Bonjour,
Concernant l’exercice 9, il me semble (mais je peux me tromper, mon incompréhension est peut-être dans le mot alpha-numérique) qu’il y a une erreur dans la solution proposée.
Ma compréhension de l’énoncé est la suivante, trier par ordre alphabétique la liste suivante :
Emily, Bob, Alex, Jean
or la solution proposé retourne : Alex, Bob, Jean, Emily au lieu de : Alex, Bob, Emily, Jean
Le code pour retourner la liste triée par ordre alphabétique :
Note que si vous vouliez trie sur la valeur ascii de la première lettre de chaque mot le code propose ne fonctionne pas non plus.