Vous êtes sur la page 1sur 20

IUT ORSAY

DUT MESURES PHYSIQUES


1ère année, semestre 2

INFORMATIQUE
ET

ALGORITHMIQUE
avec le langage Python

polycopié de TP
Laboratoire IDM
version 3.2 - 2012-2013

Laurent Pointal, Sabine Marduel, Gilles Laschon

Remerciements :
Merci à Laurent POINTAL (LIMSI), Georges VINCENTS (IUT Orsay), Ludovic CONDETTE
(AVANTIC Software), pour leurs remarques ayant contribué à l'amélioration de ce support de
TP.
Bibliographie

BALKANSKI, Cécile et MAYNARD, Hélène, Algorithmique et C++, Supports de TD et de TP, IUT


d'Orsay, département Informatique

CHUN, W. J., Au Coeur de Python, CampuPress, 2007.

CORDEAU, Bob, Introduction à Python 3, version 2.71828 ,


<hebergement.u-psud.fr/iut-orsay/Pedagogie/MPHY/Python/courspython3.pdf>
ou <http://perso.limsi.fr/pointal/_media/python:cours:courspython3.pdf>

CORDEAU, Bob, Python, Python 3, Exercices corrigés, version 2.2, 2008-2009,


<http://hebergement.u-psud.fr/iut-orsay/Pedagogie/MPHY/Python/exercices-
python3.pdf> ou <http://perso.limsi.fr/pointal/_media/python:cours:exer­
cices-python3.pdf>

DABANCOURT, Christophe, Apprendre à programmer, Algorithmes et conception objet, Eyrolles,


2008, 2e édition.

LUTZ et BAILLY, Mark et Yves, Python précis et concis, O’Reilly, 2e édition, 2005.

MARTELLI, ALEX, Python en concentré, O’REILLY, 2004.

MARTELLI, ALEX, Python par l'exemple, O’REILLY, 2006.

POINTAL, LAURENT, SITE WEB : Cours Programmation Python,


<http://perso.limsi.fr/pointal/python:cours_prog>

SWINNEN, Gérard, Apprendre à programmer avec Python 3, Eyrolles, 2010,


<http://inforef.be/swi/python.htm>

SUMMERFIELD, Mark, Programming in Python 3, Addison-Wesley, 2e édition, 2009.

YOUNKER, Jeff, Foundations of Agile Python Development, Apress, 2008.

ZIADÉ, Tarek, Programmation Python. Conception et optimisation, Eyrolles, 2e édition, 2009.

ZIADÉ, Tarek, Python : Petit guide à l’usage du développeur agile, Dunod, 2007.

Sites internet :

<http://www.python.org> et en particulier <http://docs.python.org> (manuel de réfé­


rence python)

<http://python.developpez.com> : site d'entraide avec une FAQ, un forum, des aides, etc.

info - TP page 2
0 - Instructions générales

0.1 - Démarrage de l'ordinateur et de l'environnement de développement


python
Pour ouvrir une session :
entrez le nom d'utilisateur infoN et le mot de passe infoN , en remplaçant N par
le numéro de votre poste informatique entre 1 et 9 (voyez l'étiquette collée sur l'écran).
Pour ouvrir l'environnement de développement python :
menu Applications / Programmation / IDLE3.
Pour naviguer dans le gestionnaire de fichiers :
menu en haut de l'écran (Raccourcis ou Places).
En fin de séance :
éteignez la machine, soit avec le bouton « éteindre » en haut à droite de l'écran, soit à
partir du menu système. Puis, éteignez l'écran.

0.2 - Documentation
En salle de TP, vous trouverez dans les répertoires suivants :
Sur le bureau de l'ordinateur, dans le répertoire du TP en cours (Bureau/TP1 pour la
séance 1, Bureau/TP2 pour la séance 2, etc) : divers fichiers utiles pour le TP.
Dans le répertoire /opt/docs/ : de la documentation générale sur python.
Dans le répertoire /opt/scriptsTP/ : des scripts.
Sous Dokeos, vous trouverez des documents en vous inscrivant dans le cours :
IUT Orsay MPhy Sp2 Informatique Scientifique - Sabine Marduel
Sur internet, vous trouverez le manuel de référence Python à l'adresse suivante :
<http://docs.python.org> (liste de toutes les commandes python avec leur significa­
tion)

0.3 - Enregistrement de votre travail


