Introduction
à Python
Abdoulaye DIENG 1Septembre 2020
Objectif général
Acquérir les connaissances nécessaires à la
programmation avec le langage Python
2
Objectifs spécifiques
• Mémoriser des données primitives
• Traiter des données
• Communiquer avec l’extérieur
• Contrôler le flux d’exécution des instructions
• Mémoriser des données composites
• Découper et réutiliser du code
3
Sommaire
1) Qu’est que Python ?
2) Environnement de développement
3) Variables
4) Types primitifs
5) Opérateurs
6) Entrée et sortie de base
7) Structures de contrôle
8) Listes
9) Tuples
10) Dictionnaires
11) Fonctions
12) Modules 4
Qu’est ce que Python
Langage de programmation interprété, multi-paradigme
(fonctionnel et orienté objet) et multiplateforme (Windows,
Linux, macOS, Android et iOS)
Offre des outils de haut niveau et une syntaxe simple
Créé par Guido Van Russom en 1989
Dernière version 3.8 en sept 2020
Usage :
 Scripts pour automatiser des tâches
 Analyse de données
 Calcul numérique
 Développement web
 Instagram, YouTube, Dropbox, …
5
Environnement de dev
installation de Python
Selon le SE, télécharger le fichier d'installation de Python à
l’URL https://www.python.org/downloads/
Installer Python sous Windows
exécuter le fichier d'installation et suivre les étapes
Installer Python sous Mac OS X
Ouvrir le fichier .dmg, faire un double-clic sur le paquet
d'installation Python.mpkg et suivre les étapes
Installer Python sous Linux
1) Décompresser l'archive : tar -xzf archive
2) Se mettre dans le dossier créé
3) Exécuter le script configure : ./configure
4) Compiler
make puis make install en tant que super-utilisateur.
6
Environnement de dev
édition et exécution d’un script Python
Pour éditer un script python
• Créer le dossier « exemples-python » : lieu de stockage de
tous les exemples du cours
• À l’aide d’un éditeur de texte, créer un nouveau fichier
« nomScript.py » dans « exemples-python »
Pour exécuter un script python
• Lancer l’invite de commande (Windows) ou le terminal (Mac
ou Linux)
• Se placer dans « exemples-python »
• Lancer la commande
python nomScript.py (sous Windows)
python3 nomScript.py (sous Mac OS/Linux)
7
Environnement de dev
interpréteur de Python
L’interpréteur convertit les instructions Python en un langage
compréhensible par l’ordinateur
Il peut être utilisé pour exécuter une instruction
Pour ouvrir l’interpréteur
• Lancer l’invite de commande ou le terminal
• taper python ou python3
Résultat : triple chevrons
8
Variable
Variable : emplacement mémoire pour le stockage
d’une donnée
En python, pas de déclaration de variable :
une variable est créée lors de son initialisation
Exemples
age = 26
prenom, taille = "Ali", 1.85
juste = correct = True
Python est un langage dont le typage est dynamique : la même
variable peut avoir différents types au cours de son existence
Quelques fonctions natives
• del
• type
9
v
a
l
e
u
r
identificateur
Types primitifs
Type : permet de savoir comment stocker et traiter une
donnée
int : entier signé
float : nombre à virgule flottante
Ex : 2.5e2 = 2.5 x 102 = 250
str : chaîne de caractères
Ex : 'Bonjour’ = "Bonjour"
'J'aime le Python!'
"Chaînensurnplusieursnlignes"
"""Autre chaîne
sur plusieurs
lignes"""
bool : booléen (True ou False)
Valeurs fausses : False, None, 0, 0.0, ''
Qlq fonctions de conversion
int(), float(), … 10
Opérateurs
Arithmétiques
+ , - , * , ** (exposant), / , // (division entière), %
+ et * opèrent sur des str et sur des listes
assignation
= (affectation), += (ajouter à), *=, /=, -=, %=
logiques
and (et), or (ou), not (non)
comparaison
== , != , < , <= , > , >=
11
Entrée et sortie de base
Un programme peut avoir des interactions avec l'utilisateur.
input() invite un utilisateur à saisir une donnée pour la
retourner sous la forme d’une chaîne de caractères.
Syntaxe : input([prompt])
print() permet d’afficher des données
Syntaxe
print(valeur(s), sep=' ', end='n', file=sys.stdout, flush=False)
exemple-io.py
12
Structures de contrôle
présentation
Par défaut, les instructions d’un programme sont exécutées d’une
manière séquentielle.
Exemple :
Parfois, il est nécessaire qu’un traitement (une ou +sieurs
instructions) ne soit pas systématiquement exécuté ou soit
exécuté plusieurs fois :
d’où l’intérêt des structures de contrôle.
Deux grands types de structures de contrôle :
• structures conditionnelles ou tests ;
• structures répétitives (ou itératives) ou boucles.
13
Structures de contrôle
conditionnelles - Syntaxe
Opérateur ternaire
[on_true] if [condition] else
[on_false]
14
if condition_1 :
traitement_1
elif condition_2 :
traitement_2
… # suite de elif
[else :
traitement_n]
• exemple-if.py
if condition :
traitement_1
[else :
traitement_2 ]
Structures de contrôle
répétitives - Syntaxe
while condition :
traitement
for element in objet_iterable :
traitement
15
Structures de contrôle
exemple-while.py – exemple-for.py
16
x
• exemple-while.py
• exemple-for.py
Listes
présentation
Liste
• permet de regrouper des données connexes
• Les données sont modifiables et repérées par des
indices (0, 1, …, -2, -1)
Syntaxes de définition
• nom_liste = [ ] ou nom_liste = [ elt1, elt2, … ]
• nom_liste = list() ou nom_liste = list((elt1, elt2, …))
• Ex : ma_liste = list(('p','y')) et ta_liste = ['t','h','o','n',3]
Accès à un élément
• nomListe[indice]
• Ex : ma_liste[1] contient "y" et ta_liste[-1] contient 3
Parcourir une liste
for element in nom_liste :
Vérifier la présence (ou non) d’un élément dans une liste
if element [not] in nom_liste : 17
Listes
quelques opérations
len(nom_liste) retourne le nombre d’éléments
min(nom_liste)/max(nom_liste) retourne le minimum (ou
maximum) d’une liste
.append(element) ajoute l’élément spécifié à la fin
.insert(indice,element) ajoute un élément à l’indice spécifié
.remove(element) supprime la 1ère occurrence de l’élément spécifié
.pop([indice]) supprime le dernier élt ou l’élt à l’indice spécifié
.clear() vide entièrement une liste
.index(element) retourne l’indice de la 1ère occur. de l’élt spécifié
.count(element) retourne le nbr d’occurrences de l’élément spécifié
.sort() trie une liste dans l’ordre croissant
.reverse() inverse l’ordre des éléments d’une liste
18
Tuples
présentation
Tuple
• permet de regrouper des données connexes
• Les données sont non-modifiables et repérées par des
indices (0, 1, …, -2, -1)
Syntaxes de définition
• nom_tuple = () ou nom_tuple = ( elt1, elt2, … )
• nom_tuple = tuple() ou nom_tuple = tuple((elt1, elt2, …))
• Ex : mon_tuple = tuple(('p','y'))
ton_tuple = ('t','h','o','n',3)
Accès à un élément (comme pour une liste)
Parcourir un tuple (comme pour une liste)
Vérifier la présence d’un élément (comme pour une liste)
19
Tuples
quelques opérations
len(nom_tuple) retourne le nombre d’éléments
del supprime complètement un tuple
.count(element) retourne le nbr d’occurrences de l’élément
spécifié
.index(element) retourne l’indice de la 1ère occurrence de
l’élément spécifié
20
Dictionnaires
présentation
Dictionnaire
• permet de regrouper des données connexes
• Les données sont modifiables et repérées par des clés
Syntaxes de définition
• nom_dico = {} ou nom_dico = {'clé1':val1, 'clé2':val2, … }
• nom_dico = dict() ou nom_dico = dict(clé1=val1, clé2=val2,
…)
• Ex : pers1 = dict(nom='Yero Sow', age=25, taille=1.83)
pers2 = {'nom':'Ngor Diouf', 'age':23, 'taille':1.85}
Accès à un élément
• nom_dico['clé']
• Ex : pers1['age'] contient 25
Ajouter un élément
nom_dico['new_clé'] = new_value
Parcourir un dictionnaire donne accès aux clés
for nom_clé in nom_dico
Utiliser l’interpréteur pour tester 21
Dictionnaires
quelques opérations
len(nom_dico) retourne le nombre d’éléments
.pop(clé) supprime la valeur de la clé spécifiée
.popitem() supprime la dernier élément
.clear() vide entièrement un dictionnaire
.get(clé) retourne la valeur de la clé spécifiée
.update({'clé_A' : val_A, 'clé_B' : val_B,…} ) modifie ou ajoute
un ou +sieurs éléments
.values() retourne la liste contenant les valeurs
for val in nom_dico.values() pour parcourir les valeurs
.items() retourne la liste des éléments sous la forme de tuples
(clé,valeur)
for key, val in nom_dico.items() pour parcourir clés et valeurs
22
Fonctions
présentation
Fonction = ensemble d’instructions portant un nom
Utilité :
• implémenter la décomposition d’un problème en sous-problèmes
• faciliter la lisibilité, le débogage et la réutilisabilité/factorisation
Une fonction est définie avec un nom, un corps et d’éventuels arguments (ou
paramètres formel) lui permettant de communiquer
Une fonction n’est exécutée que lorsqu’elle est appelée
Lors de l’appel, tout paramètre formel est associé à une variable ou une
constante nommée « paramètre effectif » du code appelant
Tout passage de paramètre se fait par référence : tout changement du
paramètre formel se reflète sur le paramètre effectif
Après son exécution une fonction peut retourner explicitement une valeur 23
Fonctions
syntaxe
Syntaxe de la définition d’une fonction
def nom_fonction([param_1 [, param_2, …] ] ) :
séquence d'instructions
[return expression]
L'appel d'une fonction qui :
• ne retourne pas de valeur constitue une instruction en lui-
même ;
• retourne une valeur est remplacé à l'exécution par cette valeur
retournée ; cet appel doit forcément se trouver dans un calcul,
une affectation, un affichage, un test, etc.
24
Fonctions
exemple-fonction-sans-return.py
25
Fonctions
exemple-fonction-avec-return.py
26
Fonction
lambda
Une fonction lambda permet d'avoir une syntaxe plus courte
 Elle prend un nombre quelconque d’arguments et retourne la
