JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
Chap1 Introduction à python
1. [INTRODUCTION A PYTHON] ESPRIMS’
Mariem ZAOUALI | Chapitre 1 : Introduction à Python 1
Chapitre 1 : Introduction à Python
• Mise en place de l’environnement du travail
• Découvrir les variables, les fonctions built-in
• Manipuler les types numériques en Python
• Programmation en Python : Structures séquentielles, conditionnelles et
itératives
Es-tu prêt pour comprendre ce qu’Harry Potter est entrain de dire ?
1. Historique et choix du langage
Python se positionne, aujourd’hui, parmi les langages les plus demandés sur le
marché tels que C, C++ et java. De plus, python incorpore les principes de la
philosophie qui stipulent que les problèmes complexes peuvent être résolus d’une
manière simple. Ses développeurs l’ont prouvé en créant un langage très rapide,
simple à apprendre et à maîtriser pour développer des solutions pour de maintes
applications.
Python est un langage de haut niveau. Cela veut dire qu’il est indépendant de
l’ordinateur sur lequel il tourne. Ce genre de langage offre des bibliothèques
(ensemble de code prédéfini), que les humains peuvent comprendre et lire. Elles
seront interprétées en langage machine pour être transmises enfin au processeur
pour l’exécution.
Dans ce tableau, nous présentons quelques exemples de bibliothèques prédéfinies
dans python.
Domaine d’application Nom de la bibliothèque (module)
2. [INTRODUCTION A PYTHON] ESPRIMS’
Mariem ZAOUALI | Chapitre 1 : Introduction à Python 2
Calcul scientifique scipy, numpy,sympy
Statistiques pandas
Réseaux networkx
Cryptographie pyOpenSSL
Machine Learning tensorflow
Traitement d’images scikit-image
Gaming PyGame
Le développement du langage python a vu le jour dans les années 80. Guido van
Rossum au pays-bas a commencé son implémentation en décembre 1989. Cette
période était témoin d’une révolution en termes de développement des ordinateurs
ce qui constitue une atmosphère propice pour la création et l’innovation. Python 1.0
a été publié en 1994, Python 2.0 en 2000 et Python 3.0 en 2008. Néanmoins, Python
3.0 n’a pas été le prolongement de la version 2.0. Par conséquent, beaucoup de
développeurs ont continué l’usage de v2.0. En revanche, le futur appartient à la
version 3.0, sujet de notre cours !
2. Mise en place de l’environnement du travail
Python est disponible sur le site officiel : www.python.org.
Durant notre formation, nous utilisons Python 3. Rendez-vous sur cette page et
téléchargez Python.
On accède à Python soit en double cliquant sur l’icône nommé IDLE du bureau, soit
en utilisant le menu démarrer, la fenêtre suivante apparaît qui n’est autre que
l’environnement de développement intégré du langage :
3. [INTRODUCTION A PYTHON] ESPRIMS’
Mariem ZAOUALI | Chapitre 1 : Introduction à Python 3
Le symbole >>> est appelé l’invite de commande ou le prompt, c’est l’endroit au
niveau du quel nous allons commencer à poser des questions à Python.
3. Les variables en Python
Qu’appelle-t-on variable ?
Une variable est un emplacement mémoire réservé par un programme pour y
stocker une valeur. L’accès à la variable peut se faire soit en lecture soit en écriture
La variable se présente ainsi dans la mémoire :
Sur un exemple :
Avant de pouvoir utiliser une variable dans une expression, il faut la déclarer. La
Majorité des langages utilisent la forme suivante : déclaration du nom et du type.
Exemple en (C) :
Dans le cas de Python, l’initialisation se fait ainsi :
Attention : L’initialisation est obligatoire à la déclaration !
Il faut suivre des règles bien spécifiques si on veut nommer nos variables en Python :
• Pas d’espace -> On les remplace par ‘_’ : une_var,
• Pas de mots clé : for, while, if …
• Ne pas commencer par un chiffre,
• Pas d’accent,
• Donner un nom explicite : pour la position x ou position et non pas tutu.
4. [INTRODUCTION A PYTHON] ESPRIMS’
Mariem ZAOUALI | Chapitre 1 : Introduction à Python 4
On attribut une valeur à une variable en utilisant l’opérateur d’affectation « = ».
L’affectation est le moins prioritaire des opérateurs !
Les variables sont utilisées sans être déclarées et leurs types dépendent de leurs
contenus. Une même variable peut changer de type sans qu’il y ait d’erreurs :
Attention : il est interdit d’utiliser une variable non initialisée (en même temps) dans
une expression :
On peut effectuer des affectations simultanées (en même temps) de plusieurs
variables :
Chaque variable possède un identifiant accessible via la commande id :
Pour tester si deux variables sont identiques (possédant le même identificateur), on
utilise la commande is :
5. [INTRODUCTION A PYTHON] ESPRIMS’
Mariem ZAOUALI | Chapitre 1 : Introduction à Python 5
Remarque :
• Un programme informatique consomme essentiellement deux ressources : du
temps de traitement des processeurs, et de l'espace de stockage des
données. En machine, l'espace peut être la mémoire vive volatile ou
la mémoire de masse persistante.
• Il existe trois stratégies d'allocation de la mémoire : (1) l'allocation statique, (2)
l'allocation dynamique sur la pile, et (3) l'allocation dynamique sur le tas.
• L'allocation statique est principalement mise en place dans les langages de
programmation compilés (C, C++, Pascal…). Les langages interprétés
(PHP, Python, Perl…) ne peuvent allouer la mémoire que sur demande, lors
de l'exécution du script.
• À chacune des stratégies correspond une région mémoire du programme,
ou segment. Ces segments sont nommés text (statique), stack (pile)
et heap (tas).
Source : wikipedia
4. Les fonctions built-in
Les fonctions built-in sont celles qui vous sont fournies par Python. Elles sont chargées
automatiquement en mémoire de l’ordinateur lorsque vous ouvrez le console IDLE et
elles sont prêtes à être utilisées.
Exemple : La valeur absolue
Exemple : La conversion de types
6. [INTRODUCTION A PYTHON] ESPRIMS’
Mariem ZAOUALI | Chapitre 1 : Introduction à Python 6
Exemple : Passage entre les bases (binaires, hexa et octale) :
Exemple : les fonctions mathématiques :
La puissance
Div et mod
Le maximum et le minimum
L’arrondi
Le nombre complexe
7. [INTRODUCTION A PYTHON] ESPRIMS’
Mariem ZAOUALI | Chapitre 1 : Introduction à Python 7
Exemple : Les code ascii et caractères
Notre premier programme !
Ecrire un programme en python permettant de permuter les valeurs de x et y.
Nous avons ainsi besoin de deux variables à savoir x et y, et une autre pour le
stockage de la valeur auxiliaire. Passons, maintenant à l’écriture de la solution. Nous
avons deux modes qu’on peut utiliser :
• Ce qu’on a fait jusqu’ici est de taper des commandes. Il suffit de la
taper suivie d’une ENTREE pour obtenir le résultat de son évaluation.
Nous pouvons commenter les commandes que nous tapons, en
utilisant le symbole « # ». Tout ce qui vient après « # » ne sera pas
évalué.
• L’autre mode est le mode script. Taper des commandes ne suffit pas
pour écrire des programmes complets sous Python, c’est pourquoi
qu’on passe au mode script. Pour créer un nouveau script, on peut soit
utiliser le raccourci CRTL+N ou Files>New File. Suite à cela, une fenêtre
contenant une page blanche s’affiche. C’est bien là où on peut éditer
notre programme. Une fois terminé, on enregistre ce script avec le
raccourci CRTL+S, on le nomme en attribuant à la fin du nom
l’extension .py (prog1.py). On tape ensuite F5 pour que IDLE le prend
en considération et l’exécute.
La résolution du problème est donné comme suit :
Maintenant, écrivez ces lignes dans un script qu’on nomme « prog1.py ». Puis, tapez
F5. Vérifiez que x,y ont changé de valeurs. On peut demander dans le script
d’afficher les valeurs de x,y avec la commande « print(var) ».
Une solution élégante que Python vous propose : x,y=y,x
5. Les types numériques en Python
Python permet de manipuler deux catégories de types :
• Les types simples : les entiers, les réels, les booléens, les nombres complexes
• Les types structurés appelés aussi conteneurs qui seront traités dans la
prochaine séance
8. [INTRODUCTION A PYTHON] ESPRIMS’
Mariem ZAOUALI | Chapitre 1 : Introduction à Python 8
Commençons tout d’abord par expliciter la différence entre une expression et une
instruction. Une expression est une suite de caractères définissant une valeur. Pour
calculer cette valeur, la machine évalue l’expression. Exemple d’une expression :
L’instruction permet de changer les valeurs dans les variables. Par exemple,
l’affectation est une instruction. En général, en python, les instructions n’ont pas de
valeur.
Les types des expressions : Le type d’une expression permet de l’interpréter. C’est la
syntaxe qui indique le typage de l’instruction.
65 est interprété comme un entier non signé
-63 est interprété comme un entier signé
A est interprété comme un caractère
True est interprété comme un booléen
Pour évaluer le type d’une expression, nous utilisons en Python type(expression).
Dans la plupart des langages de programmation, une expression est :
• Soit une constante comme 42 ;
• Soit un nom de variable
• Soit une expression entre parenthèse comme en mathématique (2-3) ;
• Soit composée de plusieurs expressions réunies par des opérateurs comme
1+(4-6)*3/2 ;
• Soit composée d’une fonction appliquée à d’autre expression comme fact(4)
Les opérateurs numériques en Python sont présentés dans le tableau suivant ;
+ Addition
- Soustraction ou inversion de signe
* Multiplication
9. [INTRODUCTION A PYTHON] ESPRIMS’
Mariem ZAOUALI | Chapitre 1 : Introduction à Python 9
/ Division décimale
// Division entière
% Modulo(reste de la division euclidienne)
** exponentiation
Attention : l’opérateur « + » peut être utilisé pour ajouter des chaînes de caractères.
Les opérateurs logiques en Python sont présentés dans le tableau suivant ;
== Egalité (test)
!= Inégalité (test)
< Inférieur à
<= Inférieur ou égal à
> Supérieur à
>= Supérieur ou égal à
not Négation (non logique)
or Disjonction (ou logique)
and Conjonction (et logique)
On distingue aussi les opérateurs avancés d’affectation tels que : +=,-=,*=,/=,%=,**=.
Il y a aussi des commandes sur les nombres complexes :
Tenant compte de ces opérateurs, voyons leur précédence :
• Les expressions entre les parenthèses intérieures sont exécutées prioritairement
puis celles entre les parenthèses extérieures.
• En l’absence de parenthèses, la priorité des opérateurs est la suivante (du plus
au moins prioritaire)
o **
o *,/,//,%
o +,-
10. [INTRODUCTION A PYTHON] ESPRIMS’
Mariem ZAOUALI | Chapitre 1 : Introduction à Python 10
o ==, !=,<,<=,>,>=
o not
o and
o or
• Entre opérateurs de priorité identique, le calcul s’exécute de gauche à droite.
Application
Réécrire ce programme. Donner les résultats qu’il affiche.
x=3
entier=(type(x)==int)
print(entier)
entier=(x==int(x))
flottant=('.'in str(x))
6. Les commandes du module math et cmath
Outre que les commandes qui se chargent automatiquement lorsque vous ouvrez
IDLE, d’autres peuvent être aussi chargées lorsque nous en aurons besoin. Python
regroupe les commandes par thème des unités spéciales appelées modules . Un
module regroupe un ensemble de variables et de fonctions prêtes à l’utilisation. Il
suffit d’importer le module avec le mot clé import et d’appeler les fonctionnalités
qu’il offre en respectant la notation suivante :
• nomModule.nomFonction
• nomModule.nomVariable
Nous, dans cette section, chargeons deux modules :
• math : contient un ensemble de fonctions mathématiques définies sur le corps
IR telles que la racine carré, les fonctions trigonométriques etc
• cmath : offre toutes les fonctions mathématiques applicables sur les nombres
complexes.
Pour éviter d’écrire le nom de module, vous pouvez faire ainsi :
11. [INTRODUCTION A PYTHON] ESPRIMS’
Mariem ZAOUALI | Chapitre 1 : Introduction à Python 11
Le contenu du module peut être affiché en utilisant la commande dir(nomModule) :
Vous pouvez aussi consulter l’aide sur ce module en tapant help(nomModule) :
(Affichage tronqué)
7. Programmation en Python : Structures séquentielles,
conditionnelles et itératives
a. Les structures séquentielles
On utilise la commande input() pour lire l’entrée de l’utilisateur. Ce dernier peut
entrer n’importe quel type, avec la commande input(), il sera interprété comme
une chaîne de caractères. On peut documenter l’opération d’entrée en ajoutant
un message entre les () de input et qui sera affiché au moment de l’exécution de
l’instruction :
La validation de la saisie est obtenue en tapant la touche ENTREE.
On peut aussi forcer la saisie d’un entier ou un réel directement en utilisant
respectivement la commande int et float qu’on a vu auparavant :
12. [INTRODUCTION A PYTHON] ESPRIMS’
Mariem ZAOUALI | Chapitre 1 : Introduction à Python 12
Pour afficher le contenu d’une variable, il suffit d’écrire son nom ; par contre, pour
ajouter encore un message qui s’affiche avec, on utilise la commande print() :
b. Les structures conditionnelles
Présentons, dans cette section, la représentation algorithmique de la structure
conditionnelle en visualisant comment se fait l’embranchement.
Prenons un exemple écrit en Python, où nous présentons un schéma simple réduit de
la structure conditionnelle :
FinSi
13. [INTRODUCTION A PYTHON] ESPRIMS’
Mariem ZAOUALI | Chapitre 1 : Introduction à Python 13
Remarquez que Python utilise la notion d’indentation (espacement) au niveau du
bloc d’instruction ce qui lui permet de distinguer quelles sont les instructions à
exécuter si la condition est vraie. Python peut gérer automatiquement l’ensemble
de ces espacements, il suffit de mettre ‘ :’ et de taper ENTREE pour que le curseur soit
placé au bon endroit.
Attention : La FinSi n’a pas d’équivalent en Python.
Maintenant, voyons comment écrire un schéma imbriqué.
On peut également, imbriquer les tests, dont voici son implémentation
algorithmique.
FinSi
FinSi
14. [INTRODUCTION A PYTHON] ESPRIMS’
Mariem ZAOUALI | Chapitre 1 : Introduction à Python 14
La traduction de cette imbrication en Python, se présente ainsi :
Ou encore, on peut structurer nos tests de sorte à éviter les imbrications :
Application
On se demande, dans cette application, de donner le maximum entre 3 valeurs
entrées par l’utilisateur. Pour ce faire, on suivra la démarche suivante pour écrire le
script qui répond à la problématique :
• Stocker les valeurs entrées par l’utilisateur dans des variables a,b et c
• Implémenter une structure conditionnelle pour trouver le max entre les 3
variables
• Afficher le résultat final
"""Détermination du maximum d'un triplet de valeurs"""
a=int(input("Entrer un nombre entier : "))
b=int(input("Entrer un nombre entier : "))
c=int(input("Entrer un nombre entier : "))
if a>=b:
if a>=c:
15. [INTRODUCTION A PYTHON] ESPRIMS’
Mariem ZAOUALI | Chapitre 1 : Introduction à Python 15
max=a
else:
max=c
else:
if b>=c:
max=b
else:
max=c
print("Le maximum parmi {}, {} et {} est {}.".format(a,b,c,max))
c. Les structures itératives : Les boucles
La boucle ou la structure itérative sert à répéter un nombre entier de fois la même
instruction.
• La boucle inconditionnelle : arrêt de la boucle après un nombre fixé
d’itérations,
• La boucle conditionnelle : arrêt de la boucle suivant le résultat d’un test.
Commençons par la boucle while :
On peut l’utiliser pour traduire « Tant que…Faire »
• On l’utilise si le nombre de fois est connu à l’avance
• Durée imprévisible du traitement
On peut l’utiliser aussi pour traduire « Répéter..Jusqu’à » :
Passons maintenant à la boucle for : Cette boucle emploie les intervalles. Python
offre un objet spécial appelé range qui représente un intervalle qui n’est autre
16. [INTRODUCTION A PYTHON] ESPRIMS’
Mariem ZAOUALI | Chapitre 1 : Introduction à Python 16
qu’une suite de valeurs discrètes (et pas réelles). La syntaxe générale de la
commande range est la suivante :
range(BI,BS,pas)
• BI= borne inférieure par défaut égale à 0
• BS=borne supérieure jamais atteinte (on s’arrête toujours en BS-1)
• pas= le pas est par défaut égale à 1 pouvant être un entier négatif ou positif.
On peut utiliser une boucle for pour itérer les éléments d’un conteneur (notion qui va
être traité pendant la séance prochaine). La forme générale de la boucle est la
suivante :
for i in conteneur : …
On peut utiliser « break », « continue » et « else » dans une boucle !
Exemple de continue : Permet de sauter une boucle et de passer à la boucle
suivante :
17. [INTRODUCTION A PYTHON] ESPRIMS’
Mariem ZAOUALI | Chapitre 1 : Introduction à Python 17
Exemple de break : Permet de quitter la boucle quand une condition est vraie :
Exemple de else : Permet d’effectuer un traitement alternatif quand une boucle se
termine !
Application
Demander à l’utilisateur de vous entrer une valeur et afficher ses diviseurs.
#Diviseurs de n
n=input(“donner n”)
for k in range(1,n+1):
if n%k==0:
print(k)