0.3.1 - Pendant la séance de TP : sur le bureau
Dès que vous aurez commencé à créer des fichiers et à écrire des programmes, vous devrez impé ­
rativement enregistrer ces fichiers sur le BUREAU de votre ordinateur, dans le répertoire TP1
pour la première séance de TP, TP2 pour la deuxième séance de TP, etc. Faites des sauvegardes
fréquentes (par exemple toutes les 5 ou 10 minutes). En effet, parfois, les ordinateurs se bloquent
et tout le travail en cours est perdu.
Attention : n'enregistrez pas vos fichiers à l'emplacement par défaut qui est home/infoN. Depuis
le navigateur de fichiers, l'emplacement à utiliser est uniquement home/infoN/Bureau/TPx
(ou home/infoN/Desktop/TPx). En fin de séance, vous vérifierez que vos fichiers n'ont pas

info - TP0 page 3


été enregistrés par erreur dans home/infoN et qu'ils se trouvent bien tous dans le bon répertoire
sur le bureau.

0.3.2 - A la fin de la séance de TP : sur clé USB


Après chaque séance de TP, le disque dur de chaque ordinateur est entièrement vidé pour laisser la
place au groupe de TP suivant : le travail réalisé pendant le TP sera donc effacé après la séance.
Avant de quitter la salle, vous devez donc enregistrer tout votre travail sur une clé USB que vous
rapporterez à chaque séance.

