Introduction À Python
Introduction À Python
I. Introduction à Python
1. Présentation des outils de programmation
Pour exécuter les programmes de ce cours sur votre ordinateur, il vous faudra
disposer de Python et des bibliothèques NumPy et Matplotlib.
Vous pouvez installer sur votre ordinateur le logiciel gratuit Anaconda qui offre
une installation aisée de l’ensemble de l’environnement de développement
nécessaire à ce cours :
https://www.anaconda.com/download/
Alouani khouloud
Chapitre 0 : Rappel général
2
2. Premiers calculs
Exemple de première utilisation de IPython :
Les parties qui débutent par In et Out correspondent aux entrées et sorties
respectivement.
Testez les calculs suivants :
Exemple
Alouani khouloud
Chapitre 0 : Rappel général
3
4.L’opérateur %
L’opérateur % (appelé opérateur modulo) fournit le reste de la division entière
d’un nombre par un autre.
Exemple
5. Affectation
Alouani khouloud
Chapitre 0 : Rappel général
4
Il est possible de réaliser plusieurs affichages à la suite. Pour cela, on sépare les
éléments par des virgules.
7. La fonction range()
Si vous avez besoin de créer sur une suite d’entiers, vous pouvez utiliser la
fonction range(). Elle génère une suite arithmétique.
Le nombre de fin qui lui est passé n’est jamais dans la liste générée. Par exemple,
range(10) génère 10 valeurs, exactement les indices des éléments d’une séquence
de longueur 10. Il est possible de faire commencer l’intervalle à un autre nombre,
ou de spécifier un incrément différent (même négatif) :
De manière générale, on a :
range(valeur_initiale, borne_de_fin, pas)
Le pas peut être positif ou négatif. La valeur de la borne de fin (maximale ou
minimale) n’est jamais atteinte.
Exercice
Créer une liste contenant les entiers pairs allant de 10 à 20.
Alouani khouloud
Chapitre 0 : Rappel général
5
9. La fonction len()
La fonction len() renvoie le nombre d’éléments. Par exemple :
Par défaut, la fonction input() renvoie une chaîne de caractères. Il faut donc
utiliser la fonction int() qui permet d’obtenir un entier.
Alouani khouloud
Chapitre 0 : Rappel général
6
Les mots-clés
Les mots réservés par le langage Python ( if , for , etc.) ne peuvent pas être utilisés
comme identificateurs.
2. Tests
L’instruction if est la structure de test la plus simple. Sa syntaxe en Python fait
intervenir la notion de bloc. Nous allons d’abord étudier cette notion plus en
détail.
3. Bloc d’instructions - Indentation
Un bloc est défini par une indentation obtenue en décalant le début des
instructions vers la droite grâce à des espaces en début de ligne (habituellement
4 espaces mais ce n’est pas obligatoire). Toutes les instructions d’un même bloc
doivent être indentées exactement au même niveau (c’est-à-dire décalées à
droite d’un même nombre d’espaces).Un bloc peut contenir une ou plusieurs
instructions, et notamment des instructions composées (tests, boucles, etc.).
Instruction if
Alouani khouloud
Chapitre 0 : Rappel général
7
condition est une expression booléenne, c’est-à-dire une expression qui prend
pour valeur True (Vrai) ou False (Faux).
L”instruction A n’est exécutée que si la condition est vérifiée (c’est-à-dire si elle
prend pour valeur True).
L’instruction if est une instruction composée. Le : (deux-points) à la fin de la
ligne introduit le bloc d’instructions qui sera exécuté si la condition est vérifiée.
Exemple 1 avec condition vraie :
Alouani khouloud
Chapitre 0 : Rappel général
8
Instruction if … else
Alouani khouloud
Chapitre 0 : Rappel général
9
OPÉRATEUR SIGNIFICATION
X == Y x est égal à y
X != Y x est différent de y
X>Y x est plus grand que y
X<Y x est plus petit que y
X >= Y x est plus grand ou égal à y
X <= Y x est plus petit ou égal à y
Alouani khouloud
Chapitre 0 : Rappel général
10
5. Opérateur logique or
Alouani khouloud
Chapitre 0 : Rappel général
11
2. Boucle for
Exemple d’utilisation :
L’instruction for est une instruction composée, c’est-à-dire une instruction dont l’en-tête se
termine par deux-points :, suivie d’un bloc indenté qui constitue le corps de la boucle.
On dit que l’on réalise une itération de la boucle à chaque fois que le corps de la boucle est
exécuté.
Dans l’en-tête de la boucle, on précise après le mot-clé for le nom d’une variable (i dans
l’exemple ci-dessus) qui prendra successivement toutes les valeurs qui sont données après le
mot-clé in. On dit souvent que cette variable (ici i) est un compteur car elle sert à numéroter
les itérations de la boucle.
Il est possible d’obtenir le même résultat sans donner la liste des valeurs, mais en utilisant la
fonction range().
Alouani khouloud
Chapitre 0 : Rappel général
12
Pour parcourir les indices d’une liste, il est possible de combiner range() et len() comme ci-
dessous :
Dans l’exemple suivant, nous allons illustrer que la variable indiquée après for parcourt toutes
les valeurs de la liste donnée après in :
Alouani khouloud
Chapitre 0 : Rappel général
13
3. Boucle while
Syntaxe :
Exemple de programme :
Le mot-clé while signifie tant que en anglais. Le corps de la boucle (c’est-à-dire le bloc
d’instructions indentées) sera répété tant que la condition est vraie.
Dans l’exemple ci-dessus, x sera multiplié par 2 tant que sa valeur reste inférieure à 10.
Alouani khouloud
Chapitre 0 : Rappel général
14
Note
Il est toujours possible de remplacer une boucle for par une boucle while .
Transformation d’une boucle for en un boucle while
L’instruction break
L’instruction break permet de « casser » l’exécution d’une boucle
(while ou for). Elle fait sortir de la boucle et passer à l’instruction
suivante.
Exemple
Alouani khouloud
Chapitre 0 : Rappel général
15
Note
Dans le cas de boucles imbriquées, l’instruction break ne fait sortir que de la boucle la plus
interne.
5. L’instruction continue
L’instruction continue permet de passer prématurément au tour de boucle
suivant. Elle fait continuer sur la prochaine itération de la boucle.
Exemple
Alouani khouloud
Chapitre 0 : Rappel général
16
Alouani khouloud
Chapitre 0 : Rappel général
17
Alouani khouloud
Chapitre 0 : Rappel général
18
Énoncé :
Demande à l’utilisateur de saisir un nombre N puis calcule la somme des
nombres de 1 à N.
Énoncé :
Affiche tous les nombres pairs entre 1 et 20.
Énoncé :
Demande une phrase à l’utilisateur et compte combien de voyelles (a, e, i,
o, u, y) elle contient.
Énoncé :
Le programme choisit un nombre entre 1 et 10.
L’utilisateur doit le deviner jusqu’à trouver le bon nombre.
Alouani khouloud
Chapitre 0 : Rappel général
19
Python est un language à typage dynamique, ce qui signifie qu’il n’est pas
nécessaire de déclarer les variables avant de pouvoir leur affecter une
valeur. La valeur que l’on affecte possède un type qui dépend de la
nature des données (nombre entier, nombre à virgule, chaîne de
caractères, etc). Le type du contenu d’une variable peut donc changer si
on change sa valeur.
1. La fonction type()
Exemples :
Exemples :
Alouani khouloud
Chapitre 0 : Rappel général
20
Alouani khouloud
Chapitre 0 : Rappel général
21
Exemple :
Exemples :
Alouani khouloud
Chapitre 0 : Rappel général
22
V. Tuples en Python(séance 4)
Alouani khouloud
Chapitre 0 : Rappel général
23
A partir des types de base (int, float, etc.), il est possible d’en élaborer de
nouveaux. On les appelle des types construits.
Les tuples ressemblent aux listes, mais on ne peut pas les modifier une
fois qu’ils ont été créés.
Parfois, les tuples ne sont pas entourés de parenthèses, même s’il s’agit
quand même de tuples.
Cette syntaxe avec plusieurs variables à gauche du signe = peut aussi être
utilisée avec une variable unique à droite si celle-ci contient un tuple.
Alouani khouloud
Chapitre 0 : Rappel général
24
Il est très facile de créer une fonction qui renvoie un tuple. Il suffit
d’indiquer ce tuple après return .
Note
Après return, il aurait été possible d’utiliser une notation avec des
parenthèses pour le tuple, par exemple return (3, 4).
Comme une liste, il est possible de parcourir un tuple avec une boucle for.
Alouani khouloud
Chapitre 0 : Rappel général
25
Pour créer un tuple contenant un seul élément, il faut donc utiliser une
syntaxe spécifique qui contient une virgule.
Première approche
Deuxième approche
Alouani khouloud
Chapitre 0 : Rappel général
26
Alouani khouloud
Chapitre 0 : Rappel général
27
Contrairement aux listes qui sont délimitées par des crochets, on utilise
des accolades pour les dictionnaires.
clé: valeur
mon_dictionnaire["voiture"]
'véhicule à quatre roues'
type(mon_dictionnaire)
dict
Alouani khouloud
Chapitre 0 : Rappel général
28
type(nombre_de_roues)
dict
nombre_de_roues["vélo"]
2
Autre exemple pour une boucle for avec deux indices : cle et
valeur
Alouani khouloud
Chapitre 0 : Rappel général
29
Alouani khouloud
Chapitre 0 : Rappel général
30
Lorsqu’une tâche doit être réalisée plusieurs fois par un programme avec
seulement des paramètres différents, on peut l’isoler au sein d’une
fonction. Cette approche est également intéressante si la personne qui
définit la fonction est différente de celle qui l’utilise. Par exemple, nous
avons déjà utilisé la fonction print() qui avait été définie par quelqu’un
d’autre.
Vous pouvez choisir n’importe quel nom pour la fonction que vous créez, à
l’exception des mots-clés réservés du langage, et à la condition de n’utiliser
aucun caractère spécial ou accentué (le caractère souligné « _ » est permis).
Comme c’est le cas pour les noms de variables, on utilise par convention des
minuscules, notamment au début du nom (les noms commençant par une
majuscule seront réservés aux classes).
Corps de la fonction
Comme les instructions if, for et while, l’instruction def est une instruction
composée. La ligne contenant cette instruction se termine obligatoirement par un
deux-points :, qui introduisent un bloc d’instructions qui est précisé grâce à
l’indentation. Ce bloc d’instructions constitue le corps de la fonction.
Alouani khouloud
Chapitre 0 : Rappel général
31
En entrant ces quelques lignes, nous avons défini une fonction très simple qui
compte jusqu’à 2. Notez bien les parenthèses, les deux-points, et
l’indentation du bloc d’instructions qui suit la ligne d’en-tête (c’est ce bloc
d’instructions qui constitue le corps de la fonction proprement dite).
Après la définition de la fonction, on trouve le programme principal qui
débute par l’instruction print("bonjour"). Il y a ensuite au sein du programme
principal, l’appel de la fonction grâce à compteur3().
Il est également possible de sauvegarder ce programme en tant que script au
sein d’IDLE. Après avoir exécuté ce script, pour utiliser à nouveau la
fonction que nous venons de définir, il suffit de l’appeler par son nom au
niveau du shell. Ainsi :
Alouani khouloud
Chapitre 0 : Rappel général
32
Une première fonction peut donc appeler une deuxième fonction, qui elle-
même en appelle une troisième, etc.
Créer une nouvelle fonction offre l’opportunité de donner un nom à tout un
ensemble d’instructions. De cette manière, on peut simplifier le corps
principal d’un programme, en dissimulant un algorithme secondaire
complexe sous une commande unique, à laquelle on peut donner un nom
explicite.
Une fonction est donc en quelque sorte une nouvelle instruction
personnalisée, qu’il est possible d’ajouter librement à notre langage de
programmation.
Alouani khouloud
Chapitre 0 : Rappel général
33
Exemple
Alouani khouloud
Chapitre 0 : Rappel général
34
Avertissement
Le nom d’une variable que nous passons comme argument n’a rien
à voir avec le nom du paramètre correspondant dans la fonction.
Ces noms peuvent être identiques si vous le voulez, mais vous
devez bien comprendre qu’ils ne désignent pas la même chose (en
dépit du fait qu’ils puissent contenir une valeur identique).
Alouani khouloud
Chapitre 0 : Rappel général
35
Note
Les contenus des variables locales sont stockés dans l’espace de noms
local qui est inaccessible depuis l’extérieur de la fonction.
Exemple
Alouani khouloud
Chapitre 0 : Rappel général
36
Alouani khouloud
Chapitre 0 : Rappel général
37
Alouani khouloud
Chapitre 0 : Rappel général
38
Exemple :
Alouani khouloud
Chapitre 0 : Rappel général
39
Alouani khouloud
Chapitre 0 : Rappel général
40
», en anglais. Il est encadré par des caractères « souligné » en double, pour éviter
toute confusion avec d’autres symboles). L’exécution d’un script commence
toujours avec la première instruction de cette entité __main__, où qu’elle puisse
se trouver dans le listing. Les instructions qui suivent sont alors exécutées l’une
après l’autre, dans l’ordre, jusqu’au premier appel de fonction. Un appel de
fonction est comme un détour dans le flux de l’exécution : au lieu de passer à
l’instruction suivante, l’interpréteur exécute la fonction appelée, puis revient au
programme appelant pour continuer le travail interrompu. Pour que ce
mécanisme puisse fonctionner, il faut que l’interpréteur ait pu lire la définition
de la fonction avant l’entité __main__, et celle-ci sera donc placée en général à
la fin du script.
Dans notre exemple, l’entité __main__ appelle une première fonction qui elle-
même en appelle une deuxième. Cette situation est très fréquente en
programmation. Si vous voulez comprendre correctement ce qui se passe dans
un programme, vous devez donc apprendre à lire un script, non pas de la
première à la dernière ligne, mais plutôt en suivant un cheminement analogue à
ce qui se passe lors de l’exécution de ce script. Cela signifie concrètement que
vous devrez souvent analyser un script en commençant par ses dernières lignes !
Alouani khouloud