Exercices

Tutorial officiel: http://docs.python.org/tutorial/index.html

Correction des exercices


Exercice 1 - Intéraction utilisateur et chaînes de caractères

Écrire un programme qui permet à l'utilisateur de saisir un prénom (ex: "Jean") et d'écrire "Bonjour Jean !".


Exercice 2 - Intéraction utilisateur et chaînes de caractères

Écrire un programme qui demande à l'utilisateur son année de naissance et qui affiche son âge. L'année courante sera mise dans une variable.


Exercice 3 - Manipulation des listes

Soit la liste:

>>> L = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

A partir de L:

En savoir plus sur les listes : http://docs.python.org/tutorial/datastructures.html#more-on-lists


Exercice 4 - Manipulation des dictionnaires

Soit le dictionnaire :

>>> d = {'nom': 'Dupuis', 'prenom': 'Jacque', 'age': 30}

En savoir plus sur les dictionnaires : http://docs.python.org/tutorial/datastructures.html#dictionaries


Exercice 5 - Structures conditionnelles et module string

Demander à l'utilisateur de fournir un caractère au hasard et dire s'il s'agit :


Exercice 6 - Le jeux du + ou du -

L'ordinateur choisit un nombre au hasard entre 1 et 100 et l'utilisateur doit deviner ce nombre mystère en respectant la règle suivante :

Exemple :

>>> Devinez le nombre mystère ? 60
60 est trop petit !

>>> Quel est le nombre ? 75
75 est trop grand !

>>> Quel est le nombre ? 70
Félicitations, le nombre mystère est bien 70 !!!

Amélioration du programme :

v2) Ajouter une gestion d'erreur si l'utilisateur ne rentre pas un nombre entre 1 et 100 ou s'il rentre autre chose qu'un nombre.

v3) Indiquer à l'utilisateur en combien de coups il a trouvé le nombre mystère.


Exercice 7 - Fonctions

Ecrire une fonction surfaceCercle(rayon) qui prend en argument le rayon d'un cercle et qui retourne la surface de ce rayon.

Exemple :

>>> from exercice07 import surfaceCercle
>>> surfaceCercle(2.5)
19.634954084936208

Rappels :

Formule mathématique: surface = pi * rayon * rayon

La valeur pi est disponible dans le module math: from math import pi.


Exercice 8 - Fonctions

Ecrire une fonction qui prend en arguments un caractère et une phrase et qui retourne le nombre de fois où le caractère est présent dans la phrase.

Exemple :

>>> from exercice08 import nbOccurrences
>>> nbOccurrences('e', "Combien y a-t-il de e dans cette phrase ?")
6

Exercice 9 - Classes

Ecrire une classe Voiture() reproduisant le comportement d'une voiture.

Son instanciation initialise par défaut les attributs suivants :

Lors de la création d'un objet de type Voiture, seules la marque et la couleur peuvent être définies.

Le pilote et la vitesse peuvent être modifiés par les méthodes suivantes :

La variation de vitesse obtenue sera égale au produit taux * duree.

Par exemple, si la voiture accélère avec un taux de 1,3 m/s2 pendant 20 secondes, son gain de vitesse est de 26 m/s.

Des taux négatifs sont acceptés (ce qui permet de décélérer).

La variation de vitesse n'est pas autorisée si le conducteur n'est pas désigné.

La métode description() affiche toutes les propriétés de la voiture.

Exemples d'utilisation de cette classe :

>>> from exercice09 import Voiture

>>> v1 = Voiture('Ford', 'rouge')
>>> v2 = Voiture(couleur = 'verte')
>>> v3 = Voiture(marque = 'Mercedes')

>>> v1.choix_conducteur('Sylvain')
>>> v1.accelerer(5, 5)

>>> v2.choix_conducteur('Emilie')
>>> v2.accelerer(3, 10)
>>> v2.accelerer(-1, 10)

>>> v3.accelerer(2.3, 30)
Cette voiture n'a pas de conducteur !