0.4 - Le compte-rendu de TP
Pendant la séance de TP, certains exercices seront corrigés directement au tableau ; sauf indication
contraire de l'enseignant(e), ils ne seront donc pas à rendre. Il est malgré tout important de suivre
attentivement ces corrections car ces exercices permettent d'acquérir les notions indispensables.
L'énoncé du TP contient des tableaux vides à compléter, où vous devrez noter les résultats de
l'exécution de certaines commandes, tracer la valeur de certaines variables, etc : il pourra éven ­
tuellement être relevé à certaines séances, et comptera alors dans la note du TP.
Le compte rendu de TP (à rendre par binôme) devra contenir :
- nom, prénom, groupe du binôme, date, numéro de la séance de TP, numéro du poste infor ­
matique utilisé.
- réponses aux exercices signalés dans l'énoncé du TP.
- algorithmes demandés dans l'énoncé du TP.
- impressions papier des programmes python demandés dans l'énoncé du TP.
Ce compte-rendu de TP pourra être rédigé à la main sur feuille, ou bien sur traitement de texte,
comme vous préférez (sachez que la rédaction à la main permet de gagner du temps car elle évite
de bloquer l'ordinateur pendant la rédaction). Si nécessaire, vous pourrez aussi faire des copier-
coller de l'interpréteur python dans un traitement de texte, puis les imprimer.

0.5 - Blocages éventuels


Il peut arriver, lors des tests de scripts, que le programme qu'on a écrit rentre dans une boucle sans
fin, ou encore qu'une application reste ouverte mais ne réponde plus à la souris.
Sous Linux, il est possible d'ouvrir une fenêtre console, et d'exécuter une commande pour forcer la
terminaison du programme « fou » :
Soit :
infoX@idmX:~$ xkill
Puis aller cliquer, avec le curseur de la souris en forme de tête de mort, sur la fenêtre du
programme qui ne répond pas.
Soit, si on ne voit même plus le programme, essayer une commande :
infoX@idmX:~$ killall -9 nom_du_programme
Si on ne sait même plus le nom, on peut lister les programmes en cours d'exécution pour l'utilisa ­
teur :
infoX@idmX:~$ ps -ux

info - TP0 page 4


0.6 - Installation de Python3 et de IDLE3 sur votre ordinateur personnel
Vous pouvez installer Python3 et IDLE3 sur votre ordinateur personnel si vous en avez un.
Si vous avez un PC sous Linux (Ubuntu, Debian ou autre) :
Python est probablement déjà installé. Si vous avez Python3, laissez-le tel quel (peu
importe s'il s'agit de la version 3.1 ou 3.2). Si vous avez Python2 mais pas Python3,
n'enlevez pas Python2 (car il est peut-être utile pour le bon fonctionnement de votre
système) et rajoutez Python3 en l'installant depuis le gestionnaire de paquets : choisissez
IDLE3 (rajoutez TKINTER si c'est un paquet optionnel).
Si vous avez un Mac :
Python est probablement déjà installé. S'il s'agit de python2, ne l'enlevez pas car il est utile
pour le fonctionnement du système d'exploitation. Vous pouvez installer python3 sans
enlever python2. Suivez les mêmes instructions de téléchargement que pour Windows ci-
dessous.
Si vous avez un PC sous Windows ou un Mac où Python3 n'est pas présent :
vous pouvez télécharger et installer IDLE3 pour python3 à l'adresse suivante :
http://www.python.org
Cliquez download pour télécharger python, puis release pour choisir la version. Choi­
sissez la version Python 3.2.1 (ou autre version 3.2.x si la 3.2.1 n'est plus disponible). Sur
la page qui s'ouvre, sous le titre Download, téléchargez la version qui vous intéresse :
Windows ou Mac OS.
Attention : si vous hésitez entre plusieurs versions, choisissez toujours une version
« stable » (c'est à dire une version terminée et déjà testée), mais pas une version « en déve­
loppement » (ceci signifie qu'il s'agit d'une version inachevée qui contient encore des bugs).
Si vous ne disposez pas d'un ordinateur chez vous, vous pourrez venir faire votre travail personnel
à l'IUT dans la salle « Chablis » (bâtiment A, salle A017) où vous trouverez Python3 et IDLE3.

info - TP0 page 5


Pour configurer IDLE :
menu Options/Configure IDLE, puis vérifiez que la rubrique Indentation
Width est bien réglée sur 4 espaces (4 spaces). Vous pouvez cliquer sur l'onglet High­
lighting si vous voulez personnaliser les couleurs de votre IDLE (mais il est conseillé
de laisser les couleurs par défaut).

La largeur d'indentation peut aussi être modifiée à partir du menu Format/New Indent
Width (ce menu est visible lorsque IDLE est en mode éditeur) :

info - TP0 page 6


1 - Types, variables, tests

Contenu :
• familiarisation avec l'environnement de développement
• types de base : entier, flottant, chaîne de caractères, booléen ;
• variables ;
• saisies et affichage ;
• instruction conditionnelle if.
Fichiers à rendre : TP1_1.py ; TP1_2.py ; TP1_3.py ; TP1_4.py ; TP1_5.py

1.1 - Types numériques et type chaîne de caractères


1.1.1 - L'interpréteur Python
Lancez le logiciel IDLE3, qui est celui dans lequel nous utiliserons Python dans le cadre de ces TP
: menu Applications / Programmation / IDLE3.
L''interpréteur Python (aussi appelé “shell Python”) apparaît : il s'agit d'une fenêtre avec une invite
de commandes (ou “prompt”), symbolisée par le signe >>> , qui vous invite à taper une commande
(ou instruction). Cela fonctionne un peu comme une messagerie instantanée (un “ chat ” comme
par exemple MSN ou GTalk) où Python vous “ répondra ” à chaque fois que vous lui écrirez
quelque chose.

1.1.2 - Les premières commandes python - les opérateurs


Nous allons maintenant dialoguer avec cet interpréteur Python : tapez les instructions de la
colonne de gauche et écrivez les résultats obtenus (les réponses de l'interpréteur), dans la colonne
de droite, en commentant éventuellement (essayez de prévoir la réponse et, si elle est différente, de
comprendre pourquoi la réponse qui vous paraît logique n'a pas été celle de l'ordinateur).

Tableau 1 : premières commandes python


instruction à taper résultat obtenu + commentaire ou explication
20+1

20/3

20//3

20%3

5.45*10

2**4

(3+2)*5

3+2*5

info - TP1 page 7


"bonjour"
(avec des guillemets)
'bonjour'
(avec des apostrophes et non
pas des guillemets)
"il fait " + "beau"

"il fait " + "beau"


+ " et chaud"
"bonjour "*5

Astuce : pour éviter d'avoir à retaper toute une ligne, utilisez la flèche “haut” du clavier pour vous
positionner sur cette ligne, puis tapez “Entrée” : la ligne est recopiée après l'invite de commande et
vous pouvez la modifier avant de taper à nouveau “Entrée”.

+ , * , / , // , % , ** , sont des opérateurs python. Ils permettent de réaliser des opéra­


tions sur des données.
20 , 3 , 5.45 , "bonjour" sont des données.
Chaque donnée possède un certain type ; ici il s'agit :
du type entier ou int pour les données 20 et 3
du type flottant ou float, pour la donnée 5.45
du type chaîne de caractères ou string pour la donnée "bonjour"
(il existe d'autres types de données que nous verrons par la suite).

Certaines instructions ne sont pas acceptées par l'interpréteur python et provoquent l'affichage d'un
message d'erreur. Il faut lire attentivement tous les messages d'erreur (même s'ils sont en anglais)
car ces messages nous apprennent comment fonctionne le langage et nous aident à corriger nos
instructions et nos programmes. Tapez les instructions suivantes, observez les erreurs obtenues et
analysez-les :

Tableau 2 : premiers messages d'erreur


instruction à taper erreur observée + explication
20/0

20@3

"bonjour"/3

"bonjour" + 5

(3+2))*5

(3+2*5

info - TP1 page 8


Pour connaître le type d'une donnée, on peut utiliser le mot type : tapez ce qui suit :

Tableau 3 : les types de données


instruction à taper résultat obtenu + commentaire ou explication
type(3)

type(1.5)

type(3.0)

type("bonjour")

type("3")

type(3+1.5)

Exercice 1 : opérateurs et types de données


Sur quels types de données peut-on utiliser les opérateurs + , * , / , // , % , ** ? Quel est
le type du résultat ? Répondre en complétant ci-dessous. Vous pouvez faire des tests en tapant
d'autres instructions dans l'interpréteur python.
(exemple : 3+7.1 est accepté par l'interpréteur python, donc l'opérateur + s'applique à un entier et
à un flottant, et le résultat est de type flottant).
opérateur types de données utilisables type du résultat

//

**

Pour les chaînes de caractères, l'opérateur + s'appelle la concaténation


(il fusionne bout à bout deux chaînes de caractères)

info - TP1 page 9


1.1.3 - Le transtypage
On peut parfois transformer une donnée d'un certain type, en une donnée d'un autre type. Cela
s'appelle le transtypage (ou cast en anglais).

Tableau 4 : transtypage
donnée de départ de quel type est la instruction à taper type du résultat obtenu et/ou
donnée de départ ? commentaire

3.0 int(3.0)

3.5 int(3.5)

3 float(3)

4 str(4)

"3" int("3")

"3.5" float("3.5")

"3.5" int("3.5")

"bonjour" int("bonjour")

Exercice 2 : corriger les instructions


Comment corriger les instructions suivantes pour qu'elles ne provoquent plus d'erreur ?
a) but recherché : on veut obtenir la chaîne de caractères "vous êtes 2 dans ce binôme
TP"
instruction : "vous êtes" + 2 + "dans ce binôme TP"
instruction corrigée : ...
b) but recherché : on veut afficher "blablablablablablablablablabla" c'est à dire
"bla" 10 fois de suite.
instruction : "bla"*10.0
instruction corrigée : ...

1.2 - Les variables et l'affectation


1.2.1 - L'affectation
Il peut être pratique de ranger les données dans des contenants, aussi appelés variables, afin de les
conserver dans la mémoire de l'ordinateur pour les utiliser plus tard.
Le rangement d'une donnée (un contenu) dans une variable (un contenant) s'appelle l'affectation.
L'affectation se fait grâce à l'opérateur = qui s'appelle l'opérateur d'affectation.

info - TP1 page 10


= est l'opérateur d'affectation
L'affectation se fait en deux temps :
(1) évaluation (c'est à dire calcul) de la partie à droite de l'opérateur d'affectation (selon des
règles de priorité de calcul correspondant au type des données concernées). Le résultat de cette
évaluation est la donnée (le contenu) qui va être rangée dans la variable.
(2) rangement du résultat de cette évaluation dans la partie à gauche de l'opérateur d'affectation.
Cette partie à gauche est la variable (le contenant).
Attention : ne pas confondre l'opérateur d'affectation = avec le symbole
d'égalité mathématique. L'affectation n'est ni une équation mathéma­
tique, ni une égalité mathématique !
Application : taper les instructions suivantes dans l'ordre indiqué, et compléter le tableau.

Tableau 5 : opérateur d'affectation =


Quelle est la donnée (ou est le
résultat de l'évaluation de la
instruction à taper quelle est la variable ?
partie droite) ? De quel type est
cette donnée (ou ce résultat) ?

age = 20

age = 30

prenom = "Perceval"

taille_m = 1.75

taille_cm = 100*taille_m

age = age + 3

phrase1 ="bonjour "+ prenom

phrase1 = phrase1 + " !"

phrase2 = prenom +" a "


+str(age)+" ans."

Pour afficher le contenu d'une variable dans l'interpréteur python, il suffit de taper le nom de cette
variable. Taper les instructions suivantes et compléter :
instruction à taper quelle valeur contient la variable ? (+ commentaire)

age

info - TP1 page 11


prenom

prenom = "Lancelot"

prenom

age = 40

age

age = 22

age

age = age + 1

age

phrase1

phrase2

profession

profession="étudiant(e)"

profession

Remarque : le langage Python permet de faire plusieurs affectations à la fois, séparées par des
virgules sur une seule ligne, mais cette utilisation est fortement déconseillée dans le cadre de ces
TP. Exemple d'une telle affectation multiple : (à ne pas utiliser dans ces TP !)
>>> nom,prenom,age,etudiant="Student","Joe",20,True
1.2.2 - Les noms de variables
Un nom de variable doit (conventions TPs Python, à respecter !) :
• débuter par une lettre minuscule
• contenir uniquement des lettres sans accents, des chiffres et le tiret de souligne­
ment _ (appelé tiret “underscore” ou encore “tiret du 8”)
• Être aussi explicite que possible (ne pas utiliser de noms trop courts et sans signi­
fication comme a, b, x, y, n, mais utiliser plutôt age, longueur, nombre, somme...)
Le langage Python fait la distinction entre les majuscules et les minuscules.

info - TP1 page 12


Les mots clés réservés du langage ne peuvent pas être utilisés comme nom de variables (car ils
sont déjà “réservés” par le langage). Ce sont :
and as assert break class
continue def del elif else
except False finally for from
global if import in is
lambda None nonlocal not or
pass raise return True try
while with yield

Exercice 3 : échanger la valeur de 2 variables


écrire (sur papier) un algorithme pour échanger les valeurs de 2 variables que vous nommerez
var1 et var2.

1.3 - Le mode éditeur


Nous allons maintenant laisser de côté l'interpréteur python (vous pourrez vous en resservir de
temps en temps lorsque vous voudrez tester une instruction) et nous allons passer en mode éditeur,
pour écrire des programmes (appelés aussi scripts ou applications) qui pourront être enregistrés et
réutilisés plus tard.

Exercice 4 : programme TP1_1


Dans IDLE, cliquez le menu File / Open. Dans le répertoire TP1 qui se trouve sur le bureau,
ouvrez (avec IDLE) le programme TP1_1.py. Ce programme sera à imprimer et à rendre en fin
de TP.
L'extension de fichier .py indique qu'il s'agit d'un programme (ou script) python.
1) Dans la partie “ en-tête du module ”, modifiez la date et le nom de l'auteur (en remplaçant par le
nom des étudiant(e)s du binôme).
2) Exécutez ce programme en cliquant le menu Run/Run module (ou en utilisant le raccourci
clavier F5). Commentez dans votre compte rendu de TP.
3) (Répondez dans votre compte-rendu de TP) : pourquoi a-t-on écrit str(age) et pas simple­
ment age dans la ligne :
print("bonjour " + prenom + " " + nom + ", tu as " + str(age) + " ans.")
4) Dans la partie “ programme principal ”, modifiez la valeur des variables : affectez votre nom,
votre prénom et votre âge aux variables nom, prenom, age. Enregistrez le programme et exécutez-
le à nouveau. Que s'affiche-t-il ? (Répondez dans votre compte-rendu de TP).

