Python est un langage de programmation populaire et polyvalent, apprécié pour sa simplicité et sa lisibilité. Que vous soyez débutant ou développeur expérimenté, Python offre une gamme d’outils et de bibliothèques pour réaliser divers projets. Dans cet article, nous allons couvrir les bases de Python à travers une série d’exercices corrigés. Ces exercices vous aideront à comprendre les concepts fondamentaux de Python et à pratiquer votre code.
Avant de commencer à programmer en Python, vous devez installer Python sur votre machine. Vous pouvez télécharger Python depuis le site officiel python.org. Suivez les instructions pour votre système d’exploitation.
Le programme traditionnel pour débuter avec un nouveau langage de programmation est “Hello, World!”. Voici comment le réaliser en Python :
print("Hello, World!")
Lorsque vous exécutez ce code, Python affichera le texte Hello, World!
.
Python est un langage dynamiquement typé, ce qui signifie que vous n’avez pas besoin de déclarer le type d’une variable. Voici quelques exemples :
# Déclaration de variables
nom = "Alice" # Chaîne de caractères
age = 30 # Entier
taille = 1.75 # Flottant
est_programmeur = True # Booléen
print(nom, age, taille, est_programmeur)
Énoncé :
Écrivez un programme qui demande à l’utilisateur de saisir deux nombres et affiche leur somme.
Solution :
# Demande de saisie des nombres
nombre1 = float(input("Entrez le premier nombre : "))
nombre2 = float(input("Entrez le deuxième nombre : "))
# Calcul de la somme
somme = nombre1 + nombre2
# Affichage du résultat
print("La somme des deux nombres est :", somme)
Énoncé :
Écrivez un programme qui vérifie si un nombre saisi par l’utilisateur est pair ou impair.
Solution :
# Demande de saisie du nombre
nombre = int(input("Entrez un nombre : "))
# Vérification de la parité
if nombre % 2 == 0:
print("Le nombre est pair.")
else:
print("Le nombre est impair.")
Énoncé :
Écrivez un programme qui calcule la factorielle d’un nombre donné par l’utilisateur.
Solution :
# Demande de saisie du nombre
nombre = int(input("Entrez un nombre pour calculer sa factorielle : "))
# Calcul de la factorielle
factorielle = 1
for i in range(1, nombre + 1):
factorielle *= i
# Affichage du résultat
print("La factorielle de", nombre, "est", factorielle)
Énoncé :
Écrivez un programme qui inverse une chaîne de caractères saisie par l’utilisateur.
Solution :
# Demande de saisie de la chaîne
chaine = input("Entrez une chaîne de caractères : ")
# Inversion de la chaîne
chaine_inversee = chaine[::-1]
# Affichage du résultat
print("La chaîne inversée est :", chaine_inversee)
Énoncé :
Écrivez un programme qui vérifie si un nombre donné par l’utilisateur est un nombre premier.
Solution :
# Demande de saisie du nombre
nombre = int(input("Entrez un nombre pour vérifier s'il est premier : "))
# Vérification de la primalité
if nombre > 1:
for i in range(2, int(nombre ** 0.5) + 1):
if (nombre % i) == 0:
print(nombre, "n'est pas un nombre premier.")
break
else:
print(nombre, "est un nombre premier.")
else:
print(nombre, "n'est pas un nombre premier.")
Ces exercices de base vous permettront de vous familiariser avec les concepts fondamentaux de Python. En pratiquant régulièrement, vous développerez des compétences solides en programmation.
La pratique est essentielle pour maîtriser un langage de programmation. Voici quelques cas pratiques qui vous permettront d’appliquer les concepts de base de Python dans des situations réelles. Ces exercices couvrent divers aspects de la programmation, des calculs mathématiques aux manipulations de fichiers et à l’utilisation des bibliothèques standard.
Énoncé :
Écrivez un programme de calculatrice qui permet à l’utilisateur de choisir une opération (addition, soustraction, multiplication, division) et de saisir deux nombres. Le programme doit effectuer l’opération choisie et afficher le résultat.
Solution :
# Demande de saisie de l'opération
operation = input("Choisissez une opération (+, -, *, /) : ")
# Demande de saisie des nombres
nombre1 = float(input("Entrez le premier nombre : "))
nombre2 = float(input("Entrez le deuxième nombre : "))
# Exécution de l'opération
if operation == '+':
resultat = nombre1 + nombre2
elif operation == '-':
resultat = nombre1 - nombre2
elif operation == '*':
resultat = nombre1 * nombre2
elif operation == '/':
if nombre2 != 0:
resultat = nombre1 / nombre2
else:
resultat = "Erreur : Division par zéro."
else:
resultat = "Opération non valide."
# Affichage du résultat
print("Le résultat de l'opération est :", resultat)
Énoncé :
Écrivez un programme qui permet à l’utilisateur de gérer une liste de courses. Le programme doit permettre d’ajouter des articles, de supprimer des articles et d’afficher la liste actuelle des courses.
Solution :
# Initialisation de la liste de courses
liste_de_courses = []
# Fonction pour afficher le menu
def afficher_menu():
print("\nMenu :")
print("1. Ajouter un article")
print("2. Supprimer un article")
print("3. Afficher la liste de courses")
print("4. Quitter")
# Fonction pour afficher la liste de courses
def afficher_liste():
if liste_de_courses:
print("\nListe de courses :")
for index, article in enumerate(liste_de_courses, start=1):
print(f"{index}. {article}")
else:
print("\nLa liste de courses est vide.")
# Boucle principale
while True:
afficher_menu()
choix = input("Choisissez une option : ")
if choix == '1':
article = input("Entrez le nom de l'article à ajouter : ")
liste_de_courses.append(article)
print(f"{article} a été ajouté à la liste de courses.")
elif choix == '2':
afficher_liste()
index = int(input("Entrez le numéro de l'article à supprimer : "))
if 0 < index <= len(liste_de_courses):
article_supprime = liste_de_courses.pop(index - 1)
print(f"{article_supprime} a été supprimé de la liste de courses.")
else:
print("Numéro d'article invalide.")
elif choix == '3':
afficher_liste()
elif choix == '4':
print("Au revoir !")
break
else:
print("Option non valide. Veuillez réessayer.")
Énoncé :
Écrivez un programme qui lit le contenu d’un fichier texte et compte le nombre de mots dans ce fichier. Ensuite, le programme doit écrire le résultat dans un nouveau fichier texte.
Solution :
# Lecture du fichier source
try:
with open('source.txt', 'r') as fichier_source:
contenu = fichier_source.read()
except FileNotFoundError:
print("Le fichier source.txt n'a pas été trouvé.")
exit()
# Comptage des mots
mots = contenu.split()
nombre_de_mots = len(mots)
# Écriture du résultat dans un nouveau fichier
with open('resultat.txt', 'w') as fichier_resultat:
fichier_resultat.write(f"Le fichier source contient {nombre_de_mots} mots.\n")
print("Le comptage des mots a été effectué et le résultat est écrit dans resultat.txt.")
Énoncé :
Écrivez un programme qui convertit une somme d’argent d’une devise à une autre. Le taux de conversion doit être saisi par l’utilisateur.
Solution :
# Demande de saisie des informations
montant = float(input("Entrez le montant à convertir : "))
taux_conversion = float(input("Entrez le taux de conversion : "))
devise_source = input("Entrez la devise source : ")
devise_cible = input("Entrez la devise cible : ")
# Conversion
montant_converti = montant * taux_conversion
# Affichage du résultat
print(f"{montant} {devise_source} équivaut à {montant_converti:.2f} {devise_cible} au taux de conversion de {taux_conversion}.")
Énoncé :
Écrivez un programme qui génère un mot de passe aléatoire de longueur spécifiée par l’utilisateur. Le mot de passe doit contenir des lettres majuscules, des lettres minuscules, des chiffres et des caractères spéciaux.
Solution :
import random
import string
# Demande de saisie de la longueur du mot de passe
longueur = int(input("Entrez la longueur du mot de passe : "))
# Caractères disponibles pour le mot de passe
caracteres = string.ascii_letters + string.digits + string.punctuation
# Génération du mot de passe
mot_de_passe = ''.join(random.choice(caracteres) for _ in range(longueur))
# Affichage du résultat
print("Mot de passe généré :", mot_de_passe)
Ces cas pratiques couvrent une variété de scénarios courants que vous pouvez rencontrer en programmation.
Python est un langage de programmation polyvalent qui permet de résoudre une multitude de problèmes techniques. Dans cette section, nous explorerons des cas particuliers qui mettent en évidence des techniques spécifiques et avancées en Python. Ces cas pratiques couvriront des sujets tels que les décorateurs, la gestion des exceptions, les générateurs, les expressions régulières et la manipulation de fichiers JSON.
Les décorateurs en Python sont des fonctions qui modifient le comportement d’autres fonctions ou méthodes. Ils sont souvent utilisés pour la journalisation, le contrôle d’accès, le mémoïsation, etc.
Énoncé :
Créez un décorateur qui enregistre le nom de la fonction appelée et les arguments passés.
Solution :
import functools
# Définition du décorateur
def journalisation(fonction):
@functools.wraps(fonction)
def fonction_modifiee(*args, **kwargs):
print(f"Appel de {fonction.__name__} avec les arguments {args} et {kwargs}")
resultat = fonction(*args, **kwargs)
print(f"{fonction.__name__} a renvoyé {resultat}")
return resultat
return fonction_modifiee
# Utilisation du décorateur
@journalisation
def addition(a, b):
return a + b
# Test
resultat = addition(3, 5)
La gestion des exceptions est cruciale pour rendre un programme robuste et capable de gérer les erreurs inattendues.
Énoncé :
Créez une fonction qui divise deux nombres et gère les exceptions en cas de division par zéro et de type de données incorrect.
Solution :
def division(a, b):
try:
resultat = a / b
except ZeroDivisionError:
return "Erreur : Division par zéro."
except TypeError:
return "Erreur : Les types des arguments doivent être des nombres."
else:
return resultat
# Test
print(division(10, 2)) # Sortie: 5.0
print(division(10, 0)) # Sortie: Erreur : Division par zéro.
print(division(10, "a")) # Sortie: Erreur : Les types des arguments doivent être des nombres.
Les générateurs sont un moyen efficace de gérer des collections de données volumineuses ou infinies sans utiliser beaucoup de mémoire.
Énoncé :
Créez un générateur qui produit une séquence infinie de nombres premiers.
Solution :
def generateur_premiers():
nombre = 2
while True:
for i in range(2, int(nombre ** 0.5) + 1):
if nombre % i == 0:
break
else:
yield nombre
nombre += 1
# Test
gen = generateur_premiers()
for _ in range(10):
print(next(gen))
Les expressions régulières sont puissantes pour la manipulation et la validation de chaînes de caractères.
Énoncé :
Créez une fonction qui valide une adresse email en utilisant les expressions régulières.
Solution :
import re
def valider_email(email):
motif = r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$'
if re.match(motif, email):
return True
else:
return False
# Test
print(valider_email("exemple@domaine.com")) # Sortie: True
print(valider_email("exemple@domaine")) # Sortie: False
JSON (JavaScript Object Notation) est un format de données couramment utilisé pour l’échange de données entre un client et un serveur.
Énoncé :
Créez un programme qui lit les données d’un fichier JSON, les modifie, puis les enregistre dans un nouveau fichier JSON.
Solution :
import json
# Lecture des données depuis un fichier JSON
with open('data.json', 'r') as fichier:
data = json.load(fichier)
# Modification des données
data['nouvelle_cle'] = 'nouvelle_valeur'
# Écriture des données modifiées dans un nouveau fichier JSON
with open('data_modifiee.json', 'w') as fichier:
json.dump(data, fichier, indent=4)
print("Les données ont été lues et modifiées avec succès.")
Ces cas particuliers montrent des techniques avancées et spécifiques de Python qui peuvent être appliquées à des situations réelles. En comprenant et en pratiquant ces concepts, vous serez mieux équipé pour écrire des programmes Python efficaces et robustes. Continuez à explorer et à expérimenter pour approfondir vos compétences en Python.
Pratiquer des exercices corrigés est un excellent moyen d’apprendre et de maîtriser un langage de programmation. Cette série d’exercices couvre différents aspects de Python, des bases aux concepts plus avancés. Chaque exercice est accompagné d’une solution détaillée pour vous aider à comprendre le processus de résolution.
Énoncé :
Écrivez une fonction qui prend une chaîne de caractères et retourne cette chaîne inversée.
Solution :
def inverser_chaine(chaine):
return chaine[::-1]
# Test
print(inverser_chaine("Bonjour")) # Sortie: ruojnoB
Énoncé :
Écrivez une fonction qui vérifie si une chaîne de caractères est un palindrome.
Solution :
def est_palindrome(chaine):
chaine = chaine.replace(" ", "").lower()
return chaine == chaine[::-1]
# Test
print(est_palindrome("Aman a Panama")) # Sortie: True
Énoncé :
Écrivez une fonction qui calcule la factorielle d’un nombre.
Solution :
def factorielle(n):
if n == 0:
return 1
else:
return n * factorielle(n - 1)
# Test
print(factorielle(5)) # Sortie: 120
Énoncé :
Écrivez une fonction qui trouve le PGCD de deux nombres en utilisant l’algorithme d’Euclide.
Solution :
def pgcd(a, b):
while b:
a, b = b, a % b
return a
# Test
print(pgcd(48, 18)) # Sortie: 6
Énoncé :
Écrivez une fonction qui trie une liste de nombres en utilisant l’algorithme de tri à bulles.
Solution :
def tri_a_bulles(liste):
n = len(liste)
for i in range(n):
for j in range(0, n-i-1):
if liste[j] > liste[j+1]:
liste[j], liste[j+1] = liste[j+1], liste[j]
return liste
# Test
print(tri_a_bulles([64, 34, 25, 12, 22, 11, 90])) # Sortie: [11, 12, 22, 25, 34, 64, 90]
Énoncé :
Écrivez une fonction qui génère les N premiers nombres de la séquence de Fibonacci.
Solution :
def fibonacci(n):
sequence = []
a, b = 0, 1
while len(sequence) < n:
sequence.append(a)
a, b = b, a + b
return sequence
# Test
print(fibonacci(10)) # Sortie: [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
Énoncé :
Écrivez une fonction qui compte le nombre de voyelles dans une chaîne de caractères.
Solution :
def compter_voyelles(chaine):
voyelles = 'aeiouAEIOU'
compteur = 0
for char in chaine:
if char in voyelles:
compteur += 1
return compteur
# Test
print(compter_voyelles("Bonjour tout le monde")) # Sortie: 8
Énoncé :
Écrivez une fonction qui trouve tous les nombres premiers dans une plage donnée.
Solution :
def est_premier(n):
if n <= 1:
return False
for i in range(2, int(n**0.5) + 1):
if n % i == 0:
return False
return True
def nombres_premiers_dans_plage(debut, fin):
return [num for num in range(debut, fin + 1) if est_premier(num)]
# Test
print(nombres_premiers_dans_plage(10, 50)) # Sortie: [11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47]
Énoncé :
Écrivez une fonction qui calcule la moyenne d’une liste de nombres.
Solution :
def calculer_moyenne(liste):
return sum(liste) / len(liste)
# Test
print(calculer_moyenne([10, 20, 30, 40, 50])) # Sortie: 30.0
Énoncé :
Écrivez une fonction qui vérifie si une année donnée est bissextile.
Solution :
def est_bissextile(annee):
if (annee % 4 == 0 and annee % 100 != 0) or (annee % 400 == 0):
return True
else:
return False
# Test
print(est_bissextile(2020)) # Sortie: True
print(est_bissextile(2021)) # Sortie: False
Ces exercices couvrent un large éventail de concepts en Python, des bases aux techniques plus avancées. En les pratiquant, vous renforcerez vos compétences en programmation et serez mieux préparé à résoudre des problèmes plus complexes. Continuez à explorer et à expérimenter pour approfondir votre compréhension de Python. Bon codage !
Le commentaire composé est un exercice littéraire qui consiste à analyser un texte en respectant…
Les adjectifs liés en français sont les adjectifs qui s’accordent en genre (masculin/féminin) et en…
Voici une liste étendue de mots piégeux en français, avec leurs genres et des explications…
Apprendre à distinguer le genre des noms en français peut être un véritable défi pour…
1. Informations Générales Nom complet : Charles-Louis de Secondat, Baron de La Brède et de…
Introduction L’Art de la Guerre (Dell’arte della guerra), publié en 1521, est l’un des ouvrages…
This website uses cookies.