IGI-3008 – ESIEE Paris – 2016-2017
Apprentissage de la Programmation avec Python
TP1
Jean-Claude GEORGES
Avant de commencer, quelques indications sur le travail qui sera à faire
durant toute l’unité :
Pour chaque TP, rédigez un compte-rendu.
Les comptes-rendus seront exigibles immédiatement en cas de litige après vos évaluations.
Vous pouvez me les envoyer par mail ( [email protected] ) si vous avez des
doutes ou interrogations. Il sera alors annoté (mais non noté).
Utilisez un traitement de texte (LibreOffice,OpenOffice) et des styles pour distinguer le texte
du compte rendu de celui des listings des programmes Python que vous y insérez (au
minimum, un style "python" avec police de caractères à largeur constante). Cherchez une
police qui distingue bien les caractères qui se ressemblent : voir la figure 1pour des
exemples de polices avec I (i majuscule), l (L minuscule),
1
(le chiffre un), O (o majuscule),
0 (le chiffre zéro).
Figure 1— Comparaison de polices pour listings
Deux lignes de code Python : la deuxième commence par quatre
espaces.
Remarquez les bons alignements avec les deux dernières polices
(le
0
de la première ligne doit se situer juste au-dessus du
l
minuscule de la deuxième ligne).
if O == 0:
I=l+1 avec serif (Times New Roman) non
if O == 0:
I=l+1 sans serif (Arial) non
if O == 0:
I=l+1 exotique (Gothic) non
if O == 0:
I=l+1 monospace (Courier New) oui
if O == 0:
I=l+1
monospace (DejaVu Sans Mono)
oui
Ne restez jamais coincé(e) face à un problème. La communauté des utilisateurs Python
est très ouverte et donne, même aux débutants, des conseils, trucs et astuces, dans des
FAQs et forums que vous pouvez consulter sur Internet. Par exemple :
Ihttp://python.developpez.com/
Ihttp://programmers.stackexchange.com/questions/tagged/python
En cas de problème, essayez de réduire la taille de votre programme pour en faire un
exemple complet minimal (ECM), reproduisant l’erreur sans contenir une seule ligne de
code parasite.
En créant cet ECM, neuf fois sur dix, vous trouverez l’erreur. Si elle persiste, vous pouvez
me contacter par mail, en y joignant l’ECM.
Pensez à noter et classer les problèmes rencontrés lors de l’utilisation de Python, avec
vos tentatives infructueuses de résolutions et vos solutions expliquées.
MISE EN ROUTE 2
Mise en route
Au démarrage, sélectionnez le système Linux. Créez un répertoire
TP-Python
dans votre
espace de travail. Lancez Python :
sous Linux :
menu Applications, puis sous-menu Programmation, puis lancement IDLE
(using Python-3.x)
sous Windows, si vous l’avez installé chez vous :
menu Tous les programmes, puis sous-
menu Python 3.x, puis puis lancement IDLE (Python GUI)
Une fenêtre semblable à celle de la figure 2s’ouvre.
Figure 2— L’interpréteur Python sous IDLE
Cette fenêtre (titrée Python Shell) permet d’entrer des calculs : une invite (prompt en
anglais) formée de trois chevrons >>> autorise à entrer des expressions Python.
Entrez après l’invite la ligne suivante, et validez par <Entr> :
>>> (2016 *2017) // 2 # la somme des 2016 premiers nombres
2033136
La fin de ligne à partir du
#
est un commentaire, ignoré par Python. L’opérateur
//
est
celui de la division euclidienne.
Dans la fenêtre IDLE Python Shell, les raccourcis <Alt>p et <Alt>n permettent de naviguer
dans l’historique des commandes. Un nom spécial,
_
(tiret de soulignement, underscore),
permet de récupérer le résultat de la dernière commande. Si l’on est positionné sur une
ligne, l’appui sur <Entr> copie/colle cette ligne en fin de ligne courante. Évidemment,
<Ctrl>C/<Ctrl>V permet de copier/coller une portion de texte ou même un résultat.
De plus, une aide très complète est fournie avec Python en passant par le menu Help/Python Docs,
raccourci <F1>. Cette aide contient en particulier The Python Tutorial qui est une lecture
indispensable : Ihttps://docs.python.org/3/tutorial/index.html
Exercice 1— Entrée d’expressions
Entrez les commandes suivantes sous le Shell IDLE. Utilisez
<Alt>p
et
<Alt>n pour utiliser les commandes de l’historique :
>>> 2016 *2017
4066272
>>> 2016 *2017 // 2
2033136
>>> 2016 *2017
4066272
>>> _// 2
2033136
>>> 2016*2017 + 2017
4068289
Python Shell sous IDLE ne permet d’entrer qu’une commande à la fois : il n’est en général
utilisé que pour tester quelques lignes de programme. Quand le travail est plus long, on
utilisera de préférence un éditeur de programmes permettant d’entrer, de sauvegarder ou
de recharger des enchaînements d’instructions.
TP1IGI-3008 (2016-2017)
PYTHON, UNE CALCULATRICE SIMPLE 3
Python, une calculatrice simple
Python permet de calculer avec trois sortes de nombres : les entiers appelés
int
(comme
0
,
1
ou
12345678
), les décimaux
float
(comme
3.14
,
6.02e23
ou
-1.6e-19
) et les complexes
complex (comme 2.5 + 3.1j ou 2.015e3 + 2.016e-3j)
Exercice 2— Les nombres littéraux
Écrivez en Python les valeurs mathématiques suivantes. Notez les
messages d’erreur, si vous laissez des espaces, ou oubliez de préfixer
j
dans les complexes. Remarquez que
3,14
n’entraîne pas d’erreur, mais
crée le couple (3, 14).
1 234 123 456 789 3, 14
6, 02 ×1023 1, 602 176 53 ×1019
2+3 i 2 i
Essayez d’entrer les nombres de l’exercice 2.
Dans The Python Tutorial, rendez-vous au paragraphe
3. An Informal Introduction to Python
3.1. Using Python as a Calculator
3.1.1. Numbers
(ou Ihttp://docs.python.org/3.4/tutorial/introduction.html#numbers)
et consultez-le pour les exercices suivants. Exercice 3— Calculs et types
Quels sont les résultats (valeur et type) des expressions suivantes ?
23 + 8 23.2 - 8.2 (17+1j) - (17+1j)
3*17 3 *17.0 (3*1j) *(3-1j)
3*0 3.5 *0 (3*1j) *0
23 / 8 23 // 8 23.0 // 8
24 / 8 24 // 8 24.0 // 8
23 % 8 23.0 % 8 24.0 % 8
(2+4j) / (1+3j) (2+4j) // (1+3j) (2+4j) // (1+2j)
2** 16 2.0 ** 16 0 ** 0
(1j)** 2 (-1) ** 0.5 -1 ** 0.5
Note : L’appel à la fonction type(x) retourne le type de x.
Les opérateurs numériques de base sont :
+addition
-soustraction
*multiplication
/division
// division entière
%reste de la division entière
** élévation à la puissance
Le type du résultat est celui de l’opérande le plus
compliqué
, excepté pour
/
pour lequel
le type du résultat ne peut pas être entier (cf. exercice 3)Exercice 4— Quelques calculs curieux
Calculer les valeurs suivantes. Expliquez les bizarreries.
0, 3 +0, 2 +0, 1 0, 1 +0, 2 +0, 3
0, 3 ×0, 2 ×0, 1 0, 1 ×0, 2 ×0, 3
(1, 2 +1, 3)21, 22+2×1, 2 ×1, 3 +1, 32
1+
32×7×
1+1
11
11
2
1
11
11
3
5
Il faut toujours avoir en tête que les calculs sur les décimaux (
float
) risquent d’être
entachés d’erreurs (cf. exercice 4). Le module fractions permet de faire des calculs exacts
sur les rationnels.
>>> from fractions import *
>>> Fraction(3, 10) + Fraction(2, 10) + Fraction(1, 10)
Fraction(3, 5)
>>> Fraction(1, 10) + Fraction(2, 10) + Fraction(3, 10)
Fraction(3, 5)
TP1IGI-3008 (2016-2017)
ÉCRITURE DE PROGRAMMES 4
Écriture de programmes
Lorsque les enchaînements de calcul sont trop nombreux ou trop longs, il devient
important de mémoriser les données, en utilisant des noms permettant de s’y référer et
de stocker les suites d’instructions dans un fichier (
script
) que l’on peut sauvegarder sur
disque pour le conserver et le réutiliser en cas de besoin.
Pour pouvoir saisir un programme et le sauvegarder, on dispose de l’éditeur de texte
IDLE (lui-même écrit en Python).
Dans la fenêtre Python Shell, choissez le File/New File. La fenêtre ci-contre apparaît.
Figure 3— Éditeur de texte IDLE
Cette fenêtre, titrée pour l’instant Untitled, va nous permettre de saisir notre premier
programme, limitée à une seule instruction :
print("Bonjour")# print affiche le texte écrit entre double quotes
On peut sauvegarder ce programme (le classique File/Save As...), et pour exécuter ce programme,
on utilise le menu Run/Run Module (raccourci <F5>).
La fenêtre Python Shell est réinitialisée et le programme s’exécute.
Les expressions peuvent être nommées pour être réutilisées plus facilement. Par exemple,
pour demander à l’utilisateur son nom, puis lui afficher un message de bienvenue :
nom = input("Entrez votre nom : ")# input demande une saisie clavier
print("Bonjour,", nom, "! Comment allez-vous ?")
Notez que la variable
nom n’est pas
mise entre double quotes. Essayez de la mettre entre
double quotes et notez le résultat.
Exercice 5— Saisie et affichage
print(suite d’expressions séparées par des virgules)
permet d’afficher les valeurs de la suite séparées par des espaces.
var = input(message)
affiche le message, puis interrompt le programme en attendant que
l’utilisateur entre du texte, qui sera stocké dans la variable var.
Écrire un programme qui demande à l’utilisateur d’entrer son nom,
puis son prénom et affiche l’initiale du prénom, suivie du nom.
Note :
pour obtenir le premier caractère d’une variable
nom
chaîne de
caractères, on utilise la syntaxe nom[0].
Certaines instructions sont composées de sous-instructions.
prénom = input("Entrez votre prénom : ")
if prénom == "xxx":# "xxx" --> votre prénom
print(prénom, "mérite un ’golden parachute’ de 14 millions d’euros.")
else:
print(prénom, "devra encore faire ses preuves.")
Les sous-instructions doivent toutes être décalées du même nombre d’espaces, en général
4espaces (indentation).
TP1IGI-3008 (2016-2017)
ÉCRITURE DE FONCTIONS 5
Écriture de fonctions
Exercice 6— Périmètre et aire du cercle
Créez un nouveau répertoire de nom cercle
Dans IDLE, ouvrez une nouvelle fenêtre (File/New File).
Saisissez les fonctions ci-contre.
Sauvegardez dans cercle sous le nom cercle.py et exécutez le
programme .
Notez les messages d’erreur pour vous y habituer et corrigez-les.
Testez les fonctions.
Modifiez la fonction
aire
pour qu’elle utilise la fonction
périmètre
grâce à la formule
A=P×r
2
(copier/coller, modifiez les
commentaires et la fonction et renommez la aire2).
Modifiez la fonction
périmètre
en faisant afficher (
print
) plutôt
que retourner (
return
) la valeur du périmètre. Votre fonction
aire2
fonctionne-t-elle toujours ?
Comment faire pour utiliser le caractère
π
dans les commentaires ?
Peut-on utiliser πcomme nom de variable ?
Pour que des traitements puissent être réutilisés, Python permet de leur attribuer des
noms. Dans une nouvelle fenêtre IDLE, entrez les lignes suivantes :
# fichier : cercle.py
# auteur : Jean-Claude GEORGES
# date : 14/05/2010
# màj : 06/09/2016
# exemple de programme définissant des fonctions
import math
# périmètre d’un cercle
def périmètre(rayon):
""" calcule et retourne le périmètre d’un cercle de rayon donné
La formule utilisée est p = 2 Pi r
"""
return 2*math.pi *rayon
# aire d’un cercle
def aire(rayon):
""" calcule et retourne l’aire d’un cercle de rayon donné
La formule utilisee est a = Pi r2
"""
return math.pi *rayon**2
Sauvegardez, puis exécutez le programme. S’il n’y a pas d’erreurs, dans la fenêtre Shell
IDLE, vous pouvez maintenant utiliser vos deux fonctions périmètre et aire :
>>> périmètre(0.5)
3.141592653589793
>>> aire(2.0)
12.566370614359172
De plus, la première chaîne de caractères entre
"""triples double quotes"""
est
interprétée par Python comme une
docstring
(chaîne de documentation), et peut être affichée
de manière naturelle par la commande :
>>> help(aire)
Help on function aire in module __main__:
aire(r)
calcule et retourne l’aire d’un cercle de rayon r
La formule utilisee est a = Pi r2
Exercice 7— Périmètre et aire du rectangle
Sur le même modèle, créez un nouveau répertoire de nom rectangle et
les fonctions de calcul du périmètre et de l’aire du rectangle.
TP1IGI-3008 (2016-2017)
1 / 7 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !