Vous êtes sur la page 1sur 55

Présentation Python

Lycée Saint-Sernin, Toulouse

(Juin 2017)

Lycée Saint-Sernin, Toulouse Présentation Python


Introduction
L’environnement de développement intégré (EDI)
L’interpréteur de commandes (shell)
L’éditeur
Le langage Python

Première partie I

Les bases de Python

Lycée Saint-Sernin, Toulouse Présentation Python


Introduction
L’environnement de développement intégré (EDI) Objectifs
L’interpréteur de commandes (shell) Popularité de Python
L’éditeur Histoire
Le langage Python

Plan

1 Introduction
Objectifs
Popularité de Python
Histoire

2 L’environnement de développement intégré (EDI)

3 L’interpréteur de commandes (shell)

4 L’éditeur

5 Le langage Python

Lycée Saint-Sernin, Toulouse Présentation Python


Introduction
L’environnement de développement intégré (EDI) Objectifs
L’interpréteur de commandes (shell) Popularité de Python
L’éditeur Histoire
Le langage Python

Objectifs

présentation des bases utiles aux élèves


compréhension des notions/vocabulaire utile pour le prof
+ fichiers démo (6= activités pédagogiques)
fiches les bases , aide-mémoire et sitographie

Extrait du programme
« Le choix du langage se fera parmi les langages interprétés, concis,
largement répandus, et pouvant fonctionner dans une diversité
d’environnements » (. . . )
« il convient de donner aux élèves de bonnes pratiques de rigueur »

Lycée Saint-Sernin, Toulouse Présentation Python


Introduction
L’environnement de développement intégré (EDI) Objectifs
L’interpréteur de commandes (shell) Popularité de Python
L’éditeur Histoire
Le langage Python

Popularité de Python

foule d’extensions pour usages génériques ou spécifiques


importante communauté d’utilisateurs et contributeurs
langages les plus populaires : Java, C/C++/C#, Python,
PHP,...
calcul scientifique, administration système, web, prototypage
outil professionnel
code lisible et concis
langage interprété et non compilé (C, Pascal)
intégration de programmes écrits dans d’autres langages

Lycée Saint-Sernin, Toulouse Présentation Python


Introduction
L’environnement de développement intégré (EDI) Objectifs
L’interpréteur de commandes (shell) Popularité de Python
L’éditeur Histoire
Le langage Python

Histoire

Guido van Rossum (1991), Les Monty Python


Python3 (dec 2008, version actuelle 3.6)
Python2 : toujours utilisé, incompatibles
print "message" → Python 2
print("message") → Python 3

Lycée Saint-Sernin, Toulouse Présentation Python


Introduction
L’environnement de développement intégré (EDI) Les principaux EDI
L’interpréteur de commandes (shell) EduPython et Pyzo
L’éditeur Présentation Pyzo
Le langage Python

Plan

1 Introduction

2 L’environnement de développement intégré (EDI)


Les principaux EDI
EduPython et Pyzo
Présentation Pyzo

3 L’interpréteur de commandes (shell)

4 L’éditeur

5 Le langage Python

Lycée Saint-Sernin, Toulouse Présentation Python


Introduction
L’environnement de développement intégré (EDI) Les principaux EDI
L’interpréteur de commandes (shell) EduPython et Pyzo
L’éditeur Présentation Pyzo
Le langage Python

Les principaux EDI

qu’est-ce qu’un EDI (IDE en anglais) ?


+ éditeur + console + fonctionnalités avancées
nombreux choix possibles (libres/multi-plateforme)
les plus populaires :
dédiés : Idle, Spyder, Eric,...
généralistes (avec plugin Python) : Eclipse, NetBeans, Geany
non open-source, version gratuite limitée : PyCharm, WingIDE
mêmes principes, compatibilité → chacun est libre

Lycée Saint-Sernin, Toulouse Présentation Python


Introduction
L’environnement de développement intégré (EDI) Les principaux EDI
L’interpréteur de commandes (shell) EduPython et Pyzo
L’éditeur Présentation Pyzo
Le langage Python

EduPython et Pyzo
+ peuvent s’installer sans droit admin et sur clé USB

EduPython
basé sur l’EDI PyScripter + distribution Miniconda
logiciel clé en main (installation facile) ©
disponible uniquement sous Windows §

Pyzo
dédié au calcul scientifique (comme Spyder), utilisé dans l’EN
installation en 3 étapes : Pyzo + Miniconda + extensions
convivial, complet, simple et sobre ©

Compatibilité : encodage (utf-8/latin1), fin de ligne (LF/CR/CRLF)