>>> v1.description()
Ford rouge pilotée par Sylvain à la vitesse de 25 m/s.

>>> v2.description()
Peugeot verte pilotée par Emilie à la vitesse de 20 m/s.

>>> v3.description()
Mercedes rouge pilotée par personne à la vitesse de 0 m/s.

Exercice 10 - Classes dérivées

Ajouter à l'exercice précédent deux classes VoitureDiesel et VoitureEssence qui dérivent de Voiture.

Les classes Voiture, VoitureDiesel et VoitureEssence possèdent un attribut additionnel, moteur, qui prend pour valeurs respectives '' (chaîne vide), 'diesel' et 'essence'.

Ajouter le type de moteur dans la description de la voiture.

Contrainte: une voiture Diesel ne peux pas accélérer à un taux suppérieur à 30 m/s.

Exemple d'utilisation :

>>> from exercice10 import VoitureDiesel, VoitureEssence

>>> v1 = VoitureDiesel('Ford', 'rouge')
>>> v2 = VoitureEssence(couleur = 'verte')

>>> v1.choix_conducteur('Sylvain')
>>> v1.accelerer(5, 5)
>>> v1.accelerer(35, 5)
Une voiture Diesel ne peux pas accélérer à un taux suppérieur à 30 m/s !

>>> v2.choix_conducteur('Emilie')
>>> v2.accelerer(3, 10)

>>> v1.description()
Ford rouge diesel pilotée par Sylvain à la vitesse de 25 m/s.

>>> v2.description()
Peugeot verte essence pilotée par Emilie à la vitesse de 30 m/s.

Exercice 11 - Persistence avec le module Pickle

En utilisant le module créé pour l'exercice précédent, créer une voiture et la sauvegarder sur le disque dur (persistance) en utilisant le module Pickle.

Relancer l'interpréteur python et charger en mémoire la voiture précédemment sauvegardée.

Exemple d'utilisation :

=== Session Python 1 ===

>>> from exercice10 import VoitureDiesel, VoitureEssence
>>> from exercice11 import sauvegarderVoiture

>>> v = VoitureDiesel('Ford', 'rouge')
>>> v.choix_conducteur('Sylvain')
>>> v.accelerer(5, 5)
>>> sauvegarderVoiture(v, 'ma-voiture.txt')

>>> Ctrl^D

=== Session Python 2 ===

>>> from exercice10 import VoitureDiesel, VoitureEssence
>>> from exercice11 import chargerVoiture

>>> v = chargerVoiture('ma-voiture.txt')
>>> v.description()
Ford rouge diesel pilotée par Sylvain à la vitesse de 25 m/s.

Exercice 12 - Fichiers

1) Créer un nouveau fichier en lecture/écriture, nommé "texte.txt", et y écrire les phrases suivantes (générées via le site www.faux-texte.com):

Ah non attention, je suis mon meilleur modèle car le cycle du cosmos dans la vie...
Je me souviens en fait, si vraiment tu veux te rappeler des souvenirs.
You see, je ne suis pas un simple danseur car on vit dans une réalité qu'on a créée et que j'appelle illusion.
Même si on se ment, après il faut s'intégrer tout ça dans les environnements et le cycle du cosmos dans la vie...

Fermer le fichier.

2) Ouvrir le fichier en lecture et :


Exercice 13 - Fichiers & CSV

1) Préalable

Créer un fichier CSV "resultats.csv" listant tous les étudiants de la promo, triés par ordre croissant sur le nom.

Chaque ligne a les colonnes suivantes :

2) Exercices

Ecrire une fonction qui lit le fichier CSV et qui écrit :

Ecrire une fonction qui tri les résultats issu du fichier "resultats.csv" suivant la note par ordre croissant et qui sauvegarde le résultat dans un nouveau fichier CSV "resultats-tries.csv".

Sylvain Boureliou - sylvain.boureliou@gmail.com - www.boureliou.com