1.3.1 - Le programmeur et l'utilisateur du programme


Il ne faut pas confondre le “programmeur” ou “développeur” (celui ou celle qui écrit le
programme) et “ l'utilisateur ” (celui ou celle qui utilisera le programme). Seul le programmeur
peut modifier le programme (c'est à dire le fichier d'extension .py). L'utilisateur est complètement
extérieur au programme ; il ne peut qu'exécuter le programme en lançant la commande Run
module.

info - TP1 page 13


1.3.2 - Les fonctions d'entrée / sortie
Afin que l'utilisateur puisse entrer des données dans les variables du programme et visualiser les
résultats calculés par le programme, le programmeur utilise des fonctions d'entrée et de sortie.
La fonction print est une fonction de sortie : elle affiche à l'écran (à l'attention de l'utilisateur)
une donnée ou le contenu d'une variable.
La fonction input est une fonction d'entrée : le programme affiche une question à l'attention de
l'utilisateur et attend que l'utilisateur tape sur des touches du clavier en réponse à cette question.
L'utilisateur doit terminer sa saisie par la touche “ Entrée ” pour que le programme continue son
exécution. La suite de caractères saisie par l'utilisateur est récupérée par le programme où elle peut
être utilisée. Elle est généralement affectée à une variable du programme.
La donnée récupérée par la fonction input (en python3) est de type chaîne de caractères.
Si on souhaite récupérer un nombre (et non pas une chaîne de caractères), il faut transtyper cette
donnée récupérée par input.