Lycée Saint-Sernin, Toulouse Présentation Python
Introduction
L’environnement de développement intégré (EDI) Les principaux EDI
L’interpréteur de commandes (shell) EduPython et Pyzo
L’éditeur Présentation Pyzo
Le langage Python

Présentation Pyzo

installation : voir site Pyzo Quickstart (anglais) ou doc joint

francisé (Paramètres, langue)


+ nouveaux paramètres → après redémarrage
éditeur + interpréteur de commandes (console/shell)
hh (((
outils : File browser, (
Source
h(h
((h structure,
(h
hh Workspace
positionnement libre des outils, superposition avec onglets
zoom : Ctrl+/Ctrl-
dossiers favoris H (projets)
ouverture de plusieurs fichiers (onglets)

Lycée Saint-Sernin, Toulouse Présentation Python


Introduction Utilisation comme une calculatrice
L’environnement de développement intégré (EDI) Variables et affectations
L’interpréteur de commandes (shell) Listes
L’éditeur Chaînes de caractères
Le langage Python Typage et fonctionnalités

Plan

1 Introduction

2 L’environnement de développement intégré (EDI)

3 L’interpréteur de commandes (shell)


Utilisation comme une calculatrice
Variables et affectations
Listes
Chaînes de caractères
Typage et fonctionnalités

4 L’éditeur

5 Le langage Python
Lycée Saint-Sernin, Toulouse Présentation Python
Introduction Utilisation comme une calculatrice
L’environnement de développement intégré (EDI) Variables et affectations
L’interpréteur de commandes (shell) Listes
L’éditeur Chaînes de caractères
Le langage Python Typage et fonctionnalités

Utilisation comme une calculatrice

invite de commande (prompt) : >>>


opérations de base et puissance : + - * / **
priorité des opérations : 1 + 3*2**2
problème du codage des flottants : 0.1 + 0.2 - 0.3
+ attention aux tests
arithmétique, reste et quotient : % //
+ a = bq + r avec |r | < |b|, Python : sgn(r ) = sgn(b)
rappel du dernier résultat : _
arrondi et troncature : round, int
autres fonctions math basiques : max, min, abs

Lycée Saint-Sernin, Toulouse Présentation Python


Introduction Utilisation comme une calculatrice
L’environnement de développement intégré (EDI) Variables et affectations
L’interpréteur de commandes (shell) Listes
L’éditeur Chaînes de caractères
Le langage Python Typage et fonctionnalités

Variables et affectations

affectation simple : ma_variable = -5


+ observer l’espace de travail (outil Workspace)
sensible à la casse : A 6= a
plusieurs instructions sur la même ligne : a = 1 ; b = 2
affectation multiple : a = b = 0
affectation parallèle : a, b = 1.2, -4
permutation de variables : a, b, c = b, c, a
attention à l’écrasement de nom : max = 10
suppression : avec l’espace de travail ou del(max)

Lycée Saint-Sernin, Toulouse Présentation Python


Introduction Utilisation comme une calculatrice
L’environnement de développement intégré (EDI) Variables et affectations
L’interpréteur de commandes (shell) Listes
L’éditeur Chaînes de caractères
Le langage Python Typage et fonctionnalités

Listes

liste : L = [-1, 3.2, 1/3, 1e-3]


liste vide : [ ]
élément d’une liste : L[1] = 5
+ doit déjà exister, l’indice commence à 0 !
fonctions de liste : max, min, len, sum
supprimer un élément de la liste : del L[i]
ajouter un élément à la liste : L.append(2)
ajouter une liste à une liste : L.extend([-5, 1])
+ actions qui modifient la liste mais ne renvoient pas de valeur
compter le nombre de x : n = L.count(x)
attention aux affectations de liste : L1 = L
+ pointent sur le même objet
Lycée Saint-Sernin, Toulouse Présentation Python
Introduction Utilisation comme une calculatrice
L’environnement de développement intégré (EDI) Variables et affectations
L’interpréteur de commandes (shell) Listes
L’éditeur Chaînes de caractères
Le langage Python Typage et fonctionnalités

Chaînes de caractères

chaîne : texte = "bonjour" ou ’bonjour’


concaténation : texte + "␣tout␣le␣monde"
élément d’une chaîne : texte[i]
+ non modifiable, l’indice débute à 0 !
longueur : len(texte)
code ascii/unicode : ord("A") ; chr(65)

Lycée Saint-Sernin, Toulouse Présentation Python


Introduction Utilisation comme une calculatrice
L’environnement de développement intégré (EDI) Variables et affectations
L’interpréteur de commandes (shell) Listes
L’éditeur Chaînes de caractères
Le langage Python Typage et fonctionnalités

Typage et fonctionnalités du shell

types de base : int, float, list, str


+ entier, flottant (nombre à virgule flottante), liste, chaîne
typage dynamique : pas de déclaration
conversion automatique de type : 24/4 → 6.0
conversion de type : int, float, list, str
rappel de commandes : ↑ ↓
boutons : Effacer, Interrompre, Redémarrer, Terminer, Fermer
Redémarrer nettoie l’espace de travail
Interrompre si le programme ne s’arrête plus
+ le bouton sélection des shells s’anime pendant l’exécution

Lycée Saint-Sernin, Toulouse Présentation Python


Introduction
L’environnement de développement intégré (EDI)
Notion de script
L’interpréteur de commandes (shell)
Fonctionnalités
L’éditeur
Le langage Python

Plan

1 Introduction

2 L’environnement de développement intégré (EDI)

3 L’interpréteur de commandes (shell)

4 L’éditeur
Notion de script
Fonctionnalités

5 Le langage Python

Lycée Saint-Sernin, Toulouse Présentation Python


Introduction
L’environnement de développement intégré (EDI)
Notion de script
L’interpréteur de commandes (shell)
Fonctionnalités
L’éditeur
Le langage Python

Notion de script

script : programme/fichier contenant des commandes à


exécuter de manière séquentielle par un interpréteur
+ langage interprété
différents mode d’exécution (Pyzo) :
- démarrer le script : exécute la version enregistrée
- exécuter l’onglet (Ctrl+E) : version visible
- exécuter la sélection (clic droit)
- exécuter la cellule (Ctrl+Entrée)
cellule : bloc d’instructions entre 2 lignes séparées par ##
(spécifique à Pyzo)

Lycée Saint-Sernin, Toulouse Présentation Python


Introduction
L’environnement de développement intégré (EDI)
Notion de script
L’interpréteur de commandes (shell)
Fonctionnalités
L’éditeur
Le langage Python

Fonctionnalités

coloration syntaxique
auto-complétion (tabulation)
indentation automatique (tabulation ↔ retour arrière)
surlignage de toutes les occurrences du mot sélectionné
correspondance des délimiteurs
bulles d’aide
un manque : comment imprimer un script ?
+ ouvrir le script avec un éditeur de texte simple
(sous Windows : Notepad++)

Lycée Saint-Sernin, Toulouse Présentation Python


Introduction Entrées/sorties
L’environnement de développement intégré (EDI) Commentaires
L’interpréteur de commandes (shell) Structures de contrôle
L’éditeur Fonctions
Le langage Python Lisibilité et optimisation du code

Plan

1 Introduction

2 L’environnement de développement intégré (EDI)

3 L’interpréteur de commandes (shell)

4 L’éditeur

5 Le langage Python
Entrées/sorties
Commentaires
Structures de contrôle
Fonctions
Lisibilité et optimisation du code
Lycée Saint-Sernin, Toulouse Présentation Python
Introduction Entrées/sorties
L’environnement de développement intégré (EDI) Commentaires
L’interpréteur de commandes (shell) Structures de contrôle
L’éditeur Fonctions
Le langage Python Lisibilité et optimisation du code

Entrées/sorties

sorties :
print(valeur1,... , sep=’␣’, end=’\n’)

valeurs de type quelconque, sep et end optionnels


entrées :
texte = input("message")
a, b = eval(input("message"))

input renvoie une chaîne de caractères (Python3)


eval évalue la chaîne → calcul et conversion
pour une affectation simple on peut utiliser int ou float à la
place de eval si pas d’expression (par ex 1/3) dans la chaîne

Lycée Saint-Sernin, Toulouse Présentation Python


Introduction Entrées/sorties
L’environnement de développement intégré (EDI) Commentaires
L’interpréteur de commandes (shell) Structures de contrôle
L’éditeur Fonctions
Le langage Python Lisibilité et optimisation du code

Entrées/sorties

sorties :
print(valeur1,... , sep=’␣’, end=’\n’)

valeurs de type quelconque, sep et end optionnels


entrées :
texte = input("message")
a, b = eval(input("message"))

input renvoie une chaîne de caractères (Python3)


eval évalue la chaîne → calcul et conversion
pour une affectation simple on peut utiliser int ou float à la
place de eval si pas d’expression (par ex 1/3) dans la chaîne

Lycée Saint-Sernin, Toulouse Présentation Python


Introduction Entrées/sorties
L’environnement de développement intégré (EDI) Commentaires
L’interpréteur de commandes (shell) Structures de contrôle
L’éditeur Fonctions
Le langage Python Lisibilité et optimisation du code

Commentaires

en ligne : # ...
bloc : """ ... """ ou ’’’ ... ’’’
encodage (1re ou 2e ligne) + pour caractères accentués
# coding: utf-8 (par défaut pour Pyzo)
# coding: latin_1 (par défaut pour EduPython)

Lycée Saint-Sernin, Toulouse Présentation Python


Introduction Entrées/sorties
L’environnement de développement intégré (EDI) Commentaires
L’interpréteur de commandes (shell) Structures de contrôle
L’éditeur Fonctions
Le langage Python Lisibilité et optimisation du code

Structures de contrôle (structure alternative)

structure alternative :
if condition1:
instructions
elif condition2: # optionnel
# elif = contraction de else if
instructions
else: # optionnel
instructions

+ double-points + indentation, pas de end


(retour à la ligne facultatif si une seule ligne d’instructions)
tests simples : ==, !=, <, <=, >, >=, in
tests combinés : and, or, not, a < b < c
Lycée Saint-Sernin, Toulouse Présentation Python
Introduction Entrées/sorties
L’environnement de développement intégré (EDI) Commentaires
L’interpréteur de commandes (shell) Structures de contrôle
L’éditeur Fonctions
Le langage Python Lisibilité et optimisation du code

Structures de contrôle (structures itératives)


boucle while (boucle conditionnelle) :
while condition:
instructions

boucle for (boucle inconditionnelle) :


for i in liste: # ou chaîne
instructions # boucle de parcours

for i in range(5): # pour i de 0 à 4


instructions # boucle incrémentale

range(1, 5) : de 1 à 4 (range = plage)


range(m, n, p) : m inclus → n exclu, p = pas
Lycée Saint-Sernin, Toulouse Présentation Python
Introduction Entrées/sorties
L’environnement de développement intégré (EDI) Commentaires
L’interpréteur de commandes (shell) Structures de contrôle
L’éditeur Fonctions
Le langage Python Lisibilité et optimisation du code

Structures de contrôle (structures itératives)


boucle while (boucle conditionnelle) :
while condition:
instructions

boucle for (boucle inconditionnelle) :


for i in liste: # ou chaîne
instructions # boucle de parcours

for i in range(5): # pour i de 0 à 4


instructions # boucle incrémentale

range(1, 5) : de 1 à 4 (range = plage)


range(m, n, p) : m inclus → n exclu, p = pas
Lycée Saint-Sernin, Toulouse Présentation Python
Introduction Entrées/sorties
L’environnement de développement intégré (EDI) Commentaires
L’interpréteur de commandes (shell) Structures de contrôle
L’éditeur Fonctions
Le langage Python Lisibilité et optimisation du code

Structures de contrôle (structures itératives)


boucle while (boucle conditionnelle) :
while condition:
instructions

boucle for (boucle inconditionnelle) :


for i in liste: # ou chaîne
instructions # boucle de parcours

for i in range(5): # pour i de 0 à 4


instructions # boucle incrémentale

range(1, 5) : de 1 à 4 (range = plage)


range(m, n, p) : m inclus → n exclu, p = pas
Lycée Saint-Sernin, Toulouse Présentation Python
Introduction Entrées/sorties
L’environnement de développement intégré (EDI) Commentaires
L’interpréteur de commandes (shell) Structures de contrôle
L’éditeur Fonctions
Le langage Python Lisibilité et optimisation du code

Fonctions

définition de fonction :
def f(x, y): # nb quelconque de paramètres
return x**2 + y**2 # valeur renvoyée

+ exécuter pour recharger la définition si modifs


paramètres (formels) : noms utilisés dans la définition
arguments : valeurs/expressions utilisées à l’appel
fonction récursive : fonction s’appelant elle-même

Lycée Saint-Sernin, Toulouse Présentation Python


Introduction Entrées/sorties
L’environnement de développement intégré (EDI) Commentaires
L’interpréteur de commandes (shell) Structures de contrôle
L’éditeur Fonctions
Le langage Python Lisibilité et optimisation du code

Lisibilité et optimisation du code

mettre des commentaires introductifs et explicatifs


laisser des espaces (mais pas en début de ligne !)
donner des noms de variables explicites
t=c+2 ; N=[10,18,13.5]
# on préférera la version ci-dessous :
nb_tomates = nb_carottes + 2
notes = [10, 18, 13.5]

utiliser des fonctions → donner du sens aux morceaux de code


éviter les redondances de code → fonctions, boucles, listes
couper les lignes trop longues : dans (..) ou [..] (ou \ )
optimiser les boucles
Lycée Saint-Sernin, Toulouse Présentation Python
Introduction Entrées/sorties
L’environnement de développement intégré (EDI) Commentaires
L’interpréteur de commandes (shell) Structures de contrôle
L’éditeur Fonctions
Le langage Python Lisibilité et optimisation du code

Exercice
On se place dans un repère orthonormé du plan.
Écrire un programme qui demande à l’utilisateur les coordonnées
de 4 points et indique la nature du quadrilatère correspondant
(parallélogramme, rectangle, losange ou carré).

On se contentera de points à coordonnées entières pour éviter


des tests d’égalité problématiques sur les flottants.
Pour les mêmes raisons, on n’utilisera pas la racine carrée
(non encore vue).
Une solution avec prise en compte de nombres non-entiers
sera abordée dans la partie II avec les modules fractions et
decimal (voir fichier démo correspondant).

Lycée Saint-Sernin, Toulouse Présentation Python


Compléments sur le langage
Les outils de débogage
La bibliothèque standard
La bibliothèque graphique matplotlib
Thèmes mathématiques

Deuxième partie II

Compléments

Lycée Saint-Sernin, Toulouse Présentation Python


Compléments sur le langage
Les outils de débogage Fonctions
La bibliothèque standard Instructions
La bibliothèque graphique matplotlib Listes/chaînes, aide
Thèmes mathématiques

Plan

1 Compléments sur le langage


Fonctions
Instructions
Listes/chaînes, aide

2 Les outils de débogage

3 La bibliothèque standard

4 La bibliothèque graphique matplotlib

5 Thèmes mathématiques

Lycée Saint-Sernin, Toulouse Présentation Python


Compléments sur le langage
Les outils de débogage Fonctions
La bibliothèque standard Instructions
La bibliothèque graphique matplotlib Listes/chaînes, aide
Thèmes mathématiques

Fonctions

effet de bord : action de la fonction 6= valeur renvoyée


(macro/procédure/sous-routine)
méthode : fonction attachée à un objet
+ syntaxe : objet.methode()
renvoi de valeurs multiples : return a, b ou return liste
+ toute instruction qui suit return est ignorée !
fonction anonyme : lambda x: x**2 (x 7→ x 2 )
fonction définie à l’appel : def f(x): return eval(expr)
où la chaîne expr peut être définie par un input
portée des variables : locale si variable redéfinie
+ pour rendre la portée de a globale, déclarer : global a

Lycée Saint-Sernin, Toulouse Présentation Python


Compléments sur le langage
Les outils de débogage Fonctions
La bibliothèque standard Instructions
La bibliothèque graphique matplotlib Listes/chaînes, aide
Thèmes mathématiques

Fonctions

effet de bord : action de la fonction 6= valeur renvoyée


(macro/procédure/sous-routine)
méthode : fonction attachée à un objet
+ syntaxe : objet.methode()
renvoi de valeurs multiples : return a, b ou return liste
+ toute instruction qui suit return est ignorée !
fonction anonyme : lambda x: x**2 (x 7→ x 2 )
fonction définie à l’appel : def f(x): return eval(expr)
où la chaîne expr peut être définie par un input
portée des variables : locale si variable redéfinie
+ pour rendre la portée de a globale, déclarer : global a

Lycée Saint-Sernin, Toulouse Présentation Python


Compléments sur le langage
Les outils de débogage Fonctions
La bibliothèque standard Instructions
La bibliothèque graphique matplotlib Listes/chaînes, aide
Thèmes mathématiques

Fonctions

effet de bord : action de la fonction 6= valeur renvoyée


(macro/procédure/sous-routine)
méthode : fonction attachée à un objet
+ syntaxe : objet.methode()
renvoi de valeurs multiples : return a, b ou return liste
+ toute instruction qui suit return est ignorée !
fonction anonyme : lambda x: x**2 (x 7→ x 2 )
fonction définie à l’appel : def f(x): return eval(expr)
où la chaîne expr peut être définie par un input
portée des variables : locale si variable redéfinie
+ pour rendre la portée de a globale, déclarer : global a

Lycée Saint-Sernin, Toulouse Présentation Python


Compléments sur le langage
Les outils de débogage Fonctions
La bibliothèque standard Instructions
La bibliothèque graphique matplotlib Listes/chaînes, aide
Thèmes mathématiques

Instructions
affectation conditionnelle : m = a if a > b else b
affectations combinées : +=, -=, *=, ... (x += 1 → x=x+1)
test de validité : assert condition, "erreur␣si␣faux"
renvoyer le type : type(a) (test : type(a) == int)
quitter une boucle :
for i in range(n): # ou bien while ...
instructions # avant et/ou après le if
if condition:
break # quitte la structure
else: # si la boucle arrive au bout
instructions

sauter une boucle : continue (à la place de break)


Lycée Saint-Sernin, Toulouse Présentation Python
Compléments sur le langage
Les outils de débogage Fonctions
La bibliothèque standard Instructions
La bibliothèque graphique matplotlib Listes/chaînes, aide
Thèmes mathématiques

Instructions
affectation conditionnelle : m = a if a > b else b
affectations combinées : +=, -=, *=, ... (x += 1 → x=x+1)
test de validité : assert condition, "erreur␣si␣faux"
renvoyer le type : type(a) (test : type(a) == int)
quitter une boucle :
for i in range(n): # ou bien while ...
instructions # avant et/ou après le if
if condition:
break # quitte la structure
else: # si la boucle arrive au bout
instructions

sauter une boucle : continue (à la place de break)


Lycée Saint-Sernin, Toulouse Présentation Python
Compléments sur le langage
Les outils de débogage Fonctions
La bibliothèque standard Instructions
La bibliothèque graphique matplotlib Listes/chaînes, aide
Thèmes mathématiques

Listes/chaînes, aide

multiplication de liste (ou chaîne) : [0]*3 → [0, 0, 0]


tranchage (liste/chaîne) : L2 = L[i:j] (i inclus → j exclu)
listes « en compréhension » (importantes pour les graphiques)
Xlist = [k/10 for k in range(-50, 51)]
Lsup = [x for x in liste if x > 0]

méthodes : append, extend, count (déjà vues), L.sort(),


L.insert(i, x), L.reverse(), i = L.index(x), ...
+ voir auto-complétion du shell et aide interactive :
objet.methode? ou type.methode?
chaînes (méthodes nombreuses) : count, find, replace,
split, join, format, ... (voir auto-complétion et aide)

Lycée Saint-Sernin, Toulouse Présentation Python


Compléments sur le langage
Les outils de débogage Fonctions
La bibliothèque standard Instructions
La bibliothèque graphique matplotlib Listes/chaînes, aide
Thèmes mathématiques

Listes/chaînes, aide

multiplication de liste (ou chaîne) : [0]*3 → [0, 0, 0]


tranchage (liste/chaîne) : L2 = L[i:j] (i inclus → j exclu)
listes « en compréhension » (importantes pour les graphiques)
Xlist = [k/10 for k in range(-50, 51)]
Lsup = [x for x in liste if x > 0]

méthodes : append, extend, count (déjà vues), L.sort(),


L.insert(i, x), L.reverse(), i = L.index(x), ...
+ voir auto-complétion du shell et aide interactive :
objet.methode? ou type.methode?
chaînes (méthodes nombreuses) : count, find, replace,
split, join, format, ... (voir auto-complétion et aide)

Lycée Saint-Sernin, Toulouse Présentation Python


Compléments sur le langage
Les outils de débogage Fonctions
La bibliothèque standard Instructions
La bibliothèque graphique matplotlib Listes/chaînes, aide
Thèmes mathématiques

Listes/chaînes, aide

multiplication de liste (ou chaîne) : [0]*3 → [0, 0, 0]


tranchage (liste/chaîne) : L2 = L[i:j] (i inclus → j exclu)
listes « en compréhension » (importantes pour les graphiques)
Xlist = [k/10 for k in range(-50, 51)]
Lsup = [x for x in liste if x > 0]

méthodes : append, extend, count (déjà vues), L.sort(),


L.insert(i, x), L.reverse(), i = L.index(x), ...
+ voir auto-complétion du shell et aide interactive :
objet.methode? ou type.methode?
chaînes (méthodes nombreuses) : count, find, replace,
split, join, format, ... (voir auto-complétion et aide)

Lycée Saint-Sernin, Toulouse Présentation Python


Compléments sur le langage
Les outils de débogage
La bibliothèque standard
La bibliothèque graphique matplotlib
Thèmes mathématiques

Plan

1 Compléments sur le langage

2 Les outils de débogage

3 La bibliothèque standard

4 La bibliothèque graphique matplotlib

5 Thèmes mathématiques

Lycée Saint-Sernin, Toulouse Présentation Python


Compléments sur le langage
Les outils de débogage
La bibliothèque standard
La bibliothèque graphique matplotlib
Thèmes mathématiques

Les outils de débogage

erreurs de syntaxe : ’:’, indentation, )), ==, noms, eval


bien lire le message d’erreur
ajouter des print
commenter/décommenter des lignes (Édition ou clic droit)
points d’arrêt • (clic dans la marge pour poser/enlever)
observateurs (témoins, espions) → espace de travail
mode pas pas : boutons du shell (actifs après •)
prompt du débogueur → on peut taper des commandes
quitter le débogueur : bouton du shell
débogage postmortem (menu Shell) → voir la pile des appels
(spécifique à Pyzo)

Lycée Saint-Sernin, Toulouse Présentation Python


Compléments sur le langage
Les outils de débogage Vocabulaire
La bibliothèque standard Module math et importation
La bibliothèque graphique matplotlib Autres modules utiles
Thèmes mathématiques

Plan

1 Compléments sur le langage

2 Les outils de débogage

3 La bibliothèque standard
Vocabulaire
Module math et importation
Autres modules utiles

4 La bibliothèque graphique matplotlib

5 Thèmes mathématiques

Lycée Saint-Sernin, Toulouse Présentation Python


Compléments sur le langage
Les outils de débogage Vocabulaire
La bibliothèque standard Module math et importation
La bibliothèque graphique matplotlib Autres modules utiles
Thèmes mathématiques

Vocabulaire
module : fichier avec code (Python .py ou compilé)
chargement en mémoire : import fichier (sans .py)
script : module/programme destiné à être exécuté
paquet (package) : dossier de modules (avec __init__.py)
bibliothèque (library) : module/paquet générique
bibliothèque standard : modules de base
extension : paquet optionnel disponible au téléchargement
distribution : Python et dépendances
+ paquets disponibles sur un dépôt
anaconda/miniconda : distribution
conda : gestionnaire de paquets
conda install <paquets> ; conda update <paquets>
Lycée Saint-Sernin, Toulouse Présentation Python
Compléments sur le langage
Les outils de débogage Vocabulaire
La bibliothèque standard Module math et importation
La bibliothèque graphique matplotlib Autres modules utiles
Thèmes mathématiques

Module math et importation

importation « globale » : import math


+ nécessite un préfixage : math.sin(math.pi/2)
introspection (voir Workspace) :
sqrt, sin, exp, log, log10, e, pi, floor, gcd,...
supprimer l’importation : Workspace (clic-droit) ou del
importation « ciblée » : from math import sin, pi
utilisation d’alias : from math import log as ln
importation « exhaustive » : from math import *
renommage de fonction :
ln = log ; log = log10 ; del log10
aide interactive du shell : fonction? ou module.fonction?

Lycée Saint-Sernin, Toulouse Présentation Python


Compléments sur le langage
Les outils de débogage Vocabulaire
La bibliothèque standard Module math et importation
La bibliothèque graphique matplotlib Autres modules utiles
Thèmes mathématiques

Autres modules utiles

random : random(), randint(1, 6), uniform(0, 2)


time : time(), sleep(3), strftime(’format’)
fractions : from fractions import Fraction as frac
frac(’-2/3’) ou frac(-2, 3)
decimal : from decimal import Decimal as dec
dec(’0.2’) ou dec(str(eval(1/5)))
statistics : mean(L), median(L), pvariance(L),
pstdev(L) (population standard deviation)
turtle : forward(dist), left(angle), goto(x, y),
circle(r), up(), down(), pos(), speed(0-10),
color(’red’), begin_fill(), end_fill(), . . .
mainloop() → redonne la main à l’utilisateur (voir aide)

Lycée Saint-Sernin, Toulouse Présentation Python


Compléments sur le langage
Les outils de débogage Module pyplot
La bibliothèque standard Courbes
La bibliothèque graphique matplotlib Autres graphiques classiques
Thèmes mathématiques

Plan

1 Compléments sur le langage

2 Les outils de débogage

3 La bibliothèque standard

4 La bibliothèque graphique matplotlib


Module pyplot
Courbes
Autres graphiques classiques

5 Thèmes mathématiques

Lycée Saint-Sernin, Toulouse Présentation Python


Compléments sur le langage
Les outils de débogage Module pyplot
La bibliothèque standard Courbes
La bibliothèque graphique matplotlib Autres graphiques classiques
Thèmes mathématiques

Module pyplot

contient les fonctions graphiques utiles


importation globale avec alias :
import matplotlib.pyplot as plt
importation exhaustive :
from matplotlib.pyplot import *
+ évite le préfixage mais pollue l’espace de noms

Lycée Saint-Sernin, Toulouse Présentation Python


Compléments sur le langage
Les outils de débogage Module pyplot
La bibliothèque standard Courbes
La bibliothèque graphique matplotlib Autres graphiques classiques
Thèmes mathématiques

Courbes

table des x : Xlist = np.linspace(a, b, n)


ou Xlist = np.arange(a, b, pas) (ici b est exclu)
liste des y : Ylist = [f(x) for x in Xlist]
courbe : plot(Xlist, Ylist, options) → voir plot?
afficher le graphique (ne pas l’oublier) : show()
grille : grid()
titre : title("mon␣joli␣dessin")
outils du graphique : couleur, épaisseur, points, zoom, sauver
fenêtre : xlim(xmin, xmax), ylim(ymin, ymax)
ou axis([xmin, xmax, ymin, ymax]) ; axis(’equal’)
texte : text(posx, posy, "string")

Lycée Saint-Sernin, Toulouse Présentation Python


Compléments sur le langage
Les outils de débogage Module pyplot
La bibliothèque standard Courbes
La bibliothèque graphique matplotlib Autres graphiques classiques
Thèmes mathématiques

Autres graphiques classiques

nuage de points : scatter(Xlist, Ylist, options)


diagramme à barres : bar(Xlist, Ylist, options)
options : tick_label=liste, align=’center’, . . .
histogramme : hist(datalist, classes, options)
avec classes = nb de classes ou liste
boites à moustaches : boxplot(dataL1, dataL2,...)
diagramme circulaire : pie(datalist, labels=liste)

Lycée Saint-Sernin, Toulouse Présentation Python


Compléments sur le langage
Les outils de débogage Matrices
La bibliothèque standard Solveur, intégration, stats et proba
La bibliothèque graphique matplotlib Calcul formel
Thèmes mathématiques

Plan

1 Compléments sur le langage

2 Les outils de débogage

3 La bibliothèque standard

4 La bibliothèque graphique matplotlib

5 Thèmes mathématiques
Matrices
Solveur, intégration, stats et proba
Calcul formel

Lycée Saint-Sernin, Toulouse Présentation Python


Compléments sur le langage
Les outils de débogage Matrices
La bibliothèque standard Solveur, intégration, stats et proba
La bibliothèque graphique matplotlib Calcul formel
Thèmes mathématiques

Matrices

paquet numpy : import numpy as np, module linalg


définir une matrice : A = np.array([[1, 0], [-1, 2]])
matrices nulle, identité, diagonale :
O,I,D = np.zeros((2,2)), np.eye(3), np.diag([1,2,0])
produit : np.dot(A, A) ou A.dot(A) (méthode) ou A @ A
puissance : numpy.linalg.matrix_power(A, 5)
+ from numpy.linalg import matrix_power as mp
inverse : numpy.linalg.inv(A)
en fractions : from fractions import Fraction as frac
def frc(x): return str(frac(x).limit_denominator())
np.set_printoptions(formatter={’float’:frc})

Lycée Saint-Sernin, Toulouse Présentation Python


Compléments sur le langage
Les outils de débogage Matrices
La bibliothèque standard Solveur, intégration, stats et proba
La bibliothèque graphique matplotlib Calcul formel
Thèmes mathématiques

Solveur, intégration, stats et proba

paquet scipy, modules optimize, integrate, stats


f (x ) = 0 : scipy.optimize.fsolve(f, valeur_init)
+ from scipy.optimize import fsolve
intégrale : scipy.integrate.quad(f, a, b) → (I, err)
l’infini : scipy.inf
coefficient binomial : scipy.special.binom(n, p)
loi binomiale : scipy.stats.binom.pmf(k, n, p)
(probability mass function)
loi normale : scipy.stats.norm.cdf(x, mu, sigma)
(cumulative distribution funtion = fonction de répartition)
loi normale inverse : scipy.stats.norm.ppf(p, mu,sigma)
(percent point function = fonction fractile)
Lycée Saint-Sernin, Toulouse Présentation Python
Compléments sur le langage
Les outils de débogage Matrices
La bibliothèque standard Solveur, intégration, stats et proba
La bibliothèque graphique matplotlib Calcul formel
Thèmes mathématiques

Calcul formel

paquet sympy : expressions avec chaînes ou symboles


symboles formels : x, y = symbols(’x␣y’)
développer : expand("(x+y)**2") ou expand((x+y)**2)
factoriser : factor(x*y + 2*x), collect(3*x+x*y+1, x)
simplifier : simplify(cos(x)**2 + sin(x)**2)
affectation : expr = x**2 + y**2
substitution : expr.subs(x, 3)
valeur approchée : sqrt(75).evalf()
autres : solve, limit, oo, diff, integrate, Sum, ...
matrices : A = Matrix([[0, a],[-1, 0]]) ; A*A ; A**n

Lycée Saint-Sernin, Toulouse Présentation Python


Compléments sur le langage
Les outils de débogage Matrices
La bibliothèque standard Solveur, intégration, stats et proba
La bibliothèque graphique matplotlib Calcul formel
Thèmes mathématiques

Happy coding !

Lycée Saint-Sernin, Toulouse Présentation Python

Vous aimerez peut-être aussi