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 Cours_2 © L. Tichit, 26/09/18 page 1 / 28

« mode calculette » : exécuter une suite de …tichit/python/cours/Cours_2.pdfÉcriture d'un script (programme) Python, lecture et écriture Programme enregistré • • « mode

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: « mode calculette » : exécuter une suite de …tichit/python/cours/Cours_2.pdfÉcriture d'un script (programme) Python, lecture et écriture Programme enregistré • • « mode

É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

Page 2: « mode calculette » : exécuter une suite de …tichit/python/cours/Cours_2.pdfÉcriture d'un script (programme) Python, lecture et écriture Programme enregistré • • « mode

É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

Page 3: « mode calculette » : exécuter une suite de …tichit/python/cours/Cours_2.pdfÉcriture d'un script (programme) Python, lecture et écriture Programme enregistré • • « mode

É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

Page 4: « mode calculette » : exécuter une suite de …tichit/python/cours/Cours_2.pdfÉcriture d'un script (programme) Python, lecture et écriture Programme enregistré • • « mode

É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

Page 5: « mode calculette » : exécuter une suite de …tichit/python/cours/Cours_2.pdfÉcriture d'un script (programme) Python, lecture et écriture Programme enregistré • • « mode

É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

Page 6: « mode calculette » : exécuter une suite de …tichit/python/cours/Cours_2.pdfÉcriture d'un script (programme) Python, lecture et écriture Programme enregistré • • « mode

É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

Page 7: « mode calculette » : exécuter une suite de …tichit/python/cours/Cours_2.pdfÉcriture d'un script (programme) Python, lecture et écriture Programme enregistré • • « mode

É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

Page 8: « mode calculette » : exécuter une suite de …tichit/python/cours/Cours_2.pdfÉcriture d'un script (programme) Python, lecture et écriture Programme enregistré • • « mode

É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

Page 9: « mode calculette » : exécuter une suite de …tichit/python/cours/Cours_2.pdfÉcriture d'un script (programme) Python, lecture et écriture Programme enregistré • • « mode

É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

Page 10: « mode calculette » : exécuter une suite de …tichit/python/cours/Cours_2.pdfÉcriture d'un script (programme) Python, lecture et écriture Programme enregistré • • « mode

É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

Page 11: « mode calculette » : exécuter une suite de …tichit/python/cours/Cours_2.pdfÉcriture d'un script (programme) Python, lecture et écriture Programme enregistré • • « mode

É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

Page 12: « mode calculette » : exécuter une suite de …tichit/python/cours/Cours_2.pdfÉcriture d'un script (programme) Python, lecture et écriture Programme enregistré • • « mode

É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

Page 13: « mode calculette » : exécuter une suite de …tichit/python/cours/Cours_2.pdfÉcriture d'un script (programme) Python, lecture et écriture Programme enregistré • • « mode

É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

Page 14: « mode calculette » : exécuter une suite de …tichit/python/cours/Cours_2.pdfÉcriture d'un script (programme) Python, lecture et écriture Programme enregistré • • « mode

É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

Page 15: « mode calculette » : exécuter une suite de …tichit/python/cours/Cours_2.pdfÉcriture d'un script (programme) Python, lecture et écriture Programme enregistré • • « mode

É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

Page 16: « mode calculette » : exécuter une suite de …tichit/python/cours/Cours_2.pdfÉcriture d'un script (programme) Python, lecture et écriture Programme enregistré • • « mode

É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

Page 17: « mode calculette » : exécuter une suite de …tichit/python/cours/Cours_2.pdfÉcriture d'un script (programme) Python, lecture et écriture Programme enregistré • • « mode

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

Page 18: « mode calculette » : exécuter une suite de …tichit/python/cours/Cours_2.pdfÉcriture d'un script (programme) Python, lecture et écriture Programme enregistré • • « mode

É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

Page 19: « mode calculette » : exécuter une suite de …tichit/python/cours/Cours_2.pdfÉcriture d'un script (programme) Python, lecture et écriture Programme enregistré • • « mode

É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

Page 20: « mode calculette » : exécuter une suite de …tichit/python/cours/Cours_2.pdfÉcriture d'un script (programme) Python, lecture et écriture Programme enregistré • • « mode

É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

Page 21: « mode calculette » : exécuter une suite de …tichit/python/cours/Cours_2.pdfÉcriture d'un script (programme) Python, lecture et écriture Programme enregistré • • « mode

É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

Page 22: « mode calculette » : exécuter une suite de …tichit/python/cours/Cours_2.pdfÉcriture d'un script (programme) Python, lecture et écriture Programme enregistré • • « mode

É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

Page 23: « mode calculette » : exécuter une suite de …tichit/python/cours/Cours_2.pdfÉcriture d'un script (programme) Python, lecture et écriture Programme enregistré • • « mode

É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

Page 24: « mode calculette » : exécuter une suite de …tichit/python/cours/Cours_2.pdfÉcriture d'un script (programme) Python, lecture et écriture Programme enregistré • • « mode

É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

Page 25: « mode calculette » : exécuter une suite de …tichit/python/cours/Cours_2.pdfÉcriture d'un script (programme) Python, lecture et écriture Programme enregistré • • « mode

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 ] ]

Page 26: « mode calculette » : exécuter une suite de …tichit/python/cours/Cours_2.pdfÉcriture d'un script (programme) Python, lecture et écriture Programme enregistré • • « mode

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

Page 27: « mode calculette » : exécuter une suite de …tichit/python/cours/Cours_2.pdfÉcriture d'un script (programme) Python, lecture et écriture Programme enregistré • • « mode

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

Page 28: « mode calculette » : exécuter une suite de …tichit/python/cours/Cours_2.pdfÉcriture d'un script (programme) Python, lecture et écriture Programme enregistré • • « mode

É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