Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
http://irem.univ-reunion.fr/spip.php?article686
Correction d'exercices Python proposés par Gérard Swinnen dans son livre « Apprendre à
programmer avec Python ». Ce livre est téléchargeable au format PDF ici.
La correction est proposée pour Python 2.7 et est évidemment non-exhaustive.
[http://irem.univ-reunion.fr/local/cache-vignettes/L292xH400/apprendre_python400-bd1f0.jpg]
Il existe une foule de sites Internet sur le langage Python et lorsque l'on débute en Python, il est bien difficile de
trouver des sites qui permettent au néophyte une utilisation concrète et immédiate de scripts Python. J'ai au fil de
mes surfs découvert ce livre qui est d'une utilisation totalement immédiate et extrêmement pratique.
La plupart des scripts de cette page sont inspirés de ce livre.
Pour vous exercer et apprendre à programmer en Python, il vous suffit d'ouvrir un terminal (sous Mac ou Linux) ou
un environnement qui permet d'écrire des scripts Python sous Windows, et d'effectuer des copier-coller des scripts
proposés après avoir tapé
> python
>>> a = 7
>>> if (a % 2 == 0):
... print "a est pair"
... print "parce que le reste de sa division par 2 est nul"
... else:
... print "a est impair"
...
>>> a = 0
>>> while (a < 7): # (n'oubliez pas le double point !)
... a = a + 1 # (n'oubliez pas l'indentation !)
... print a
>>> a = 0
>>> if a > 0 :
... print "a est positif"
if a != 2:
print 'perdu'
elif a == 3:
print 'un instant, s.v.p.'
else:
print 'gagné'
a=5
b = -1
if (a == 5) & (b < 2):
print '"&" signifie "et" ; on peut aussi utiliser\
le mot "and"'
a, b = 2, 4
if (a == 4) or (b != 4):
print 'gagné'
elif (a == 4) or (b == 4):
print 'presque gagné'
a=1
if not a:
print 'gagné'
elif a:
print 'perdu'
import random
for i in range(100):
a = random.randint(0,10)
if not a:
print 'gagné'
elif a:
print 'perdu'
• Écrire un programme qui calcule le volume d'un parallélépipède rectangle dont sont fournis au départ la largeur,
la hauteur et la profondeur.
Sortie du code :
# Ouvrir un terminal et se déplacer dans le répertoire où se trouve le programme Python que l'on a appelé pour
l'exemple VolumeParallelepipedeRectangle.py.
> python './VolumeParallelepipedeRectangle.py'
Entrez la largeur : 7
Entrez la hauteur : 4
Entrez la profondeur : 8
Volume du parallélépipède = 224
>
• Écrire un programme qui affiche une suite de 12 nombres dont chaque terme soit égal au triple du terme
précédent.
Résultat du programme :
# Ouvrir un terminal et se déplacer dans le répertoire où se trouve le programme Python que l'on a appelé pour
l'exemple SuiteDe12Triples.py.
>python './SuiteDe12Triples.py'
Entrez un nombre : -2
(1, -2)
(2, -6)
(3, -18)
Multiples de 7
>>>
>>> for i in range(1,21):
... print(7*i)
...
7
14
21
28
On peut améliorer l'affichage du résultat en utilisant des chaînes de caractères et donc la fonction str() qui
transforme un entier en string.
Sortie du code :
# Ouvrir un terminal et se déplacer dans le répertoire où se trouve le programme Python que l'on a appelé pour
l'exemple MultiplesDe7.py.
chaine=""
for i in range(20):
multiple=(i+1)*7
if multiple%3 == 0:
chaine+=" "+str(i+1)+"*7 = "+"*"+str((i+1)*7)+"\n"
else:
chaine+=" "+str(i+1)+"*7 = "+str((i+1)*7)+"\n"
print(chaine)
>>>
Sortie du code :
# Ouvrir un terminal et se déplacer dans le répertoire où se trouve le programme Python que l'on a appelé pour
l'exemple MultiplesDe7AvecMarquageSiMultipleDe3.py.
*
**
***
****
a='*'
for i in range(7):
print(a*(i+1))
Conversion de monnaies
Écrire un programme qui affiche une table de conversion de sommes d'argent exprimées en euros, en dollars
canadiens. La progression des sommes de la table sera « géométrique », comme dans l'exemple ci-dessous :
s=1
coeff=input("Entrez le cours du dollar canadien : ")
while s <= 16384:
print(str(s)+" euro(s) = "+str(s*coeff)+" dollar(s) ")
s = s *2
Résultat du programme :
# Ouvrir un terminal et se déplacer dans le répertoire où se trouve le programme Python que l'on a appelé pour
l'exemple EurosEnDollars.py.
> python './EurosEnDollars.py'
Entrez le cours du dollar canadien : 1.39
1 euro(s) = 1.39 dollar(s)
2 euro(s) = 2.78 dollar(s)
4 euro(s) = 5.56 dollar(s)
8 euro(s) = 11.12 dollar(s)
16 euro(s) = 22.24 dollar(s)
32 euro(s) = 44.48 dollar(s)
64 euro(s) = 88.96 dollar(s)
128 euro(s) = 177.92 dollar(s)
256 euro(s) = 355.84 dollar(s)
512 euro(s) = 711.68 dollar(s)
1024 euro(s) = 1423.36 dollar(s)
2048 euro(s) = 2846.72 dollar(s)
4096 euro(s) = 5693.44 dollar(s)
• Écrire un programme qui convertisse un nombre entier de secondes fourni au départ en un nombre d'années,
de mois, de jours, d'heures, de minutes et de secondes.
>python './SecondesEnAmjhms-Python2.py'
Nombre de secondes à convertir : 12345678912
Cette durée correspond à 391 années de 365 jours, plus 5 mois de 30 jours, 24 jours, 19 heures, 15 minutes et 12
secondes.
>
Exercices à faire
Exercices sur les chaînes de caractères
• Écrire un script qui compte le nombre d'occurrences du caractère « e » dans une chaîne.
• Écrire un script qui recopie une chaîne (dans une nouvelle variable), en insérant des astérisques entre les
caractères. Ainsi par exemple, « gaston » devra devenir « g*a*s*t*o*n »
• Écrire un script qui recopie une chaîne (dans une nouvelle variable) en l'inversant. Ainsi par exemple, « zorglub
» deviendra « bulgroz ».
• En partant de l'exercice précédent, écrire un script qui détermine si une chaîne de caractères donnée est un
palindrome (c'est-à-dire une chaîne qui peut se lire indifféremment dans les deux sens), comme par exemple «
radar » ou « s.o.s ».
• Écrire un programme qui affiche « proprement » tous les éléments d'une liste. Si on l'appliquait par exemple à la
liste t2 de l'exercice ci-dessus, on devrait obtenir : Janvier Février Mars Avril Mai Juin Juillet Août Septembre
Octobre Novembre Décembre
• Écrire un programme qui recherche le plus grand élément présent dans une liste donnée. Par exemple, si on
l'appliquait à la liste [32, 5, 12, 8, 3, 75, 2, 15], ce programme devrait afficher la phrase :
le plus grand élément de cette liste a la valeur 75.
• Écrire un programme qui analyse un par un tous les éléments d'une liste de nombres (par exemple celle de
l'exercice précédent) pour générer deux nouvelles listes. L'une contiendra seulement les nombres pairs de la
liste initiale, et l'autre les nombres impairs. Par exemple, si la liste initiale est celle de l'exercice précédent, le
programme devra construire une liste pairs qui contiendra [32, 12, 8, 2], et une liste impairs qui contiendra [5, 3,
75, 15].
Astuce : pensez à utiliser l'opérateur modulo (%) déjà cité précédemment.