Cours d’Informatique Scientifique
Programmation en Python Cours 8/8
Laurent Pointal
laurent.pointal @ limsi.fr
@ laposte.net
Programme de la séance
● Modèles de programmation
● Séquentiel
● Événementiel
● Multitâche
● Interruption
● Ce qu'il faut retenir
urent PointalDépartement Mesures Physiques Cours d’Informatique Scientifique 8/8 3 18
v2.2
Programmation séquentielle
Début
Fin
●
Types de données
●
Variables, affectation
●
Tests
●
Boucles for / while
●
Ruptures de séquences break / continue
●
Fonctions
●
Modules
●
Gestion d’erreurs par exceptions
La programmation que l’on fait en cours/TP.
initialisations
nettoyages
urent PointalDépartement Mesures Physiques Cours d’Informatique Scientifique 8/8 4 18
v2.2
Programmation événementielle
Début
Fin
boucle
événementielle
nettoyages
Typiquement: les interfaces graphiques
initialisations
Évènements:
●
utilisateur (clavier, souris…)
●
interface graphique (fenêtre à redessiner…)
●
système (mise en veille…)
●
autres (mesures prêtes…)
Suivant l'évènement
urent PointalDépartement Mesures Physiques Cours d’Informatique Scientifique 8/8 5 18
v2.2
Programmation multitâche
Début
Fin
Compliqué à appréhender, complexe.
initialisations
nettoyages Les différents “fils d’exécution”
(threads) sont exécutés simultanément.
urent PointalDépartement Mesures Physiques Cours d’Informatique Scientifique 8/8 6 18
v2.2
Programmation sur interruption
Début
Fin
nettoyages
Typiquement: les systèmes d’exploitation
initialisations
Évènements:
●
fin d’une opération par l’électronique,
●
défaut d’accès à une zone mémoire,
●
évènement extérieur (réseau…)
●
autres (horloge périodique…)
programme séquentiel, évènementiel, multitache
A tout moment:
●
pause dans le programme en cours
●
exécution d’un traitement d’interruption
urent PointalDépartement Mesures Physiques Cours d’Informatique Scientifique 8/8 7 18
v2.2
CQFR - Ce qu’il faut retenir
●
Types de données de base
●
Nombres, booléens, chaînes ; opérations liées
●
Types de données conteneurs
●
Listes & tuples, dictionnaires, ensembles ; opérations liées
●
Variables
●
Portée globale et locale, incrémentation,
●
Séquences d’instructions, tests et boucles
●
Conditions, ruptures de séquences
●
Fonctions
●
Définition, paramètres, appel et arguments, retour
●
Modules
●
Création, utilisation, test
●
Fichiers et entrées/sorties
●
Écriture, lecture, input/print
urent PointalDépartement Mesures Physiques Cours d’Informatique Scientifique 8/8 8 18
v2.2
Types de base
int
float
bool
str
True False
complex
opérations + - * / // % **
(expression)
existence module math
opérations + * s[index]
s[début:fin:pas]
len(s)
existence de méthodes
"{}".format(v) ...
expressions booléennes
< > <= >= == !=
or and not
transtypage str(12)
int(s)
...
urent PointalDépartement Mesures Physiques Cours d’Informatique Scientifique 8/8 9 18
v2.2
Types conteneurs
opérations + * l[index]
l[début:fin:pas]
len(l)
existence de méthodes l.append(12)
l.sort() ...
list
tuple
dict
opérations in not in
d[clé]
existence de méthodes d.keys()
d.values() ...
set
Conteneurs ... collections de données à parcourir ... boucles opérations
max(l)
min(l)
sum(l)
urent PointalDépartement Mesures Physiques Cours d’Informatique Scientifique 8/8 10 18
v2.2
Variables
Association
nom valeur
●
Peut changer durant l’exécution.
●
Définie dans le module: globale
●
Définie dans une fonction: locale par défaut
Ne pas confondre variable x et chaîne "x" !
Incrémentation x = x+1
urent PointalDépartement Mesures Physiques Cours d’Informatique Scientifique 8/8 11 18
v2.2
Séquences d'instructions
●
Exécution instruction par instruction
●
Dans l’ordre
●
Changements d'états (des variables)
●
Blocs d'instructions (indentation)
●
Exécution conditionnelle if
●
Boucles for / while
●
Ruptures de boucle break / continue
Début
Fin
nettoyages
initialisations
urent PointalDépartement Mesures Physiques Cours d’Informatique Scientifique 8/8 12 18
v2.2
Fonctions
définition appels
arguments
Fonction
paramètres
return ...
valeur de retour (résultat) def Fonction(paramètres):
...
return résultat
res = Fonction(arguments)
res
urent PointalDépartement Mesures Physiques Cours d’Informatique Scientifique 8/8 13 18
v2.2
Fonctions... vu de la définition
définition
Fonction
paramètres
return ...
def Fonction(paramètres):
...
return résultat
urent PointalDépartement Mesures Physiques Cours d’Informatique Scientifique 8/8 14 18
v2.2
Fonctions... vu de l'appel
appels
arguments
valeur de retour (résultat)
res = Fonction(arguments)
res
urent PointalDépartement Mesures Physiques Cours d’Informatique Scientifique 8/8 15 18
v2.2
Modules
●
Organisation du code
●
Réutilisation
●
Tests
●
Petits scripts outils
définition utilisation
●
En-tête
●
Globales
●
Fonctions / classes
●
Auto-test ou code principal
●
Différentes possibilités d’import
●
Accès qualifiés par le noms du module
●
Accès direct
urent PointalDépartement Mesures Physiques Cours d’Informatique Scientifique 8/8 16 18
v2.2
Fichiers
print("texte") input("x=")
Entrées/sorties clavier/console texte:
retourne str !
f = open(nom,mode,encodage) f.write("texte")
s = f.read() f.close()
Entrées/sorties fichier sur disque:
urent PointalDépartement Mesures Physiques Cours d’Informatique Scientifique 8/8 17 18
v2.2
Construire... un algorithme
Outils
(concepts, langage, bibliothèques)
Moyen d'atteindre un but en répétant un nombre fini de fois un nombre fini d'instructions.
B.Cordeau Problème
Algorithme Solution
Pour que l’on puisse y arriver:
●
Nombre d’instructions fini
Temps d’exécution fini
urent PointalDépartement Mesures Physiques Cours d’Informatique Scientifique 8/8 18 18
v2.2
L’exam DS
●
2h
●
Documentations autorisées:
➢
Abrégé Python 3
➢
Mémento Python 3
➢
Une feuille A4 recto/verso avec vos notes
●