valeur d’une expression unique
Syntaxe
• lambda [arg1 [,arg2,.....argn]] : expression
• Pas de parenthèses, ni de return
27
Fonction
exemple-lambda-multiplier.py
28
Fonction
exemple-lambda-myfunc.py
29
Module
présentation
Un module est un ensemble de codes encapsulés dans un script
et qui peut être utilisé par d’autres scripts.
Intérêts : faciliter la réutilisation, la lisibilité, le débogage, le
travail d’équipe, …
Exemples de modules natifs
crypt, csv, datetime, math, …
liste complète : commande help('modules')
Possibilité de créer ses propres modules
30
Module
création
Un module peut être un script contenant des variables et des
fonctions dont certaines seront utilisables par d’autres scripts
Exemple (circle.py)
31
Module
importation d’un module
L’importation permet à un script d’utiliser le code d’un module
Syntaxes d’importation
1) import nom_module
2) from nom_module import nom_membre
3) from nom_module import *
Syntaxes d’accès à un membre d’un module importé
1) nom_module.nom_membre
2) nom_membre si l’importation est faite avec 2) ou 3)
Exemple (use-circle.py)
32
Références
• https://docs.python.org/3.8/
• https://openclassrooms.com/fr/courses/235344-
apprenez-a-programmer-en-python
• https://www.pierre-giraud.com/python-apprendre-
programmer-cours/
• https://www.geeksforgeeks.org/python-
programming-language/
33