Exemple : dans l'interpréteur, tapez les instructions suivantes.

Tableau 6 : utilisation de la fonction input


instruction à taper commentaire
numero=input("entrez un chiffre entre 1
et 5 : ")
type(numero)

numero = numero + 1

numero = int(numero)

type(numero)

numero = numero + 1

Exercice 5 : programme TP1_1 : saisie d'un nom, prénom, âge par l'utilisateur
Nous allons modifier le programme TP1_1.py. Remplacez la ligne
nom = "Cleese (ou votre nom)"
par
nom = input("Quel est ton nom ? ")
Faites de même pour les variables prenom et age. Enregistrez et exécutez. Vérifiez que l'utilisa­
teur peut entrer n'importe quels noms, prénoms et âges et que ceux ci s'affichent bien ensuite dans
une phrase “ bonjour (prénom nom), tu as (âge) ans ”.
Commentez et indiquez les résultats obtenus dans votre compte-rendu de TP.

info - TP1 page 14


Exercice 6 : afficher la somme de deux valeurs fournies en entrée par l'utilisateur (TP1_2)
Nous allons créer un nouveau programme. Pour cela, cliquez le menu File/New Window pour
ouvrir un nouveau programme vide. Nommez-le TP1_2.py, enregistrez-le sur le Bureau dans le
répertoire TP1 (ce programme sera à rendre en fin de TP). Tapez un en-tête de programme selon le
modèle suivant (ou bien ouvrez le fichier modele_script.py , copiez-collez l'en-tête dans
votre nouveau programme et modifiez cet en-tête).

#!/usr/bin/python3
# -*- coding: utf-8 -*-
"""Documentation de
ce module
"""
# fichier: nom_fichier.py
# auteur: prof
# date : juillet 2011

# ---------- imports ----------

# ---------- Programme Principal ----------

Illustration 1: En-tête d’un script

Tapez les lignes suivantes dans la partie “ programme principal ” puis exécutez :
var1 = input("Quelle est la première valeur ? ")
var2 = input("Quelle est la deuxième valeur ? ")
var_somme = var1 + var2
print("La somme des deux valeurs est", var_somme)
Quel résultat est obtenu ? On souhaite que la variable var_somme contienne la somme des deux
nombres entrés par l'utilisateur. Corrigez ce programme pour qu'il fasse ce qui est souhaité.
Commentez dans votre compte-rendu de TP.

1.3.3 - Mettre des commentaires dans les programmes


Des commentaires doivent toujours figurer dans les programmes : ils permettront aux autres
programmeurs de comprendre ce que vous avez voulu faire ; ils vous seront aussi utiles lorsque
vous relirez vos propres programmes plus tard.
Les commentaires ne sont pas interprétés comme des instructions du langage, mais ils sont ignorés
par Python. Ils sont introduits par un caractère # (tout ce qui suit le # sur la même ligne est un
commentaire). Ils peuvent aussi figurer entre des triple-guillemets (""" suivis de """).

