Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
Écriture d'un script (programme) Python, lecture et écriture
Programme enregistré •• « mode calculette » : exécuter une suite de commandes en tapant
chaque commande à l’invite de Python
Cours_2 © L. Tichit, 26/09/18 page 1 / 28
Écriture d'un script (programme) Python, lecture et écriture
Programme enregistré •• « mode calculette » : exécuter une suite de commandes en tapant
chaque commande à l’invite de Python
• programme (ou script) : suite de commandes enregistrées dans un fichier. Permet :
la ré-exécution des mêmes suites de commandes sans les ressaisir l’exécution d’une suite de commandes à la cadence de la machine
Cours_2 © L. Tichit, 26/09/18 page 2 / 28
Écriture d'un script (programme) Python, lecture et écriture
Programme enregistré• « mode calculette » : exécuter une suite de commandes en tapant
chaque commande à l’invite de Python
• programme (ou script) : suite de commandes enregistrées dans un fichier. Permet :
la ré-exécution des mêmes suites de commandes sans les ressaisir l’exécution d’une suite de commandes à la cadence de la machine
Cours_2 © L. Tichit, 26/09/18 page 3 / 28
import datetime
listeMois = [ "janvier", "février", "mars", "avril", "mai", "juin", "juillet", ... ]listeJours = [ "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi", ... ]
aujourdhui = datetime.date.today()jour = aujourdhui.daymois = listeMois[aujourdhui.month - 1]annee = aujourdhui.yearjsem = listeJours[aujourdhui.weekday()]
print(jsem, jour, mois, annee)
fichier madate.py
Écriture d'un script (programme) Python, lecture et écriture
Exécution d’un programme enregistré •• 1° Depuis une session interactive Python
$ python3...>>> import madateMercredi 3 septembre 2014>>>
Cours_2 © L. Tichit, 26/09/18 page 4 / 28
Écriture d'un script (programme) Python, lecture et écriture
Exécution d’un programme enregistré •• 1° Depuis une session interactive Python
$ python3...>>> import madateMercredi 3 septembre 2014>>>
• défaut : difficulté à ré-exécuter le script
>>> import madate
aucun effet
Cours_2 © L. Tichit, 26/09/18 page 5 / 28
Écriture d'un script (programme) Python, lecture et écriture
Exécution d’un programme enregistré •• 1° Depuis une session interactive Python
$ python3...>>> import madateMercredi 3 septembre 2014>>>
• défaut : difficulté à ré-exécuter le script
>>> import madate
aucun effet
>>> reload(madate)Mercredi 3 septembre 2014
Cours_2 © L. Tichit, 26/09/18 page 6 / 28
Écriture d'un script (programme) Python, lecture et écriture
Exécution d’un programme enregistré• 1° Depuis une session interactive Python
$ python3...>>> import madateMercredi 3 septembre 2014>>>
• défaut : difficulté à ré-exécuter le script
>>> import madate
aucun effet
>>> reload(madate)Mercredi 3 septembre 2014
• 2° Depuis le système d’exploitation (depuis le terminal)
$ python3 madate.pyMercredi 3 septembre 2014$
Cours_2 © L. Tichit, 26/09/18 page 7 / 28
Écriture d'un script (programme) Python, lecture et écriture
Saisie et exécution d’un programme• pratiquement : 1) appeler l’éditeur
geany nomDeFichier.py &gedit nomDeFichier.py &
Cours_2 © L. Tichit, 26/09/18 page 8 / 28
ne pas oublier l’extension .py
Écriture d'un script (programme) Python, lecture et écriture
Saisie et exécution d’un programme •• 2) saisir le programme
Cours_2 © L. Tichit, 26/09/18 page 9 / 28
Écriture d'un script (programme) Python, lecture et écriture
Saisie et exécution d’un programme• 2) saisir le programme
• ne pas oublier de sauvegarder le texte !
Cours_2 © L. Tichit, 26/09/18 page 10 / 28
Écriture d'un script (programme) Python, lecture et écriture
Saisie et exécution d’un programme •• 3) exécuter le programme
Cours_2 © L. Tichit, 26/09/18 page 11 / 28
Écriture d'un script (programme) Python, lecture et écriture
Saisie et exécution d’un programme• 3) exécuter le programme
• le & en fin de commande permet de continuer à travailler au terminal
• ne pas oublier de sauvegarder le texte visible à l’éditeur
Cours_2 © L. Tichit, 26/09/18 page 12 / 28
Écriture d'un script (programme) Python, lecture et écriture
Pour Windows, c’est pareil• pour ouvrir une console :
Démarrer > Programmes > Accessoires > Invite de commandes
Cours_2 © L. Tichit, 26/09/18 page 13 / 28
Écriture d'un script (programme) Python, lecture et écriture
Acquisition de données par un programme •• sauf rares exceptions (comme madate.py)
un programme reçoit des données que le monde extérieur lui fournit,et produit des résultats qu’il fournit au monde extérieur
Cours_2 © L. Tichit, 26/09/18 page 14 / 28
programme
Écriture d'un script (programme) Python, lecture et écriture
Acquisition de données par un programme •• sauf rares exceptions (comme madate.py)
un programme reçoit des données que le monde extérieur lui fournit,et produit des résultats qu’il fournit au monde extérieur
• on parle de lectures : le programme lit des donnéesque l’utilisateur devra écrire (p.ex. au clavier)
Cours_2 © L. Tichit, 26/09/18 page 15 / 28
programme
Écriture d'un script (programme) Python, lecture et écriture
Acquisition de données par un programme• sauf rares exceptions (comme madate.py)
un programme reçoit des données que le monde extérieur lui fournit,et produit des résultats qu’il fournit au monde extérieur
• on parle de lectures : le programme lit des donnéesque l’utilisateur devra écrire (p.ex. au clavier)
• et d’écritures : le programme écrit des résultatsque l’utilisateur lit (p.ex. à l’écran)
Cours_2 © L. Tichit, 26/09/18 page 16 / 28
programme
import sys
nombre = len(sys.argv)print('il y a ', nombre, 'arguments', ':', sys.argv)
fichier afficheEtCompteArguments.py
Écriture d'un script (programme) Python, lecture et écriture
Lecture des arguments d'un script •• La liste sys.argv
contient la liste des arguments passés au script lors de l'exécution le premier argument est TOUJOURS le nom du script tous les arguments sont de type 'str'
$ python3 afficheEtCompteArguments.pyil y a 1 arguments : ['afficheEtCompteArguments.py']$ python3 afficheEtCompteArguments.py bonjour à vous 3il y a 5 arguments : ['afficheEtCompteArguments.py', 'bonjour', 'à', 'vous', '3']
Cours_2 © L. Tichit, 26/09/18 page 17 / 28
Écriture d'un script (programme) Python, lecture et écriture
La fonction print est-elle utile ? •
Python lit, évalue et affiche. Alors, à quoi sert la fonction print ?
Cours_2 © L. Tichit, 26/09/18 page 18 / 28
Écriture d'un script (programme) Python, lecture et écriture
La fonction print est-elle utile? •
Python lit, évalue et affiche. Alors, à quoi sert la fonction print ?
print est indispensable dans les programmes pour afficher d’autres choses que le résultat final d’une exécution
•
Cours_2 © L. Tichit, 26/09/18 page 19 / 28
Écriture d'un script (programme) Python, lecture et écriture
La fonction print est-elle utile? •
Python lit, évalue et affiche. Alors, à quoi sert la fonction print ?
print est indispensable dans les programmes pour afficher d’autres choses que le résultat final d’une exécution
print fait un affichage amélioré
>>> "Prix TTC", 247.3('Prix TTC', 247.30000000000001)
>>> print("Prix TTC", 247.3)Prix TTC 247.3
Cours_2 © L. Tichit, 26/09/18 page 20 / 28
Écriture d'un script (programme) Python, lecture et écriture
La fonction print est-elle utile?
Python lit, évalue et affiche. Alors, à quoi sert la fonction print ?
print est indispensable dans les programmes pour afficher d’autres choses que le résultat final d’une exécution
print fait un affichage amélioré
>>> "Prix TTC", 247.3('Prix TTC', 247.30000000000001)
>>> print("Prix TTC", 247.3)Prix TTC 247.3
cette amélioration peut être poussée avec l’opérateur %
>>> print("Prix TTC = %8.2f EUR" % 247.3)Prix TTC = 247.30 EUR ^^^^^^^^
Cours_2 © L. Tichit, 26/09/18 page 21 / 28
« format »t d’affichage
un nombre flottant, prenant 8 caractèresdont 2 après le point décimal
Écriture d'un script (programme) Python, lecture et écriture
Formatage de chaînes •• opérateur de chaînes :
chaine % tuple d’expressions
•
Cours_2 © L. Tichit, 26/09/18 page 22 / 28
format exactement comme pour lafonction printf de C
valeurs "annoncées" par le format
Écriture d'un script (programme) Python, lecture et écriture
Formatage de chaînes •• opérateur de chaînes :
chaine % tuple d’expressions
• exemple :
"Luminy, %s %d/%d/%d" % (js, jm, m, 1900 + a)
renvoie une chaîne comme
"Luminy, lundi 3/10/2005"
•
Cours_2 © L. Tichit, 26/09/18 page 23 / 28
format exactement comme pour lafonction printf de C
valeurs "annoncées" par le format
chaîne entiers
Écriture d'un script (programme) Python, lecture et écriture
Formatage de chaînes• opérateur de chaînes :
chaine % tuple d’expressions
• exemple :
"Luminy, %s %d/%d/%d" % (js, jm, m, 1900 + a)
renvoie une chaîne comme
"Luminy, lundi 3/10/2005"
• souvent associé à print
print("Luminy, %s %d/%d/%d" % (js, jm, m, 1900+a))
Cours_2 © L. Tichit, 26/09/18 page 24 / 28
format exactement comme pour lafonction printf de C
valeurs "annoncées" par le format
chaîne entiers
début
fin : type de la donnée d : entier f : flottant s : chaîne
cadrage à gauche chiffres après le point
compléter avec des zéros taille totale de la zone
dfs
Écriture d'un script (programme) Python, lecture et écriture
Formatage de chaînes •• spécification de format
fréquentes
Cours_2 © L. Tichit, 26/09/18 page 25 / 28
%[ [-][0] n [.m ] ]
dfs
début
fin : type de la donnée d : entier f : flottant s : chaîne
cadrage àgauche chiffres après le point
compléter avec des zéros taille totale de la zone
Écriture d'un script (programme) Python, lecture et écriture
Formatage de chaînes •• spécification de format
fréquentes
• exemples : x = 1234.5678 print("%f" % x) 1234.567800 print("%13f" % x) 1234.567800 print("%13.3f" % x) 1234.568 print("%013.3f" % x) 000001234.568
Cours_2 © L. Tichit, 26/09/18 page 26 / 28
%[ [-][0] n [.m ] ]
13 cars
début
fin : type de la donnée d : entier f : flottant s : chaîne
cadrage àgauche chiffres après le point
compléter avec des zéros taille totale de la zone
dfs
Écriture d'un script (programme) Python, lecture et écriture
Formatage de chaînes• spécification de format fréquentes
• exemples : x = 1234.5678 print("%f" % x) 1234.567800 print("%13f" % x) 1234.567800 print("%13.3f" % x) 1234.568 print("%013.3f" % x) 000001234.568
• disposition en colonnes :print("%06d|%-30s|%8.2f" % ( ref, design, prix )) 000523|Ile Maurice 10jrs + AR | 849.90
Cours_2 © L. Tichit, 26/09/18 page 27 / 28
%[ [-][0] n [.m ] ]
13 cars
Écriture d'un script (programme) Python, lecture et écriture
Formatage de chaînes• Autre syntaxe de formatage :
voir : https://docs.python.org/3/library/string.html#format-examples
• Écrivez un script qui se sert de cette syntaxe.
Cours_2 © L. Tichit, 26/09/18 page 28 / 28