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 1Bienvenue dans notre QCM Python ! Que vous soyez débutant ou déjà expérimenté en programmation, ce questionnaire à choix multiples est l’occasion parfaite de tester…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,
Dans l’exercice 10 et à return il y a return "%s" % (balise, str, balise)
il n’y a que deux alors que nous avons trois le code sera le suivant return "%s" % (balise, str, balise)
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,
Dans l’exercice 10 et à return il y a
return "%s" % (balise, str, balise)il n’y a que deux alors que nous avons trois le code sera le suivant
return "%s" % (balise, str, balise)Bonjour,
dans l’exercice 12 une condition (la chaine doit être d’au moins 2 n’ai pas exigée par le programme proposé dans la solution