Introduction au langage python
Idriss TAZIGH
CPGE IBN GHAZI - MARRAKECH
MPSI-PCSI
i.tazigh@gmail.com
09/2022
Idriss TAZIGH MPSI-PCSI 09/2022 1 / 58
Introduction au langage python
Idriss TAZIGH MPSI-PCSI 09/2022 2 / 58
Plan
1 Introduction au langage python
Introduction
Identicateurs et mots clés
Variables
Idriss TAZIGH MPSI-PCSI 09/2022 3 / 58
Ordinateurs
Dénition
Un ordinateur est l'équipement électronique utilisé pour faire le traitement
automatique de l'information.
L'ordinateur comprend entre autres :
un microprocesseur avec une UC (Unité de Contrôle), une UAL (Unité
Arithmétique et Logique), une horloge, une mémoire cache rapide ;
de la mémoire volatile (dite vive ou RAM), contenant les instructions
et les données nécessaires à l'exécution des programmes. La RAM est
formée de cellules binaires (bits) organisées en mots de 8 bits (octets) ;
des périphériques : entrées/sorties, mémoires permanentes (dites
mortes : disque dur, clé USB, CD- ROM...), réseau...
Idriss TAZIGH MPSI-PCSI 09/2022 4 / 58
Deux sortes de programmes
Le système d'exploitation : ensemble des programmes qui gèrent les
ressources matérielles et logicielles. Il propose une aide au dialogue
entre l'utilisateur et l'ordinateur : l'interface textuelle (interpréteur de
commande) ou graphique (gestionnaire de fenêtres). Il est souvent
multitâche et parfois multiutilisateur ;
les programmes applicatifs sont dédiés à des tâches particulières. Ils
sont formés d'une série de commandes contenues dans un programme
source qui est transformé pour être exécuté par l'ordi- nateur.
Idriss TAZIGH MPSI-PCSI 09/2022 5 / 58
Des langages de diérents niveaux
Chaque processeur possède un langage propre, directement
exécutable : le langage machine. Il est formé de 0 et de 1 et n'est
pas portable, c'est le seul que l'ordinateur puisse utiliser ;
le langage d'assemblage est un codage alphanumérique du langage
machine. Il est plus lisible que le langage machine, mais n'est toujours
pas portable. On le traduit en langage machine par un assembleur ;
les langages de haut niveau. Souvent normalisés, ils permettent le
portage d'une machine à l'autre. Ils sont traduits en langage machine
par un compilateur ou un interpréteur.
Idriss TAZIGH MPSI-PCSI 09/2022 6 / 58
Production des programmes
La compilation :
L'interprétation :
Idriss TAZIGH MPSI-PCSI 09/2022 7 / 58
Le Langage Python
Python est un langage de programmation (au même titre que le C, C++,
fortran, java...), développé en 1989. Ses principales caractéristiques sont les
suivantes :
open-source : son utilisation est gratuite et les chiers sources sont
disponibles et modi- ables ;
simple et très lisible ;
doté d'une bibliothèque de base très fournie ;
importante quantité de bibliothèques disponibles : pour le calcul
scientique, les statistiques, les bases de données, la visualisation . . . ;
grande portabilité : indépendant vis à vis du système d'exploitation
(linux, windows, MacOS) ;
typage dynamique : le typage (association à une variable de son type
et allocation zone mémoire en conséquence) est fait automatiquement
lors de l'exécution du programme, ce qui permet une grande exibilité
et rapidité de programmation, mais qui se paye par une
surconsommation de mémoire et une perte de performance ;
présente un support pour l'intégration d'autres langages.
Idriss TAZIGH MPSI-PCSI 09/2022 8 / 58
Technique de production de Python
Technique mixte : l'interprétation du bytecode compilé. Bon
compromis entre la facilité de développement et la rapidité
d'exécution ;
le bytecode (forme intermédiaire) est portable sur tout ordinateur
muni de la machine virtuelle Python.
Idriss TAZIGH MPSI-PCSI 09/2022 9 / 58
Les diérentes versions
Il existe deux versions de Python : 2.7 et 3.3. La version 3.3 n'est pas
une simple amélioration de la version 2.2. Attention, toutes les
librairies Python n'ont pas eectué la migration de 2.7 à 3.3.
Idriss TAZIGH MPSI-PCSI 09/2022 10 / 58
Algorithme et programme
Dénition
Algorithme : ensemble des étapes permettant d'atteindre un but en
répétant un nombre ni de fois un nombre ni d'instructions.
Donc un algorithme se termine en un temps ni.
Dénition
Programme : un programme est la traduction d'un algorithme en un
langage compilable ou interprétable par un ordinateur.
Il est souvent écrit en plusieurs parties dont une qui pilote les autres : le
programme principal.
Idriss TAZIGH MPSI-PCSI 09/2022 11 / 58
Présentation des programmes
Un programme source est destiné à l'être humain. Pour en faciliter la
lecture, il doit être judicieusement présenté et commenté.
La signication de parties non triviales (et uniquement celles-ci) doit
être expliquée par un commentaire. En Python, un commentaire
commence par le caractère # et s'étend jusqu'à la n de la ligne :
1 # ~~~~~~~~~~~~~~~~~~~~~
2 # Voici un commentaire
3 # ~~~~~~~~~~~~~~~~~~~~~
4 9 + 2 # en voici un autre
Listing 1 Exemple python
Idriss TAZIGH MPSI-PCSI 09/2022 12 / 58
Les modes d'exécution
Soit on enregistre un ensemble d'instructions Python dans un chier
grâce à un éditeur (on parle alors d'un script Python) que l'on exécute
par une commande ou par une touche du menu de l'éditeur ;
Soit on utilise l'interpréteur Python embarqué qui exécute la boucle
d'évaluation
Idriss TAZIGH MPSI-PCSI 09/2022 13 / 58
Identicateurs
Dénition
Un identicateur Python est une suite non vide de caractères, de
longueur quelconque, formée d'un caractère de début et de zéro ou
plusieurs caractères de continuation.
le caractère de début peut être n'importe quelle lettre , y compris le
caractère souligné (_) ;
un caractère de continuation est un caractère de début ou un chire.
Attention Les identicateurs sont sensibles à la casse et ne doivent pas
être un mot réservé de Python.
Idriss TAZIGH MPSI-PCSI 09/2022 14 / 58
Les mots réservés de Python
Idriss TAZIGH MPSI-PCSI 09/2022 15 / 58
Variable
Dénition
Une variable est un identicateur d'une données dont les valeurs peuvent
varier dans un ensemble donnée appelé Type (Entier, réel, caractère,
booléen...).
Chaque variable est liée à une ou plusieurs case mémoires selon son type.
En Python, la déclaration d'une variable et son initialisation se font en
même temps.
Idriss TAZIGH MPSI-PCSI 09/2022 16 / 58
Les types de variables
Dénition
Le type d'une variable correspond à la nature de celle-ci.
entiers (32 bits) : C'est l'ensemble des nombres entiers positifs ou
négatifs.
type : int
réels (64 bits) : C'est l'ensemble des nombres réels, c'est à dire les
nombres avec virgule ottante.
type : oat
exemples de valeurs : 4. 5.1 1.23e-6
complexes : C'est l'ensemble des nombres complexe. type : complex
exemples de valeurs : 3+4j
booléens type : bool : Il s'agit des variables qui ne peuvent prendre
que deux valeurs : vrai (True) ou faux (False).
exemples de valeurs : True False
Idriss TAZIGH MPSI-PCSI 09/2022 17 / 58
opérations de base
aectation et réaectation :
> i = 3 # i vaut 3
> i = i + 4 # équivalente i+=4
> a, k=True, 3.14159
> k=r=2.15
> x=complex(3,4)
Achage : Pour acher des informations à l'écran, on utilise
l'instruction print qui obéit à la syntaxe suivante :
print (Variable ou ` Message' )
> print(`Saisissez la valeur du rayon : ')
> print(`Saisissez les valeurs du prix HT : ')
> print(`La surface du cercle est :', Surf )
> print(Surf)
Idriss TAZIGH MPSI-PCSI 09/2022 18 / 58
opérations de base
Opérateurs d'arithemitiques :
- + et - Pour l'addition et soustraction
- * et / Pour la multiplication et la division réelle
- // et % Pour la division entière et le modulo (le reste de
la division entière)
Opérateurs de la puissance et valeur absolue : **, pow, abs
Opérateurs logiques : or, and, not
Opérateurs de comparaison : ==, is, !=, is not, >, >=, <, <=
Conversion
> int(3.1415) # résultat 3
> oat(3) # 3.
Idriss TAZIGH MPSI-PCSI 09/2022 19 / 58
opérations de base
L'instruction input : Pour indiquer dans un algorithme qu'une
valeur saisie par l'utilisateur, doit être lue, on utilise l'instruction input
qui obéit à la syntaxe suivante :
variable = input(Message)
> # Récupérer une chaîne de caractères
nom = input (`Saisissez votre nom :')
> # Récupérer un entier
num = int(input (` Donnez votre numéro : '))
> # Récupérer un réel
moy = oat(input (` Donnez la moyenne générale : '))
Idriss TAZIGH MPSI-PCSI 09/2022 20 / 58
Application 1
Écrire le programme python permettant le calcul de la surface d'un
cercle dont le rayon est fournie par l'utilisateur
S =π×R 2
Idriss TAZIGH MPSI-PCSI 09/2022 21 / 58
Application 2
Écrire programme qui permet de déterminer le salaire mensuel d'un
commerçant sachant que ce salaire comporte un montant xe de 4000
DHS et une commission qui représente 10% du chire d'aaire réalisé
par mois.
Idriss TAZIGH MPSI-PCSI 09/2022 22 / 58
Structures alternatives
Idriss TAZIGH MPSI-PCSI 09/2022 23 / 58
Plan
2 Structures alternatives
L'instruction "if"
Exemples
Applications
Idriss TAZIGH MPSI-PCSI 09/2022 24 / 58
L'instruction "if"
Pour exprimer le fait que des instructions vont être exécutées dans un
cas alors que d'autres instructions peuvent être exécutées dans l'autre
cas, on utilise une structure alternative.
Remarques :
- On peut avoir plusieurs fois la clause elif
- Les clauses elif et else sont facultatives
- L'espace entre les mots clés (if, elif et else) s'appelle
indentation
Idriss TAZIGH MPSI-PCSI 09/2022 25 / 58
Exemples
Exemple 1 :
1 x = int ( input ( " Saisir un entier : " ))
2 if ( x > 0) :
3 print (x , " est un nombre positif " )
exemple.py
Exemple 2 :
1 x = int ( input ( " Saisir un entier : " ))
2 if ( x > 0) :
3 print (x , " est un nombre positif " )
4 else :
5 print (x , " est negatif ou nul " )
exemple.py
Exemple 3 :
1 x = int ( input ( " Saisir un entier : " ) )
2 if x > 0 :
3 print (x , " est un nombreMPSI-PCSI
Idriss TAZIGH
positif " ) 09/2022 26 / 58
Application 1
Écrire le programme qui permet de trouver le maximum de deux
entiers quelconques.
Idriss TAZIGH MPSI-PCSI 09/2022 27 / 58
Application 2
Écrire un programme qui donne la mention selon la moyenne générale
obtenue par un élève :
Si moyenne < 10 : Insusant
Si 10 <= moyenne < 12 : Passable
Si 12 <= moyenne < 14 : Assez bien
Si 14 <= moyenne < 16 : Bien
Si moyenne >= 16 : Très bien
Idriss TAZIGH MPSI-PCSI 09/2022 28 / 58
Structures répétitives
Idriss TAZIGH MPSI-PCSI 09/2022 29 / 58
Plan
3 Structures répétitives
Introduction
L'instruction for
L'instruction while
Idriss TAZIGH MPSI-PCSI 09/2022 30 / 58
Introduction
Question : Écrire un programme permettant d'acher les multiples
de 8 compris entre 8 et 800'.
Solution classique ? ?
print (8*1) # 8
print (8*2) # 16
....
print (8*100) # 800
Idriss TAZIGH MPSI-PCSI 09/2022 31 / 58
L'instruction for
L'instruction for permet de répéter un traitement un nombre de fois
Syntaxe :
for variable in range (valeur_debut, valeur_n, pas ) :
Instructions
Idriss TAZIGH MPSI-PCSI 09/2022 32 / 58
L'instruction for : Exemple
1 nb = 8
2 for i in range (0 ,101 , 1) :
3 print ( nb * i )
Listing 2 Exemple boucle
Remarque : i ∈ [1, 101[
Idriss TAZIGH MPSI-PCSI 09/2022 33 / 58
L'instruction for : Autre syntaxe possibles
On peut ne pas mentionner le pas. Sa valeur par défaut est 1.
1 nb = 8
2 for i in range (0 ,101) :
3 print ( nb * i )
Listing 3 Exemple syntaxe
On peut également ne pas mentionner le début. Sa valeur par défaut
est 0.
1 nb = 8
2 for i in range (101) :
3 print ( nb * i )
Listing 4 Exemple syntaxe
Idriss TAZIGH MPSI-PCSI 09/2022 34 / 58
L'instruction for : Application
Écrire un programme python qui demande un entier à l'utilisateur puis
qui calcul et ache la somme des nombres compris entre 1 et cet
entier.
Idriss TAZIGH MPSI-PCSI 09/2022 35 / 58
L'instruction while
On utilise cette instruction pour exécuter des actions tant qu'une
condition est réalisée.
Syntaxe :
while Condition :
Instructions
Idriss TAZIGH MPSI-PCSI 09/2022 36 / 58
L'instruction while
Sémantique : Si condition Tant que Valeur(Condition)=Vrai le bloc
d'instructions sera exécuté.Si valeur(Condition)=Faux la boucle while
est arrêtée.
Remarques : Avec while le test est fait à PRIORI.Il se peut que l'on
ne rentre jamais dans la boucle.Parfois, on ne connaît pas à l'avance le
nombre d'itérations.
Idriss TAZIGH MPSI-PCSI 09/2022 37 / 58
L'instruction while : Exemple
1 i = 1 # Initialisation
2 nb = 8
3 while i <= 100 :
4 print ( nb * i )
5 i = i + 1 # Incr é mentation
Listing 5 Exemple while
Idriss TAZIGH MPSI-PCSI 09/2022 38 / 58
L'instruction while : Application 1
Quel résultat produira les programmes suivants ?
Programme 1 :
1 i = 2
2 y = 0
3 while (i <7) :
4 i = i +1
5 y = y+i
6 print ( 'y = ' ,y )
Listing 6 Exemple 1
Programme 2 :
1 n = 13
2 while n != 0 :
3 print ( n )
4 n = n - 2
Listing 7 Exemple 2
Idriss TAZIGH MPSI-PCSI 09/2022 39 / 58
L'instruction while : Application 2
Écrire un programme python permettant le calcul du factoriel d'un
entier N > 0 donné : N !
Idriss TAZIGH MPSI-PCSI 09/2022 40 / 58
Fonctions
Idriss TAZIGH MPSI-PCSI 09/2022 41 / 58
Plan
4 Fonctions
Dénition
Appel d'une fonction
Portées des variables
Fonction récursive
Idriss TAZIGH MPSI-PCSI 09/2022 42 / 58
Dénition
Dénition
Les fonctions sont des parties du programme, référencée par un nom, qui
permettent de centraliser un traitement et de le reproduire plusieurs fois.
1 def nomFonct (x , y ) :
2 Instructions
Listing 8 Exemple 2
Remarque : Les paramètres sont les données nécessaires à une fonction
pour qu'elle puisse faire son rôle.
Idriss TAZIGH MPSI-PCSI 09/2022 43 / 58
Exemple 1
1 def fact ( x ) :
2 f = 1
3 for i in range (1 , x +1) :
4 f = f * i
5 print ( ' le factoriel de ' ,x , ' est : ' ,f )
Listing 9 Exemple 1
Remarque : ici la fonction fact calcul le factoriel du paramètre x puis
ache le résultat.
Idriss TAZIGH MPSI-PCSI 09/2022 44 / 58
Exemple 2
1 def fact_v2 ( x ) :
2 f = 1
3 for i in range (1 , x +1) :
4 f = f * i
5 return f
Listing 10 Exemple 2
Remarque : ici la fonction fact renvoi (retourne) la valeur du factoriel
calculée.
Idriss TAZIGH MPSI-PCSI 09/2022 45 / 58
Appel d'une fonction
1 def fact ( x ) :
1 def fact_v2 ( x ) :
2 f = 1
2 f = 1
3 for i in range (1 , x +1) :
3 for i in range (1 , x +1) :
4 f = f * i
4 f = f * i
5 print ( ' le factoriel de ' ,x , '
5 return f
est : ' ,f )
6
6
7 # Appel a la fonction
7 # Appel a la fonction
8 n = int ( input ( ' donnez n : ))
8 n = int ( input ( ' donnez n : ') )
9 y = fact_v2 ( n )
9 fact ( n )
Listing 11 Exemple 1 Listing 12 Exemple 2
Idriss TAZIGH MPSI-PCSI 09/2022 46 / 58
Remarques
Si une fonction ne fournit pas de résultat, Dans ce cas, on n'utilise pas
l'instruction return et on parle plus de fonction mais de procédure.
Si une fonction n'a pas de paramètres, on peut déclarer la liste des
paramètres comme vide () .
Idriss TAZIGH MPSI-PCSI 09/2022 47 / 58
Applications
1 Écrivez la fonction puissance(x,y) qui reçoit deux entier x et y puis
renvoi la valeur de x à la puissance y. L'usage de boucle est
impératif ! !
2 Écrivez la procédure absolue(A) qui reçoit une valeur réelle A puis
ache sa valeur absolue.
Idriss TAZIGH MPSI-PCSI 09/2022 48 / 58
Variables locales
Dénition
Les variables déclarées dans une fonction sont uniquement visibles à
l'intérieur de cette fonction. On dit que ce sont des variables locales .
Exemple :
1 def puissance (x , y ) :
2 val =1
3 for i in range (1 , y +1) :
4 val = val * x
5 return val
6 print ( val ) # Instructions incorrectes
7 A = x + y # Instructions incorrectes
Listing 13 Exemple 1
Idriss TAZIGH MPSI-PCSI 09/2022 49 / 58
Variables Globales
Dénition
Les variables dénies a l'extérieur d'une fonction sont des variables
globales. Leur contenu est "visible" de l'intérieur d'une fonction.Pour
changer la valeur d'une variable global à l'intérieur d'une fonction, on
utilise l'instruction global
Exemple 1 :
1 A = 10
2 B = 20 # A et B sont des variables globales
3 def fonct () :
4 print ( ' Dans la fonction : A = ' ,A , 'B = ' ,B )
5 fonct ()
6 print ( ' En dehors de la fonction : A = ' ,A , 'B = ' ,B )
Listing 14 Exemple 1
Idriss TAZIGH MPSI-PCSI 09/2022 50 / 58
Variables Globales
Exemple 2 :
1 A = 10
2 B = 20
3 def fonct () :
4 global A
5 A =2
6 print ( ' Dans la fonction : A = ' ,A , 'B = ' ,B )
7
8 fonct ()
9 print ( ' En dehors de la fonction : A = ' ,A , 'B = ' ,B )
Listing 15 Exemple 2
Idriss TAZIGH MPSI-PCSI 09/2022 51 / 58
Application
1 Ecrire la procédure permute() qui échange les valeurs de deux
variables A et B qui sont dénis à l'extérieur d'elle.
Idriss TAZIGH MPSI-PCSI 09/2022 52 / 58
Fonction récursive
Dénition
Une fonction récursive est une fonctions qui contient un ou plusieurs appels
à elle-même
Idriss TAZIGH MPSI-PCSI 09/2022 53 / 58
Exemple : fonction récursive
1 def factoriel ( n ) :
2 if n == 0 :
3 return 1
4 else :
5 return n * factoriel (n -1)
Listing 16 Exemple 2
Idriss TAZIGH MPSI-PCSI 09/2022 54 / 58
La pile des appels récursive
Idriss TAZIGH MPSI-PCSI 09/2022 55 / 58
La pile des appels récursive
Idriss TAZIGH MPSI-PCSI 09/2022 56 / 58
La pile des appels récursive
Idriss TAZIGH MPSI-PCSI 09/2022 57 / 58
Application
1 Écrire la fonction récursive somme qui permet de calculer la somme
des nombres de 1 à n (n est le paramètre de la fonction)
Idriss TAZIGH MPSI-PCSI 09/2022 58 / 58