Exercices Python

Notions de base

Exercice 1 : affichage et saisie

Créer un script age.py qui demande l’âge à l’utilisateur et qui affiche le message “Vous avez n ans” où n est l’âge saisi.

Quel est votre age ? 10
Vous avez 10 ans

Exercice 2 : structure conditionnelle

Écrire un script voyage.py qui lit une distance en km et qui fournit en résultat les messages suivants en fonction de la distance reçue : “petit voyage” (si la distance est inférieure ou égale à 2km), “moyen voyage” (si la distance est inférieure ou égale à 40 km mais supérieure à 2km) ou “grand voyage” (pour les distances supérieures à 40 km).

Distance ? 2
petit voyage

Distance ? 15
moyen voyage

Distance ? 50
grand voyage

Exercice 3 : structure itérative while

Écrire un script notes.py qui permet de faire l’addition de notes (entières) saisies au clavier, de cette façon :

note : 15
note : 10
note : .
25
12.5

On affichera la somme et la moyenne.

Exercice 4 : structure itérative for

Étant données deux températures entières tempMin et tempMax, écrire un script graduation.py qui doit afficher toutes les températures comprises entre les deux bornes incluses.

Attention, la saisie des deux bornes peut être inversée. Vous devez vous assurer que tempMin et tempMax soient valides avant d’afficher les graduations.

-> 9 14
9
10
11
12
13
14

-> 14 9
9
10
11
12
13
14

Les objets

Exercice 5 : lire dans un tableau

Il y a 10 ingrédients dans la recette et les quantités nécessaires pour chacun sont (en grammes) : 500, 180, 650, 25, 666, 42, 421, 1, 370 et 211.

Écrire un script ingredients.py qui devra lire le nombre d’ingrédients, puis pour chaque ingrédient son numéro (compris entre 0 et 9) et affichera la quantité totale pour cette recette.

Nombre d'ingrédients ? 2
Numéro d'ingrédient [0-9] : 1
Numéro d'ingrédient [0-9] : 2
830

Exercice 6 : écrire dans un tableau

On vous décrit les charrettes qui composent une caravane, en vous donnant pour chacune, le poids des marchandises qu’elle transporte.

Le programme doit déterminer quel poids ajouter ou retirer à chaque charrette, pour qu’elles transportent toutes ensuite le même poids, et ce sans modifier le poids total transporté par l’ensemble des charrettes de la caravane.

Écrire un script charrettes.py qui devra lire un entier nbCharrettes : le nombre de charrettes de la caravane. Les nbCharrettes lignes suivantes décrivent chacune une charrette par un nombre décimal : le poids qu’elle transporte initialement.

On devra afficher nbCharrettes nombres décimaux sur la sortie : le poids à ajouter à chaque charrette (ce qui revient à en retirer si ce nombre est négatif), dans le même ordre que celui de l’entrée. Il n’y a pas d’arrondis à faire.

Nombre de charrettes ? 5
Poids : 40.0
Poids : 20.0
Poids : 12.0
Poids : 5.0
Poids : 33.0
Charrette n1 : -18.0
Charrette n2 : 2.0
Charrette n3 : 10.0
Charrette n4 : 17.0
Charrette n5 : -11.0

Exercice n°7 : une pile et un dictionnaire

Il existe 5 types de déplacements, représentés par 5 entiers différents : aller à gauche (1), aller à droite (2), aller tout droit (3), monter (4) et descendre (5).

Écrire un script visite.py qui lira le nombre total de déplacements (1000 au maximum) et ensuite, chaque déplacement (représenté par un entier) est indiqué sur sa propre ligne.

Le programme affichera le chemin inverse : la suite des déplacements à faire pour aller de votre position actuelle à la sortie.

Remarque : Python ne propose pas d’instructions switch/case. Il faudra utiliser des if elif else ou un dictionnaire.

Nombre de déplacements ? 6
Déplacement : 1
Déplacement : 3
Déplacement : 2
Déplacement : 4
Déplacement : 4
Déplacement : 5
Déplacement n1 : monter
Déplacement n2 : descendre
Déplacement n3 : descendre
Déplacement n4 : gauche
Déplacement n5 : tout droit
Déplacement n6 : droite

Fonctions

Exercice n°8 : paramètres d’une fonction

Écrire un script motif.py qui lira le nombre de lignes et de colonnes de la feuille, puis le motif à afficher sous la forme d’un caractère. Il doit alors afficher le motif de sorte qu’il remplisse chaque cellule de la feuille.

Saisir un nombre de lignes et de colonnes : 5 4
Un caractère : F
FFFFF
FFFFF
FFFFF
FFFFF
FFFFF
FFFFF

Exercice n°9 : retour d’une fonction

Écrire un script distance.py qui lira les coordonnées (x1,y1) et (x2,y2) de deux points et affichera la distance euclidienne entre ces deux points. Vous utiliserez une fonction qui recevra en paramètre les coordonnées des deux points et qui retournera la distance euclidienne (fr.wikipedia.org).

Saisir x et y : 22.5 46.8
Saisir x et y : 4.25 7.22
43.584847

Classes

Exercice n°10

Vous vous trouvez devant une source d’eau qui jaillit de la montagne, et vous disposez de deux tonneaux vides de capacités 5 litres et 3 litres.

Écrire un script tonneau.py qui effectue une série de transvasements permettant d’obtenir exactement 4 litres d’eau dans le plus grand tonneau.

Vous devez écrire une classe Tonneau. Pour doser l’eau dans les tonneaux, vous devez disposer de ces trois méthodes :

  • Remplir un tonneau
  • Transférer le contenu d’un tonneau dans un autre
  • Vider un tonneau

Quand on transvase un tonneau dans l’autre, on s’arrête lorsque le tonneau source est vide ou lorsque le tonneau destination est plein à ras bord. Ainsi, après chaque opération, on peut savoir exactement combien de litres d’eau se trouvent dans les deux tonneaux.

Exemple :

tonneau1 = Tonneau(3)
tonneau2 = Tonneau(2)

print ("On crée un tonneau1 de %d l et un tonneau2 de %d l" % (getattr(tonneau1, "capacite"),getattr(tonneau2, "capacite")))
print ("Tonneau1 : %s l" % tonneau1) # Tonneau1 : 0 l
print ("Tonneau2 : %s l" % tonneau2) # Tonneau2 : 0 l

print ("On remplit le tonneau1")
tonneau1.remplir()

print ("Tonneau1 : %s l" % tonneau1) # Tonneau1 : 3 l
print ("Tonneau2 : %s l" % tonneau2) # Tonneau2 : 0 l

print ("On transfère le tonneau1 dans le tonneau2")
tonneau2.transferer(tonneau1)

print ("Tonneau1 : %s l" % tonneau1) # Tonneau1 : 1 l
print ("Tonneau2 : %s l" % tonneau2) # Tonneau2 : 2 l

print ("On vide le tonneau1 et le tonneau2")
tonneau1.vider()
tonneau2.vider()

print ("Tonneau1 : %s l" % tonneau1) # Tonneau1 : 0 l
print ("Tonneau2 : %s l" % tonneau2) # Tonneau2 : 0 l

On obtient :

On crée un tonneau1 de 3 l et un tonneau2 de 2 l
Tonneau1 : 0 l
Tonneau2 : 0 l
On remplit le tonneau1
Tonneau1 : 3 l
Tonneau2 : 0 l
On transfère le tonneau1 dans le tonneau2
Tonneau1 : 1 l
Tonneau2 : 2 l
On vide le tonneau1 et le tonneau2
Tonneau1 : 0 l
Tonneau2 : 0 l