Programmation Python
Mbarka Belhaj Mohamed
mbarkaenig@gmail.com
2020-2021
Programmation procédurale
2
Caractéristiques
• La programmation procédurale est basée sur le
concept d'appel procédural.
• Une procédure contient une série d'étapes à réaliser.
• Elle peut être appelée à n'importe quelle étape de
l'exécution du programme:
– À l'intérieur d'autres procédures.
– Dans la procédure elle-même (récursivité).
Caractéristiques
• Par opposition à la programmation séquentielle, la
programmation procédurale permet de réutiliser le
même code à différents endroits dans le programme
– Réduction de la taille du code source.
– Amélioration de la maintenabilité.
• Elle permet de se passer d'instructions telles que
« goto », évitant ainsi bien souvent de se retrouver
avec un programme compliqué qui part dans toutes
les directions.
– Appelé souvent « programmation spaghetti.»
Caractéristiques
• La programmation procédurale permet les « effets de
bord »,
– La possibilité pour une procédure qui prend des
arguments de modifier des variables extérieures à la
procédure auxquelles elle a accès.
– Variables de contexte plus global que la procédure.
– La programmation impérative permet l'emploi des effets
de bord dans le fonctionnement de ses programmes
contrairement à la programmation fonctionnelle pure.
Exemples
• Algol
• BASIC
• C
• COBOL
• Fortran
• Pascal
• Perl
• PL/SQL
• VBScript
• Python
• Etc.
Le langage Python
• Langage interprété (facilite le prototypage) ;
• Typage dynamique (simplifie la programmation) ;
• Interactif ;
• Librairie standard très complète, grande quantité de librairies
• third-party ;
• Syntaxe concise, plus simple pour commencer
C++ : Python :
# include <iostream > print ("Hello world")
using namespace std;
int main()
{
cout << "Hello world" << endl; return 0;
}
D'accord, mais est-ce utilisé dans l'industrie ?
• Utilisé par :
– Google
– Youtube
– BitTorrent
– Intel, Cisco, HP, IBM
– Pixar
– NASA
– Etc.
Et on peut faire quoi avec ?
• Analyser des données (pandas, matplotlib)
• Faire du calcul scientifique (numpy, scipy)
• Faire de l'apprentissage automatique (scikit-learn)
• Construire des sites Web (flask, cherrypy)
• Maintenir des serveurs
• Programmer des jeux vidéos (pygame)
• Faire de la robotique avec un Raspberry Pi !
• Et beaucoup plus !
Manuel et logiciels du cours
• "Apprendre à programmer avec Python 3" de Gérard Swinnen.
– La version numérique de cet ouvrage est disponible en téléchargement
libre via le lien suivant:
– http://inforef.be/swi/download/apprendre_python3_5.pdf
– Version arabe:
– http://inforef.be/swi/download/apprendre_python3_arab.pdf
• Pour réaliser les laboratoires du cours, vous auriez,
essentiellement, besoin des logiciels suivant:
– Python 3 (https://www.python.org/)
– PyCharm Community Edition (conseillé, mais pas obligatoire):
– http://www.jetbrains.com/pycharm/download/
• Il faut installer (si ce n’est pas déjà fait) Java:
• www.java.com/fr
Installation
• https://www.python.org/downloads/release/python-370/
64 bits
32 bits
Premiers pas avec Python
• Vous allez commencer à utiliser le mode interactif de
Python.
– Dialoguer avec l’interpréteur directement depuis le clavier.
– Découvrir très vite un grand nombre de fonctionnalités du
langage.
• Par la suite, vous allez apprendre comment créer vos
premiers programmes (scripts) et les sauvegarder sur
disque.
Premiers pas avec Python
• Il est conseillé de commencer par utiliser l’environnement de
développement fourni par Python (IDLE):
• Les trois caractères >>> constituent le signal d’invité, ou prompt principal,
lequel vous indique que Python est prêt a exécuter une commande.
Premiers pas avec Python
• Commençons par faire des opérations simples:
Les types de données de base
• Entier : int, sans partie décimale.
• Réel : float, avec partie décimale.
• La représentation interne varie, l'interprétation
(l'utilisation) aussi.
• Opérateurs arithmétiques : +, -, *, /, //, %, **
• Fonctions mathématiques : abs(arg), int(arg),
float(arg), etc.
Les opérateurs arithmétiques
Priorité d'évaluation
• Les parenthèses d'abord : ()
• Les fonctions : abs(arg), etc.
• L'exposant : **
• Les opérateurs unaires : -, +
• Les opérateurs binaires : *, /, //, %
• Les opérateurs binaires : +, -
• Si deux opérateurs ont la même priorité, l'évaluation
est effectuée de gauche à droite.
Le type Booléen : True ou False
• Opérateurs de comparaison : <, >, <=, >=, ==, !=
• Moins prioritaires que les opérateurs arithmétiques
• False correspond à la valeur 0
• True correspond à toute valeur différente de 0,
généralement 1
• erreur_emb = age_embauche > age_retraite
Le type Booléen : True ou False
• Opérateurs de comparaison : <, >, <=, >=, ==, !=
• Moins prioritaires que les opérateurs arithmétiques
• False correspond à la valeur 0
• True correspond à toute valeur différente de 0,
généralement 1
• erreur_emb = age_embauche > age_retraite
Le type Booléen : True ou False
• Opérateurs de comparaison : <, >, <=, >=, ==, !=
• Moins prioritaires que les opérateurs arithmétiques
• False correspond à la valeur 0
• True correspond à toute valeur différente de 0,
généralement 1
• erreur_emb = age_embauche > age_retraite
Le type Booléen : True ou False
• Opérateurs de comparaison : <, >, <=, >=, ==, !=
• Moins prioritaires que les opérateurs arithmétiques
• False correspond à la valeur 0
• True correspond à toute valeur différente de 0,
généralement 1
• erreur_emb = age_embauche > age_retraite
Les opérateurs de comparaison
Les opérateurs logiques
Table de vérité : not
Table de vérité : and
Table de vérité : or
Priorité d'évaluation
• Les parenthèses : ()
• Les fonctions : abs(arg), etc.
• L'exposant : **
• Les opérateurs unaires : -, +
• Les opérateurs binaires : *, /, //, %
• Les opérateurs binaires : +, -
• Les opérateurs de comparaison : <, <=, >, >=
• Les opérateurs de comparaison : ==, !=
• L'opérateur logique : not
• L'opérateur logique : and
• L'opérateur logique : or
Opérateurs de gestion d’information
• Les variables : pour mémoriser l’information.
• L’affectation : pour déplacer de l’information.
• L’input : pour acquérir des données provenant de
l’extérieur.
• L’output : pour communiquer des données vers
l’extérieur.
Une variable en Python
• Représente une donnée.
• Porte un nom, idéalement significatif (qui désigne le
contenu d'une case mémoire à une adresse donnée) ;
• Est associée à une case de la mémoire (statique) ;
• A donc une adresse mémoire (statique) ;
• Est du type de la dernière donnée qu'on lui a affectée
(dynamique) ;
• Ce type est nécessaire pour interpréter le contenu
de la variable.
Un nom de variable en Python
• Séquence de lettres (a-z, A-Z) et de chiffres (0-9), qui doit
toujours débuter par une lettre ;
• Seul le caractère spécial _ (souligné) est permis ;
• Nous éviterons les noms débutant ou se terminant par un _
(ceux-ci ont une signification particulière en Python) ;
• Les majuscules et minuscules représentent différentes lettres ;
• Il faut éviter les 33 mots réservés qui ont une signification
prédéfinie ;
• Par convention, les variables en Python utilisent le format
suivant :
ma_variable.
Les mots réservés en Python
• Les mots suivants sont réservés par le langage, et ne
peuvent donc pas être utilisés comme nom de
variable.
Typage des variables
• Le typage des variables sous Python est dynamique.
– Par opposition au typage statique (ex. C++ ou Java) où il faut
d’abord déclarer le nom et le type des variables, et ensuite
seulement leur assigner un contenu.
• Sous Python, il suffit d’assigner une valeur à un nom de variable
pour que celle-ci soit automatiquement créée avec le type qui
correspond au mieux à la valeur fournie.
• Le typage statique est préférable dans le cas des langages compilés
– Permet d’optimiser l’opération de compilation.
• Le typage dynamique permet d’écrire plus aisément des
constructions logiques de niveau élevé.
L’opération d’affectation
• Évalue l’expression à droite du symbole =.
• Mémorise le résultat de l’évaluation de cette expression dans la
variable identifiée à gauche du symbole =.
2. mémorisation
age_retraite = 65 + 10
{
1. évaluation
• Ce que vous placez a la gauche du signe égale doit toujours être
une variable.
– L’instruction m + 1 = b est illégale.
L’opération d’affectation
• Sous Python, on peut assigner une valeur à plusieurs variables
simultanément. Exemple :
• On peut aussi effectuer des affectations parallèles à l’aide d’un
seul opérateur :
Les variables
• variable = … : mémoriser une information, age_retraite = 65
1. Trouver ou créer la variable nommée à gauche de =.
2. Évaluer la valeur de l’expression à droite de =.
3. Mettre cette valeur dans la variable nommée à gauche de =.
4. Mémoriser le type de cette valeur comme type de la variable.
Nom Adresse Contenu Type
… 1000 … …
… 1001 … …
1002
1003
1004
Les variables
• variable = … : mémoriser une information, age_retraite = 65
1. Trouver ou créer la variable nommée à gauche de =.
2. Évaluer la valeur de l’expression à droite de =.
3. Mettre cette valeur dans la variable nommée à gauche de =.
4. Mémoriser le type de cette valeur comme type de la variable.
Nom Adresse Contenu Type
… 1000 … …
… 1001 … …
age_retraite 1002
1003
1004
Les variables
• variable = … : mémoriser une information, age_retraite = 65
1. Trouver ou créer la variable nommée à gauche de =.
2. Évaluer la valeur de l’expression à droite de =.
3. Mettre cette valeur dans la variable nommée à gauche de =.
4. Mémoriser le type de cette valeur comme type de la variable.
Nom Adresse Contenu Type
… 1000 … …
… 1001 … …
age_retraite 1002 65
1003
1004
Les variables
• variable = … : mémoriser une information, age_retraite = 65
1. Trouver ou créer la variable nommée à gauche de =.
2. Évaluer la valeur de l’expression à droite de =.
3. Mettre cette valeur dans la variable nommée à gauche de =.
4. Mémoriser le type de cette valeur comme type de la variable.
Nom Adresse Contenu Type
… 1000 … …
… 1001 … …
age_retraite 1002 65 entier
1003
1004
Les variables
• variable = … : mémoriser une information, age_embauche = 60.0
1. Trouver ou créer la variable nommée à gauche de =.
2. Évaluer la valeur de l’expression à droite de =.
3. Mettre cette valeur dans la variable nommée à gauche de =.
4. Mémoriser le type de cette valeur comme type de la variable.
Nom Adresse Contenu Type
… 1000 … …
… 1001 … …
age_retraite 1002 65 entier
1003
1004
Les variables
• variable = … : mémoriser une information, age_embauche = 60.0
1. Trouver ou créer la variable nommée à gauche de =.
2. Évaluer la valeur de l’expression à droite de =.
3. Mettre cette valeur dans la variable nommée à gauche de =.
4. Mémoriser le type de cette valeur comme type de la variable.
Nom Adresse Contenu Type
… 1000 … …
… 1001 … …
age_retraite 1002 65 entier
age_embauche 1003
1004
Les variables
• variable = … : mémoriser une information, age_embauche = 60.0
1. Trouver ou créer la variable nommée à gauche de =.
2. Évaluer la valeur de l’expression à droite de =.
3. Mettre cette valeur dans la variable nommée à gauche de =.
4. Mémoriser le type de cette valeur comme type de la variable.
Nom Adresse Contenu Type
… 1000 … …
… 1001 … …
age_retraite 1002 65 entier
age_embauche 1003 60.0
1004
Les variables
• variable = … : mémoriser une information, age_embauche = 60.0
1. Trouver ou créer la variable nommée à gauche de =.
2. Évaluer la valeur de l’expression à droite de =.
3. Mettre cette valeur dans la variable nommée à gauche de =.
4. Mémoriser le type de cette valeur comme type de la variable.
Nom Adresse Contenu Type
… 1000 … …
… 1001 … …
age_retraite 1002 65 entier
age_embauche 1003 60.0 réel
1004
Les variables
• variable = … : mémoriser une information, age_retraite = 65.0
1. Trouver ou créer la variable nommée à gauche de =.
2. Évaluer la valeur de l’expression à droite de =.
3. Mettre cette valeur dans la variable nommée à gauche de =.
4. Mémoriser le type de cette valeur comme type de la variable.
Nom Adresse Contenu Type
… 1000 … …
… 1001 … …
age_retraite 1002 65 entier
age_embauche 1003 60.0 réel
1004
Les variables
• variable = … : mémoriser une information, age_retraite = 65.0
1. Trouver ou créer la variable nommée à gauche de =.
2. Évaluer la valeur de l’expression à droite de =.
3. Mettre cette valeur dans la variable nommée à gauche de =.
4. Mémoriser le type de cette valeur comme type de la variable.
Nom Adresse Contenu Type
… 1000 … …
… 1001 … …
age_retraite 1002 65.0 réel
age_embauche 1003 60.0 réel
1004
Les entrées-sorties
• input()
– Du clavier
– Avec mémorisation temporaire
– Convertit la chaîne de caractères selon le type requis : p.ex. les 2
caractères consécutifs « 6 » et « 5 » sont convertis en valeur
numérique 65
• output() (La fonction print() permet d’afficher le contenu des
variables).
– À l’écran
– Convertit la donnée en une chaîne de caractères correspondants ; p.ex. la
valeur numérique 60.0 est convertie en 4 caractères affichés
consécutivement : « 6 » « 0 » « . » « 0 »
Exemple
Calcul de la moyenne de 2 nombres