Introduction à Python

  • 1.
  • 2.
    Objectif général Acquérir lesconnaissances nécessaires à la programmation avec le langage Python 2
  • 3.
    Objectifs spécifiques • Mémoriserdes données primitives • Traiter des données • Communiquer avec l’extérieur • Contrôler le flux d’exécution des instructions • Mémoriser des données composites • Découper et réutiliser du code 3
  • 4.
    Sommaire 1) Qu’est quePython ? 2) Environnement de développement 3) Variables 4) Types primitifs 5) Opérateurs 6) Entrée et sortie de base 7) Structures de contrôle 8) Listes 9) Tuples 10) Dictionnaires 11) Fonctions 12) Modules 4
  • 5.
    Qu’est ce quePython Langage de programmation interprété, multi-paradigme (fonctionnel et orienté objet) et multiplateforme (Windows, Linux, macOS, Android et iOS) Offre des outils de haut niveau et une syntaxe simple Créé par Guido Van Russom en 1989 Dernière version 3.8 en sept 2020 Usage :  Scripts pour automatiser des tâches  Analyse de données  Calcul numérique  Développement web  Instagram, YouTube, Dropbox, … 5
  • 6.
    Environnement de dev installationde Python Selon le SE, télécharger le fichier d'installation de Python à l’URL https://www.python.org/downloads/ Installer Python sous Windows exécuter le fichier d'installation et suivre les étapes Installer Python sous Mac OS X Ouvrir le fichier .dmg, faire un double-clic sur le paquet d'installation Python.mpkg et suivre les étapes Installer Python sous Linux 1) Décompresser l'archive : tar -xzf archive 2) Se mettre dans le dossier créé 3) Exécuter le script configure : ./configure 4) Compiler make puis make install en tant que super-utilisateur. 6
  • 7.
    Environnement de dev éditionet exécution d’un script Python Pour éditer un script python • Créer le dossier « exemples-python » : lieu de stockage de tous les exemples du cours • À l’aide d’un éditeur de texte, créer un nouveau fichier « nomScript.py » dans « exemples-python » Pour exécuter un script python • Lancer l’invite de commande (Windows) ou le terminal (Mac ou Linux) • Se placer dans « exemples-python » • Lancer la commande python nomScript.py (sous Windows) python3 nomScript.py (sous Mac OS/Linux) 7
  • 8.
    Environnement de dev interpréteurde Python L’interpréteur convertit les instructions Python en un langage compréhensible par l’ordinateur Il peut être utilisé pour exécuter une instruction Pour ouvrir l’interpréteur • Lancer l’invite de commande ou le terminal • taper python ou python3 Résultat : triple chevrons 8
  • 9.
    Variable Variable : emplacementmémoire pour le stockage d’une donnée En python, pas de déclaration de variable : une variable est créée lors de son initialisation Exemples age = 26 prenom, taille = "Ali", 1.85 juste = correct = True Python est un langage dont le typage est dynamique : la même variable peut avoir différents types au cours de son existence Quelques fonctions natives • del • type 9 v a l e u r identificateur
  • 10.
    Types primitifs Type :permet de savoir comment stocker et traiter une donnée int : entier signé float : nombre à virgule flottante Ex : 2.5e2 = 2.5 x 102 = 250 str : chaîne de caractères Ex : 'Bonjour’ = "Bonjour" 'J'aime le Python!' "Chaînensurnplusieursnlignes" """Autre chaîne sur plusieurs lignes""" bool : booléen (True ou False) Valeurs fausses : False, None, 0, 0.0, '' Qlq fonctions de conversion int(), float(), … 10
  • 11.
    Opérateurs Arithmétiques + , -, * , ** (exposant), / , // (division entière), % + et * opèrent sur des str et sur des listes assignation = (affectation), += (ajouter à), *=, /=, -=, %= logiques and (et), or (ou), not (non) comparaison == , != , < , <= , > , >= 11
  • 12.
    Entrée et sortiede base Un programme peut avoir des interactions avec l'utilisateur. input() invite un utilisateur à saisir une donnée pour la retourner sous la forme d’une chaîne de caractères. Syntaxe : input([prompt]) print() permet d’afficher des données Syntaxe print(valeur(s), sep=' ', end='n', file=sys.stdout, flush=False) exemple-io.py 12
  • 13.
    Structures de contrôle présentation Pardéfaut, les instructions d’un programme sont exécutées d’une manière séquentielle. Exemple : Parfois, il est nécessaire qu’un traitement (une ou +sieurs instructions) ne soit pas systématiquement exécuté ou soit exécuté plusieurs fois : d’où l’intérêt des structures de contrôle. Deux grands types de structures de contrôle : • structures conditionnelles ou tests ; • structures répétitives (ou itératives) ou boucles. 13
  • 14.
    Structures de contrôle conditionnelles- Syntaxe Opérateur ternaire [on_true] if [condition] else [on_false] 14 if condition_1 : traitement_1 elif condition_2 : traitement_2 … # suite de elif [else : traitement_n] • exemple-if.py if condition : traitement_1 [else : traitement_2 ]
  • 15.
    Structures de contrôle répétitives- Syntaxe while condition : traitement for element in objet_iterable : traitement 15
  • 16.
    Structures de contrôle exemple-while.py– exemple-for.py 16 x • exemple-while.py • exemple-for.py
  • 17.
    Listes présentation Liste • permet deregrouper des données connexes • Les données sont modifiables et repérées par des indices (0, 1, …, -2, -1) Syntaxes de définition • nom_liste = [ ] ou nom_liste = [ elt1, elt2, … ] • nom_liste = list() ou nom_liste = list((elt1, elt2, …)) • Ex : ma_liste = list(('p','y')) et ta_liste = ['t','h','o','n',3] Accès à un élément • nomListe[indice] • Ex : ma_liste[1] contient "y" et ta_liste[-1] contient 3 Parcourir une liste for element in nom_liste : Vérifier la présence (ou non) d’un élément dans une liste if element [not] in nom_liste : 17
  • 18.
    Listes quelques opérations len(nom_liste) retournele nombre d’éléments min(nom_liste)/max(nom_liste) retourne le minimum (ou maximum) d’une liste .append(element) ajoute l’élément spécifié à la fin .insert(indice,element) ajoute un élément à l’indice spécifié .remove(element) supprime la 1ère occurrence de l’élément spécifié .pop([indice]) supprime le dernier élt ou l’élt à l’indice spécifié .clear() vide entièrement une liste .index(element) retourne l’indice de la 1ère occur. de l’élt spécifié .count(element) retourne le nbr d’occurrences de l’élément spécifié .sort() trie une liste dans l’ordre croissant .reverse() inverse l’ordre des éléments d’une liste 18
  • 19.
    Tuples présentation Tuple • permet deregrouper des données connexes • Les données sont non-modifiables et repérées par des indices (0, 1, …, -2, -1) Syntaxes de définition • nom_tuple = () ou nom_tuple = ( elt1, elt2, … ) • nom_tuple = tuple() ou nom_tuple = tuple((elt1, elt2, …)) • Ex : mon_tuple = tuple(('p','y')) ton_tuple = ('t','h','o','n',3) Accès à un élément (comme pour une liste) Parcourir un tuple (comme pour une liste) Vérifier la présence d’un élément (comme pour une liste) 19
  • 20.
    Tuples quelques opérations len(nom_tuple) retournele nombre d’éléments del supprime complètement un tuple .count(element) retourne le nbr d’occurrences de l’élément spécifié .index(element) retourne l’indice de la 1ère occurrence de l’élément spécifié 20
  • 21.
    Dictionnaires présentation Dictionnaire • permet deregrouper des données connexes • Les données sont modifiables et repérées par des clés Syntaxes de définition • nom_dico = {} ou nom_dico = {'clé1':val1, 'clé2':val2, … } • nom_dico = dict() ou nom_dico = dict(clé1=val1, clé2=val2, …) • Ex : pers1 = dict(nom='Yero Sow', age=25, taille=1.83) pers2 = {'nom':'Ngor Diouf', 'age':23, 'taille':1.85} Accès à un élément • nom_dico['clé'] • Ex : pers1['age'] contient 25 Ajouter un élément nom_dico['new_clé'] = new_value Parcourir un dictionnaire donne accès aux clés for nom_clé in nom_dico Utiliser l’interpréteur pour tester 21
  • 22.
    Dictionnaires quelques opérations len(nom_dico) retournele nombre d’éléments .pop(clé) supprime la valeur de la clé spécifiée .popitem() supprime la dernier élément .clear() vide entièrement un dictionnaire .get(clé) retourne la valeur de la clé spécifiée .update({'clé_A' : val_A, 'clé_B' : val_B,…} ) modifie ou ajoute un ou +sieurs éléments .values() retourne la liste contenant les valeurs for val in nom_dico.values() pour parcourir les valeurs .items() retourne la liste des éléments sous la forme de tuples (clé,valeur) for key, val in nom_dico.items() pour parcourir clés et valeurs 22
  • 23.
    Fonctions présentation Fonction = ensembled’instructions portant un nom Utilité : • implémenter la décomposition d’un problème en sous-problèmes • faciliter la lisibilité, le débogage et la réutilisabilité/factorisation Une fonction est définie avec un nom, un corps et d’éventuels arguments (ou paramètres formel) lui permettant de communiquer Une fonction n’est exécutée que lorsqu’elle est appelée Lors de l’appel, tout paramètre formel est associé à une variable ou une constante nommée « paramètre effectif » du code appelant Tout passage de paramètre se fait par référence : tout changement du paramètre formel se reflète sur le paramètre effectif Après son exécution une fonction peut retourner explicitement une valeur 23
  • 24.
    Fonctions syntaxe Syntaxe de ladéfinition d’une fonction def nom_fonction([param_1 [, param_2, …] ] ) : séquence d'instructions [return expression] L'appel d'une fonction qui : • ne retourne pas de valeur constitue une instruction en lui- même ; • retourne une valeur est remplacé à l'exécution par cette valeur retournée ; cet appel doit forcément se trouver dans un calcul, une affectation, un affichage, un test, etc. 24
  • 25.
  • 26.
  • 27.
    Fonction lambda Une fonction lambdapermet d'avoir une syntaxe plus courte  Elle prend un nombre quelconque d’arguments et retourne la valeur d’une expression unique Syntaxe • lambda [arg1 [,arg2,.....argn]] : expression • Pas de parenthèses, ni de return 27
  • 28.
  • 29.
  • 30.
    Module présentation Un module estun ensemble de codes encapsulés dans un script et qui peut être utilisé par d’autres scripts. Intérêts : faciliter la réutilisation, la lisibilité, le débogage, le travail d’équipe, … Exemples de modules natifs crypt, csv, datetime, math, … liste complète : commande help('modules') Possibilité de créer ses propres modules 30
  • 31.
    Module création Un module peutêtre un script contenant des variables et des fonctions dont certaines seront utilisables par d’autres scripts Exemple (circle.py) 31
  • 32.
    Module importation d’un module L’importationpermet à un script d’utiliser le code d’un module Syntaxes d’importation 1) import nom_module 2) from nom_module import nom_membre 3) from nom_module import * Syntaxes d’accès à un membre d’un module importé 1) nom_module.nom_membre 2) nom_membre si l’importation est faite avec 2) ou 3) Exemple (use-circle.py) 32
  • 33.
    Références • https://docs.python.org/3.8/ • https://openclassrooms.com/fr/courses/235344- apprenez-a-programmer-en-python •https://www.pierre-giraud.com/python-apprendre- programmer-cours/ • https://www.geeksforgeeks.org/python- programming-language/ 33

Notes de l'éditeur

  • #10 http://pigne.org/teaching/FullStackJS/
  • #11 https://www.tutorialspoint.com/python3/python_numbers.htm
  • #15 PHP M. DIENG
  • #16 PHP M. DIENG
  • #17 PHP M. DIENG
  • #18 Utiliser l’interpréteur pour tester
  • #19 Utiliser l’interpréteur pour tester
  • #29 https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Fonctions/Fonctions_fl%C3%A9ch%C3%A9es