Exercice 7 : commenter les programmes TP1_1 et TP1_2


Ajoutez des commentaires précédés du signe # dans vos deux programmes TP1_1.py et
TP1_2.py (à rendre en fin de TP) pour expliquer ce que font les différentes lignes du
programme.
A partir de maintenant, tous vos programmes devront être commentés.

info - TP1 page 15


En fin de programme, vous devez copier-coller les résultats de l'exécution du programme entre
triple-guillemets """. Tous les programmes rendus dans le compte-rendu de TP devront contenir
des résultats en commentaires. Voir l'exemple ci-dessous.

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""Ce module calcule le volume d'une sphère."""
# fichier: exemple.py
# auteur: Bob Cordeau

# imports
from math import pi

# ---------- Programme Principal --------------------------------------


rayon = float(input("Rayon de la sphère en mètre : ")) # saisie du rayon
volume = 4/3*pi*rayon**3 # calcul du volume de la sphère
# affichage du résultat
print("Volume de la sphère de rayon ",rayon, "m :", volume,"m3")
# pour avoir moins de décimales on peut utiliser print avec format
print("Volume de la sphère de rayon {} m : {:.2f} m3".format(rayon, volume))

"""
---- Résultats de l'exécution ----
Rayon de la sphère en mètre : 22.4
Volume de la sphère de rayon 22.4 m : 47079.58915864106 m3
Volume de la sphère de rayon 22.4 m : 47079.59 m3
>>>
Rayon de la sphère en mètre : 3
Volume de la sphère de rayon 3.0 m : 113.09733552923254 m3
Volume de la sphère de rayon 3.0 m : 113.10 m3
>>>
Rayon de la sphère en mètre : -1
Volume de la sphère de rayon -1.0 m : -4.1887902047863905 m3
Volume de la sphère de rayon -1.0 m : -4.19 m3
>>>
Rayon de la sphère en mètre : 0
Volume de la sphère de rayon 0.0 m : 0.0 m3
Volume de la sphère de rayon 0.0 m : 0.00 m3
>>>
Rayon de la sphère en mètre : toto
Traceback (most recent call last):
File "/home/sabine/Desktop/polys python/volume_sphere.py", line 13, in <module>
rayon = float(input("Rayon de la sphère en mètre : "))
ValueError: could not convert string to float: 'toto'
"""

