Chapitre 3
INTRODUCTION À PYTHON (2)
Table des matières
3 INTRODUCTION À PYTHON (2) 1
I QUELQUES COMPLÉMENTS HISTORIQUES SUR PYTHON . . . . . . . . . . . . . . . . . . 2
II UTILISATION DES MODULES DANS PYTHON . . . . . . . . . . . . . . . . . . . . . . . . . . 2
III INTRODUCTION AUX FONCTIONS ET À L’INDENTATION . . . . . . . . . . . . . . . . . . 4
1
Chapitre 3 - INTRODUCTION À PYTHON (2)
I QUELQUES COMPLÉMENTS HISTORIQUES SUR PYTHON
Python est le langage de programmation au programme des CPGE
scientifiques. Ce langage a été développé par le mathématicien hol-
landais Guido Von Russom (né en 1956) à la fin des années 80
et au début des années 90. Il a également travaillé quelques années
pour Google et Dropbox.
Celui-ci a nommé le langage en référence à la troupe d’humoristes
britanniques des Monthy Python. Au sein de la communauté
pythonienne, il est considéré comme un Benevolent Dictator for
Life (« dictateur bienveillant à vie »).
Python est un langage de haut niveau, c’est-à-dire un langage de
programmation orienté vers les problèmes à résoudre, permettant
d’écrire facilement des programmes à l’aide de mots usuels (en an-
glais) et de symboles mathématiques. A contrario, un langage de
bas niveau se rapproche du langage machine (dit binaire) et permet
de programmer à un niveau très avancé, ce qui induit des temps de
calculs réduits pour un problème donné par rapport à un langage
de haut niveau. La contrepartie dans l’utilisation d’un langage de
bas niveau est la longueur du code qui est en général bien plus
importante.
Pour travailler en Python, il suffit d’écrire de simples fichiers textes (voir section précédente) et de les inter-
préter. Cependant, on utilise souvent un environnement de développement pour faciliter la programmation. En
CPGE, on utilisera au choix Pyzo, Spyder ou Idle. Au lycée de l’Essouriau c’est Spyder qui a été choisi.
II UTILISATION DES MODULES DANS PYTHON
On va détailler ici certains modules à connaı̂tre en Python. Bien que cette connaissance ne soit pas exigible,
il ne faut pas les découvrir aux concours. En particulier, lors de l’épreuve Maths 2 de Centrale. Ils pourront
aussi être utilisés dans un TIPE afin de ne pas reprogrammer des fonctionnalités déjà implémentées de base
dans Python.
Afin d’utiliser un module dans Python il faut au préalable l’importer dans votre environnement Spyder.
Il y a plusieurs façons de faire, détaillons un exemple avec le module math :
I Importation d’une fonction particulière. from math import sin,cos,e par exemple, permet d’im-
porter spécifiquement les fonctions sin, cos et la constante e, sous ces noms là.
I Importation de toutes les fonctions. from math import * est similaire à l’importation précédente,
mais le joker * est utilisé à la place des noms explicites des fonctions.
I Importation du module. import math importe le module, les fonctions sont alors accessibles par
[Link], [Link], par exemple.
I Importation du module et alias. C’est la méthode qu’on utilisera la plupart du temps pour importer
un module. Elle est similaire à la précédente, mais on abrège le nom du module avec un alias. Pour le
module math, on pourrait écrire import math as m, les fonctions sont alors accessibles par [Link], [Link]...
La documentation Python est assez bien fournie, pour y accéder il suffit d’écrire help(nom_du_module). Ceci
fonctionne également avec les alias. Par exemple, import math as m ; help(m) fournira de l’aide sur toutes les
fonctions du module. Bien sûr, il est possible d’obtenir de l’aide sur une fonction spécifique comme [Link].
PCSI - Lycée de l’Essouriau 2 2018-2019
Chapitre 3 - INTRODUCTION À PYTHON (2)
• Module math
Ce module contient les fonctions mathématiques usuelles, ainsi que les constantes e et π. Il est parfois importé
directement par l’éditeur, c’est le cas de Spyder par défaut, par exemple. Il n’y a pas grand chose à en dire.
• Module numpy
On importera ce module avec l’alias np : import numpy as np. Ce module permet la construction de tableaux,
listes, matrices et récupération de données propres aux listes (taille, nombre d’éléments...)
• Sous-module linalg
Le sous-module [Link] (importé comme import [Link] as alg). Ce sous-module permet de
faire de l’algèbre linéaire (espaces vectoriels et leurs applications) du programme de PCSI et PSI que vous
pourrez découvrir ultérieurement. Il permet déjà d’effectuer les opérations matricielles.
• Sous-module polynomial
Ce sous-module permet de travailler avec des polynômes.
• Sous-module random
Le sous-module random permet de générer des nombres aléatoires, et plus généralement de traiter de probabilités.
On l’importe ici comme import [Link] as rd.
• Module matplotlib
On utilisera principalement le sous-module pyplot, qui sert à tracer des courbes. On l’importera comme suit :
import [Link] as plt.
• Module scipy
Le module scipy est le module de calcul scientifique. Trois points au programme : résolution d’équations
numériques, intégration de fonctions et résolution d’équations différentielles.
• Sous-module optimize
On utilise le sous-module optimize de scipy : import [Link] as sco. La fonction fsolve est tout
indiquée pour résoudre une équation de la forme f (x) = 0.
• Sous-module integrate
On utilise le sous-module integrate de scipy : import [Link] as sci. La fonction que l’on va
utiliser est quad. Il suffit d’indiquer la fonction à intégrer et les bornes pour calculer la valeur de l’intégrale.
• Sous-module odeint
L’intégration d’équations différentielles se fait avec le même sous-module, et la fonction odeint (pour ordinary
differential equations integration).
• Autres modules :
copy, fractions, time, random, itertools, tkinter dont les fonctions ne seront pas nécessairement utiles en
CPGE.
Remarque : On ne vous demande pas de connaitre par cœur tous les modules existants ni toutes les
fonctions contenues dedans, néanmoins vous devez savoir faire appel à un module si nécessaire notamment les
modules math, numpy, matplotlib pour faire appel et tracer les principales fonctions mathématiques.
PCSI - Lycée de l’Essouriau 3 2018-2019
Chapitre 3 - INTRODUCTION À PYTHON (2)
III INTRODUCTION AUX FONCTIONS ET À L’INDENTATION
Les fonctions sont d’une importance capitale en informatique, et plus prosaı̈quement quasiment toutes les
question des sujets de concours demandent d’écrire ou d’examiner des fonctions.
Une fonction en informatique est une séquence d’instructions, dépendant de paramètres d’entrée (appelés
arguments), et retournant un résultat. Deux points de vue, souvent complémentaires, permettent de préciser
ce qu’est une fonction :
— c’est une séquence d’instructions qui permet de réaliser un calcul précis, utilisable plusieurs fois.
— c’est une brique de base d’un problème plus complexe. La structure générale d’une déclaration de fonction
en Python se fait avec le mot-clef def de la façon suivante :
def nom_fonction(a_1,a_2,. . .,a_k): # nom_fonction: nom de la fonction, a_1,a_2,. . .,a_k :
arguments
""" Description de l’action de la fonction """ # spécification de la fonction
instruction 1
instruction 2
....
instruction p
return resultat # retour du résultat
# ici, on est hors de la définition de la fonction.
Dans la parenthèse, on a le choix entre ne rien mettre ou mettre une variable d’entrée (qui correspond au
x des fonctions mathématiques). Puis tout ce qui appartient à la fonction sera décalé avec une tabulation.
L’intérieur de la fonction est composée d’autant d’instructions que l’on veut et se termine par return suivi de
ce que l’on souhaite retourner (qui correspond au y des fonctions mathématiques).
Voici un exemple d’une fonction simple qui calcule le carré d’un réel :
# -*- coding: latin1 -*-
"""
@author: DELEN
"""
defcarre(x):
y=x**2
return y
print(carre(3))
print(carre(4))
La première partie correspond à la création de la fonction. La deuxième partie correspond au programme.
Sachez que le programme lit les fonctions mais ne fait rien, il commence à agir selon vos ordres après avoir lu
toutes les fonctions.
Dans cet exemple, il agit à partir de la ligne 10.
Mettons nous à la place du programme. Il crée la fonction carre et la mémorise. Puis, il l’utilise quand on lui
demande. Ici, il l’utilise deux fois : la première pour le carré de 3 puis la seconde pour le carré de 4. Le résultat
du programme est donc 9 puis 16. Dans notre fonction, nous avons utilisé le mot-clé return. Il sert à retourner
et récupérer le résultat. Dans cette fonction, elle retourne la valeur de x après l’avoir transformer en carré.
Noter que lors de l’exécution de l’instruction return la fonction prend fin.
Noter également l’utilisation du mot clé print pour afficher la valeur de la fonction.
Noter enfin que toute variable interne au programme est locale, c’est à dire que ces variables sont
effacées à la fin de l’exécution de la fonction (même la valeur renvoyée si elle n’est pas stockée).
PCSI - Lycée de l’Essouriau 4 2018-2019
Chapitre 3 - INTRODUCTION À PYTHON (2)
Il est donc plus souvent usuel d’exécuter les lignes de code ci-dessous afin de garder en mémoire le résultat
renvoyé par la fonction. :
# -*- coding: latin1 -*-
"""
@author: DELEN
"""
defcarre(x):
y=x**2
return y
variable_carre=carre(3)
print(variable_carre)
variable_carre=carre(4)
print(variable_carre)
Un programme peut avoir plusieurs variables en entrée et plusieurs sorties également :
# -*- coding: latin1 -*-
"""
@author: DELEN
"""
exemple(x,y,z):
w1=x+y+z
w2=x*y+y*x+x*z
w3=x*y*z
return w1,w2,w3
Enfin, une erreur classique est de confondre print et return. return est une instruction de sortie de fonction,
print est une fonction Python, qui affiche l’argument passé en entrée à l’écran et qui ne renvoie rien. Lorsqu’on
teste une fonction dans la console (interpréteur), on ne voit pas vraiment la différence mais elle est pourtant
significative : une fonction sans return ne renvoie rien !
De même, exécuter une fonction sans demander d’afficher son résultat avec l’action print ne renvoie rien
en terme d’affichage (mais la fonction a compilé néanmoins).
PCSI - Lycée de l’Essouriau 5 2018-2019