Illustration 2: Comment présenter les résultats d'un programme

Remarquez qu'il ne faut pas tester le programme sur une seule valeur, mais sur plusieurs valeurs
afin de tester tous les cas possibles (dans l'exemple ci-dessus, nous avons testé le calcul du volume

info - TP1 page 16


avec 5 valeurs de rayon : 22.4, 3, -1, 0, et “ toto ” - cette dernière valeur de rayon provoque une
erreur).

1.4 - Le type booléen


Le type booléen ou bool est un type de données. Un booléen ne peut prendre que 2 valeurs : vrai
(True) ou faux (False). NB : Les majuscules sont importantes : true et false ne sont pas
reconnues par le programme, il faut écrire True et False.
Les opérateurs qui s'appliquent aux booléens s'appellent opérateurs logiques. Ce sont : not
(NON), and (ET), or (OU).
D'autres opérateurs s'appliquent à des données numériques ou chaînes de caractères et produisent
un résultat booléen : ce sont les opérateurs de comparaison :
== signifie “est égal à”
!= signifie “est différent de”
< , <= , > , >= signifient “est inférieur, inférieur ou égal, supérieur, supérieur ou égal” .
Ces opérateurs permettent de faire des tests. Le résultat de l'opération est True si le test est vrai,
False si le test est faux.
NB : ne pas confondre l'opérateur de test d'égalité == avec l'opérateur d'affectation = .
Taper les instructions suivantes dans l'interpréteur et compléter le tableau :

Tableau 7 : booléens
instruction à taper résultat obtenu + commentaire ou explication
1 == 1

1 == 3

1 != 3

1 == 1.0

(3+7) == (5*2)

(1 == 1) and (2<2)

(1 == 1) and (2<=2)

(2 == 15) or (3>2)

1 < 4 < 15

valeur = (1==1)

type(valeur)

not(valeur)

True and False

True or False

info - TP1 page 17


not(False)

1.4.1 - Les tables de vérité de “ not ”, “ and ”, “ or ”


Les opérateurs logiques not, and, or, opèrent de la façon suivante :
soient A et B des propositions.
“ non A ” est vrai ⇔ A est faux
“ non A ” est faux ⇔ A est vrai
“ A et B ” est vrai ⇔ (A est vraie) et (B est vraie)
“ A et B ” est faux ⇔ (A est fausse) ou (B est fausse)
“ A ou B ” est vrai ⇔ (A est vraie) ou (B est vraie)
“ A ou B ” est faux ⇔ (A est faux) et (B est faux)
Ceci peut se présenter dans des tableaux appelés tables de vérité :

Exercice 8 : compléter les tables de vérité


Table de vérité de l'opérateur “ non ” (not) :
a not a
False
True

Table de vérité de l'opérateur “ et ” (and) :


a b a and b
False False
False True
True False
True True

Table de vérité de l'opérateur “ ou ” (or) :


a b a or b
False False
False True
True False
True True

1.5 - L'instruction conditionnelle if


Ouvrez le fichier nommé TP1_if.py, qui se trouve dans le répertoire TP1 situé sur le bureau, et
observez : il vous donne un exemple d'utilisation de l'instruction conditionnelle if.
Pour faire les exercices ci-dessous, vous devez utiliser cette instruction conditionnelle if. (avec
éventuellement les instructions complémentaires elif et else).

info - TP1 page 18


Exercice 9 : programme TP1_3 : un nombre est-il le double d'un autre ?
Ecrire un algorithme (à la main sur papier, à mettre dans le compte-rendu de TP en expliquant
éventuellement vos choix) puis un programme python (que vous nommerez TP1_3.py et rendrez
imprimé en fin de TP) qui effectue les opérations suivantes :
- demander à l'utilisateur de saisir deux nombres (le programme stockera ces nombres dans des
variables qui seront nommées nombre1 et nombre2) ;
- déterminer si le premier nombre est le double du second.
- afficher à l'écran une phrase indiquant à l'utilisateur si le premier nombre est le double, ou pas,
du second nombre. Par exemple, avec 8 et 11, on doit obtenir : “ 8 n'est pas le double de 11 ”.
- le programme devra contenir un jeu d'essais, c'est à dire plusieurs lignes de test qui permettront
de vérifier que tout fonctionne bien. A la fin du programme, copier-coller les résultats obtenus
entre 3 guillemets, comme dans l'exemple de la page 16. Tout comme dans cet exemple, vous
devrez tester tous les cas de figure possibles.

Exercice 10 : programme TP1_4 : division euclidienne


Ecrire un algorithme (sur papier, à inclure dans le compte-rendu de TP avec vos commentaires
explicatifs) puis un programme python (que vous nommerez TP1_4.py et rendrez imprimé en fin
de TP) qui effectue les opérations suivantes :
- demander à l'utilisateur de saisir deux entiers positifs (le programme les stockera dans des
variables qui seront nommées nombre1 et nombre2) ;
- calculer le quotient et le reste de la division euclidienne de nombre1 par nombre2.
Attention : si nombre2 est nul, il n'est pas possible d'effectuer la division. Le programme devra
prévoir ce cas de figure.
- afficher à l'écran la division euclidienne. Par exemple, avec 45 et 11, on doit obtenir l'affichage
suivant :
Division euclidienne: 45 = 11*4 + 1

- inclure un jeu d'essais en fin de programme + les résultats obtenus entre 3 guillemets.

1.6 - Importer des modules et utiliser l'aide (help)


Dans un programme, on peut utiliser des fonctions et variables déclarées dans un autre programme
(qu'on appelle alors module), en tapant le mot clé import suivi du nom de ce module.
On peut afficher une aide sur un module tout entier, ou sur une fonction, en utilisant la fonction
help() en indiquant entre parenthèses le nom de l'élément au sujet duquel on souhaite une aide.

Exercice 11 : afficher l'aide du module math


Lancez la fenêtre de l'interpréteur python et tapez les instructions suivantes :
import math
help(math)
Dans la liste qui s'affiche, cherchez les fonctions : cos, acos, tan, atan, sqrt, pi, exp, log,
log10.
Répondez aux questions suivantes :

info - TP1 page 19


1. à quoi correspondent les fonctions acos, asin, atan ? ...
2. à quoi correspondent les fonctions cosh, sinh ? ...
3. à quoi sert la fonction sqrt ? ...
4. quelle est la fonction qui donne le logarithme népérien ? ...
5. quelle est la différence entre e et exp ? ...

Exercice 12 : programme TP1_5 : équation du second degré


On veut réaliser un programme qui calculera les racines réelles d'un trinôme du second degré : ax2
+ bx + c, où a, b et c sont trois réels. Si le trinôme n'a pas de racine réelle, on souhaite que le
programme affiche une phrase indiquant qu'il n'y a pas de racine réelle.
Tout d'abord, vous écrirez un algorithme papier (que vous rendrez dans votre compte-rendu de
TP), puis un programme python (que vous nommerez TP1_5.py et rendrez imprimé en fin de TP).
Le programme devra :
- Demander à l'utilisateur de saisir les coefficients du trinôme sous forme de 3 nombres flottants
(float), qui seront stockés dans des variables a, b, et c.
- Calculer la valeur du discriminant du trinôme qui sera nommé delta.
- Tester la valeur du discriminant, au moyen de l'instruction if. En fonction du signe du discrimi­
nant, afficher à l'écran une phrase donnant le nombre de racines réelles du trinôme, puis la valeur
de ces racines réelles (ou de cette racine réelle s'il s'agit d'une racine double).
- N'oubliez pas le jeu d'essai en fin de programme, ainsi que des commentaires.
Indication : pour pouvoir utiliser la fonction sqrt du module math, écrivez juste après l’en-tête
du fichier, la ligne : from math import sqrt
(mais on peut aussi utiliser **0.5 (puissance 1/2) ce qui évite d'avoir à importer la fonction sqrt).

1.7 - Travail personnel


A rendre pour le prochain TP :
1) programme TP1_6.py : programmer en python l'algorithme de l'exercice 3 de ce TP (qui
permettait d'échanger le contenu de 2 variables).
2) Facultatif : programme TP1_7.py : il existe dans python un type complex, dans lequel la
partie imaginaire est suivie de la lettre j (exemple : 4+3.1j). Ecrivez un programme TP1_7.py
pour calculer les racines complexes d'un trinôme à coefficients complexes (vous pouvez copier le
contenu du programme TP1_5 et le modifier).

info - TP1 page 20

Vous aimerez peut-être aussi