Python Syllabus
Python Syllabus
Introduction à la programmation:
Python
Christophe Desagre
1 Introduction à la programmation 1
1.1 Contenu du syllabus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Pourquoi Python? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 Hello, world! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.4 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.5 Premiers pas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.6 Organisation du cours . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.7 Références . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2 Entiers et réels 9
2.1 Créer une variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2 Les commentaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.3 Changer le contenu d’une variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.4 Interaction avec l’utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.5 Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.6 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3 Fonctions 23
3.1 Fonctions à plusieurs arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.2 Pourquoi utiliser des fonctions ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.3 Arguments par défaut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.4 Exercice - partie 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.5 Les fonctions - partie 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.6 Exercices - partie 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4 Listes 33
4.1 Créer une liste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.2 Les indices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.3 Longueur d’une liste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.4 Sous-ensemble d’une liste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.5 Générer des listes rapidement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.6 Tester l’appartenance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.7 Les listes à 2 dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.8 Les méthodes sur listes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
5 Instructions répétitives 45
5.1 Parcourir une liste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
5.2 Compteur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
5.3 Double boucle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
5.4 Break . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
i
5.5 Continue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
5.6 Pass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
5.7 Les compréhensions de liste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
5.8 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
6 Instructions conditionnelles 57
6.1 Instructions imbriquées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
6.2 Les booléens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
6.3 Les opérations logiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
6.4 Tests multiples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
6.5 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
7 Instructions while 67
7.1 Boucle infinie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
7.2 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
8 Chaînes de caractères 71
8.1 Les méthodes sur chaînes de caractères . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
8.2 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
9 Dictionnaires 75
9.1 Création d’un dictionnaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
9.2 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
10 Exercices supplémentaires 79
10.1 Double boucles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
10.2 while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
ii
CHAPTER
ONE
INTRODUCTION À LA PROGRAMMATION
Ce syllabus a été conçu pour des étudiants en gestion de l’entreprise / ingénieur de gestion à l’ICHEC Brussels Management
School. L’objectif de ce syllabus est de permettre à un novice en programmation de:
• Comprendre les bases de la programmation
• Appliquer ces principes au langage de programmation Python
• Convertir un algorithme en code Python
A ce titre, il se concentre d’avantage sur des aspects pratiques que sur des aspects purement techniques. La structure
du syllabus a également été pensée en fonction de ces objectifs. Ainsi, à la fin de ce syllabus, l’étudiant sera capable
de résoudre à l’aide de Python différentes études de cas dont notamment un tableau d’amortissement (comptabilité), un
tableau de remboursement d’emprunt (finance), de résoudre le problème d’un voyageur de commerce (logistique), de
réaliser une étude statistique, etc.
Définition
Un algorithme est la description des opérations nécessaires pour obtenir un résultat à partir de valeurs d’entrée, les “don-
nées”. Un programme est un algorithme écrit dans un langage spécifique (Vigouroux, 2018, p. 25).
Le syllabus comporte théorie, exemples, et exercices. A la fin de chaque chapitre, des exercices sont proposés. Un code
couleur est également utilisé. Lorsqu’il est fait référence à une variable dans le texte, le nom de cette variable apparaîtra
comme ceci: variable. Les morceaux de code seront affichés avec un arrière fond gris et les résultats correspondants seront
affichés juste en dessous, comme ceci:
a = 1
print(a)
1
Informatique de gestion - 11UIF12-C
Introduction à la programmation: Python
Python est un langage de programmation inventé par en 1991 par Guido Van Rossum. En comparaison avec d’autres
langages de programmation, la synthaxe de Python est simple à appréhender, ce qui en fait un très bon choix pour vous
initier à la programmation. Sa synthaxe est en effet très proche de l’anglais ([Link]
Il existe de nombreux autres langages informatiques. Les plus connus/utilisés sont mentionnés sur la photo ci-dessous:
• ASP : ASP ou .NET is a developer platform made up of tools, programming languages, and libraries for building
many different types of applications. [Link] extends the .NET developer platform with tools and libraries
specifically for building web apps. ([Link]
• C# / C++ : langages de programmation orienté-objet. Ce sont des langages compilés, ce qui les rend, en général
plus rapides que les langages interprétés tels que Python.
• HTML (HyperText Markup Language) : n’est pas un langage de programmation mais un langage de balisage. Il
permet de créer le contenu de site webs. Il fonctionne de pair avec CSS.
• CSS (Cascading Style Sheets) : s’occupe de la mise en page et du style des pages web.
• JavaScript est un langage de script conçu également pour les pages web.
• Php / SQL : sont des langages utilisés pour interagir avec des bases de données. Pour plus d’informations sur SQL,
RDV l’année prochaine au cours de “Base de données pour la gestion”.
• Java est également un langage de programmation orienté objet.
Pour (essayer de) vous convaincre de la simplicité, voyons comment afficher le message “Hello, World!” en C++, en Java,
et en Python.
En C++
#include <iostream>
int main()
{
cout << "Hello, World!";
return 0;
}
En Java
class HelloWorld {
public static void main(String[] args) {
[Link]("Hello, World!");
}
}
En Python
print("Hello, World!")
Ensuite, Python est un langage utilisé dans de nombreuses disciplines liées de près ou de loin à la gestion : intelligence
artificielle et machine learning, analyse de réseaux (sociaux), analyse textuelle, finance, etc.
• Intelligence artificielle
– Machine learning
– Réseaux de neurones
– Reconnaissance d’images (la technologie qui dévérouille votre téléphone)
Définition
Machine learning is programming computers to optimize a performance criterion using example data or past experience.
We have a model defined up to some parameters, and learning is the execution of a computer program to optimize the
parameters of the model using training data or past experience. The model may be predictive to make predictions in the
future, or descriptive to gain knowledge from data, or both (Alpaydin, 2020)
1.3.2 Open-source
Finalement, Python est un langage open-source, gratuit, et qui fonctionne sur les différents systèmes d’exploitation (Win-
dows, Mac, Linux).
1.4 Installation
Comme mentionné plus haut, il est coutume d’afficher le message “Hello, world!” quand on commence un langage de
programmation. Vous pouvez ensuite écrire le code suivant:
Si vous quittez IDLE, ce que vous venez d’écrire sera perdu.
Nous allons créer un fichier que nous pouvons sauvegarder et dans lequel nous écrirons nos lignes de code. Cliquez sur
File > New File. Une deuxième fenêtre apparaît. Sauvegardez le fichier sur votre ordinateur (File > Save As).
Ouvrez l’explorateur de fichiers (Windows) / Finder (Mac) et rendez-vous dans le dossier où vous venez de sauvegarder
le fichier. Vous devrez trouver un fichier dont l’extension est .py. Une extension permet à l’ordinateur de reconnaître le
type de fichier. Un fichier Word possède l’extension .docx, un fichier Excel possède l’extension .xlsx, etc.
Réécrivez la ligne de code print(“bonjour”). Ensuite, appuyez sur Run > Run Module. IDLE vous demande si vous
souhaitez enregistrer le fichier. Appuyez sur Yes. Le fichier est sauvegardé et le résultat apparaît presque immédiatement
dans la console. Pour exécuter le fichier, vous pouvez également utiliser F5.
Pour plus d’informations sur IDLE, regardez la vidéo ci-dessous !
1.4. Installation 5
Informatique de gestion - 11UIF12-C
Introduction à la programmation: Python
Il existe bien sûr d’autres éditeurs de texte (SublimText, Notepad++) et même d’environnement de développement (Inte-
grated Development Environment - IDE), tels que Visual Studio Code, PyCharm, Tony, etc.
Le cours se déroulera sur 7 séances. Voici le contenu abordé lors de chaque séance :
1.7 Références
1.7. Références 7
Informatique de gestion - 11UIF12-C
Introduction à la programmation: Python
TWO
ENTIERS ET RÉELS
Il existe de nombreux types de variables en Python. Voici une liste non-exhaustive des types de variables que nous allons
parcourir dans ce syllabus:
• Entiers
• Réels
• Booléens
• Chaînes de caractères
Nous verrons également des structures de données plus avancées, c’est-à-dire des variables qui peuvent contenir plus
d’informations.
• Listes
• Dictionnaires
Ce chapitre s’intéresse aux types de base en Python: les entiers et les réels.
Le but d’une variable est de stocker de l’information. De cette manière, nous pourrons faire référence à cette variable et
utiliser son contenu.
• Attribuer la valeur de 1 à a et l’afficher.
a = 1
print(a)
Warning: Attention, il y a une différence importante entre l’environnement interactif fourni par le Shell et
l’environnement “non-interactif” d’un fichier .py. Dans un environnement interactif, il suffit d’indiquer le nom de
la variable pour voir le contenu de cette variable s’afficher. Ce ne sera pas le cas dans un fichier .py.
a = 1
a
9
Informatique de gestion - 11UIF12-C
Introduction à la programmation: Python
To-do
Créez un script contenant le code a = 1 ainsi que print(a). Sauvez ce fichier et exécutez-le. A l’aide du Shell, faites
apparaître la valeur de a. Recommencez ensuite en supprimant l’instruction print(a) et observez les différences.
Le contenu de cette variable est stocké à un endroit précis dans la mémoire de l’ordinateur. On peut connaître cet em-
placement à l’aide de la fonction id. Les adresses mémoires sont le plus souvent indiquées sous forme hexadécimale. Pour
obtenir ce format hexadécimal, nous utilisons la fonction hex.
hex(id(a))
'0x7fdc7802e930'
Cette adresse peut être convertie en adresse binaire à l’aide de la fonction bin.
bin(id(a))
'0b11111111101110001111000000000101110100100110000'
• Attribuer la valeur de 1 à a
• Attribuer la valeur de 2 à b
• Afficher leur somme.
a = 1
b = 2
print(a + b)
a = 1
b = 2
c = a + b
print(c)
Différentes opérations sont possibles: l’addition, la soustraction, la multiplication, la division, la division entière, le reste
de la division entière (aussi appelé le modulo) et l’exposant. Voici un script avec a=7 et b=5.
a = 7
b = 5
print(a + b) # addition
print(a - b) # soustraction
print(a * b) # multiplication
print(a / b) # division
print(a // b) # division entiere
print(a % b) # modulo
print(a ** b) # exposant
12
2
35
1.4
1
2
16807
Le résultat de la division de 7 par 5 donne 1.4. C’est un nombre décimal et on utilise le point comme séparateur de
décimale (ne pas utiliser de virgule!). Un nombre décimal en Python est de type float, en comparaison avec les nombres
entiers qui sont de type int, abbréviation de integer. Le float provient du fait que les nombres décimaux sont aussi appelés
des nombres en virgule flottante. Ceci provient de la façon dont ces nombres sont stockés dans l’ordinateur.
a = 1
print(type(a))
<class 'int'>
b = 2.5
print(type(b))
<class 'float'>
Warning: Une erreur fréquente consiste à utiliser une virgule qu’un point pour séparer la partie entière de la partie
décimale. Cela ne génère cependant pas une erreur dans la mesure où Python crée un tuple. Plus d’informations sur
les tuples plus tard dans le cours.
Voyons maintenant comment afficher l’entièreté du calcul (et pas uniquement le résultat final). Nous allons donc afficher
plusieurs éléments dans la fonction print. Ces éléments doivent être séparés par une virgule. Il y a 2 possibilités :
• On fait référence à une variable et on souhaite en afficher le contenu.
• On souhaite simplement afficher du texte. Dans ce cas, le texte doit être entre guillemets ou entre apostrophes.
a = 7
b = 5
7 + 5 = 12
7 - 5 = 2
7 * 5 = 35
7 / 5 = 1.4
7 // 5 = 1
7 % 5 = 2
7 ^ 5 = 16807
𝑇 𝑉 𝐴 = 𝑇 𝑎𝑢𝑥_𝑇 𝑣𝑎 × 𝐻𝑇 𝑉 𝐴
• Affichez tva_a_payer
• Calculez le montant TVA comprise et stocker le résultat dans tvac
taux_tva = 0.21
htva = 1000000
print("Chiffre d'affaires:", htva)
tva_a_payer = taux_tva * htva
print("TVA a payer:", tva_a_payer)
tvac = htva * (1+taux_tva)
print("TVAC :", tvac)
Remarque
Lorsqu’on multiplie un integer par un float, on obtient un float.
Il est possible de convertir un float en integer à l’aide de la fonction int. La partie décimale sera perdue.
a = 1.4
print(a)
a = int(a)
print(a)
1.4
1
a = 1
print(a)
a = float(a)
print(a)
1
1.0
Pour les grands nombres, il est possible (mais pas obligatoire) d’inclure des _ comme séparateurs de milliers. Ce n’est pas
obligatoire, mais ça rend la lecture du chiffre plus facile. Ce caractère ne sera toutefois pas affiché.
taux_tva = 0.21
htva = 1_000_000
print("Chiffre d'affaires:", htva)
tva_a_payer = taux_tva * htva
print("TVA a payer:", tva_a_payer)
tvac = htva * (1+taux_tva)
print("TVAC :", tvac)
Pour contrôler le nombre décimales affichées, nous pouvons utiliser la fonction round. Cette fonction a besoin de deux
informations: (1) le chiffre à arrondir, et (2) le nombre de décimales souhaitées.
a = 1 / 3
print(a)
0.3333333333333333
Nous pouvons utiliser la fonction round pour afficher la valeur avec 2 décimales.
a = 1 / 3
print(round(a, 2))
0.33
Lorsque nous créons une variable, il y a quelques règles à respecter au niveau du nom:
• Le nom d’une variable peut contenir des lettres, des chiffres, ou le caractère _.
• Le nom d’une variable ne peut pas commencer par un chiffre. Ainsi, taux_tva_21 est un nom acceptable, alors que
21_pourcent ne l’est pas.
• Python est sensible à la casse (case sensitive), ce qui implique qu’une lettre minuscule est différente d’une lettre
majuscule. La variable a ne sera donc pas équivalente à la variable A.
• Le nom d’une variable ne peut donc pas contenir d’apostrophe, raison pour laquelle nous avons créé la variable
chiffre_affaires_htva, et pas chiffre_d’affaires_htva.
Ensuite, certains mots-clés (keywords) sont réservés; ils ne peuvent pas être utilisés comme nom de variable. Ces mots-
clés ont une signification particulière et nous aborderons certains de ces mots-clés dans ce syllabus. Pour connaître la liste
des keywords, nous pouvons écrire help(“keywords”).
help("keywords")
Here is a list of the Python keywords. Enter any keyword to get more help.
Dans le script précédent, l’opération qui est réalisée est indiquée sur la droite. Ce texte est précédé de #. C’est un
commentaire.
Les commentaires sont des morceaux de code qui ne sont pas “lus” par le programme. Ils doivent commencer par le sigle
#. Ils permettent d’expliquer le code. Ils permettent aussi d’éviter qu’un morceau de code soit exécuté. L’emploi des
commentaires est une bonne pratique à adopter lorsqu’on réalise un code.
Comme son nom l’indique, le contenu d’une variable est … variable. Une même variable peut donc contenir différentes
valeurs au fur et à mesure de l’exécution du script.
a = 5
print("a =", a)
a = 6
print("a =", a)
a = 5
a = 6
Nous pouvons également changer le contenu d’une variable à partir de son contenu actuel. Par exemple, si la variable a
contient la valeur 5, on peut ajouter une unité à cette variable pour que le contenu de cette variable devienne 6. Ceci se
fait facilement via:
a = 5
print("a =", a)
a = a + 1
print("a =", a)
a = 5
a = 6
Il est possible de faire interagir l’ordinateur et l’utilisateur. Dans l’image ci-dessous, l’ordinateur affiche le message “Please
enter your name”. L’utilisateur répond “John”. Ensuite l’ordinateur lui répond “Hello John! And welcome!”.
Pour récupérer une valeur fournie par l’utilisateur, il faut utiliser input. Le résultat sera stocké dans la variable prenom
Warning: Si vous exécutez ceci dans IDLE, la question posée à l’utilisateur apparaît dans la console. Il faut y
répondre et appuyer sur la touche return.
Par défault, la réponse fournie par l’utilisateur sera stockée sous forme de chaîne de caractères. Si la réponse à la question
doit être stockée en tant qu’entier / nombre décimal, il faut utiliser int() / float().
2.5 Modules
Python est installé avec une série de modules supplémentaires. Ces modules contiennent des fonctionnalités supplémen-
taires.
2.5.1 Math
Le module math permet d’avoir accès à des fonctions mathématiques. Dans un premier temps, nous devons importer le
module.
import math
Ce module permet notamment d’avoir accès au nombre 𝜋, au nombre d’Euler 𝑒 ou à la fonction logarithmique.
p = [Link]
print(p)
3.141592653589793
e = [Link](1)
print(e)
2.718281828459045
102 = 100
x = [Link](100, 10)
print(x)
2.0
2.5.2 Random
Le module random permet de générer des chiffres aléatoires. La première instruction est d’importer le module.
import random
Dans ce module:
• [Link] permet de générer des nombres aléatoires entiers. Lors de l’appel de la fonction, il faut indiquer
la borne inférieure et la borne supérieure. Par opposition à range, le chiffre généré sera compris entre la borne
inférieure incluse et la borne supérieure incluse également.
[Link] permet de choisir aléatoirement un élément dans une liste. Pour plus d’informations sur les listes, voir cette
section
[Link](cours)
'Fondamentaux'
2.5.3 OS
import os
• Dans quel dossier se trouve mon fichier ? (get current working directory)
[Link]()
[Link]('/Users/christophe/.../Documents/Cours/Python')
Windows
• Utiliser un double backslash \
[Link]('C:\\Users\christophe\\...\\Documents\\Cours\\Python')
2.5. Modules 17
Informatique de gestion - 11UIF12-C
Introduction à la programmation: Python
2.6 Exercices
2.6.1 Exercice 1
Hello, World!
2.6.2 Exercice 2
2.A
• Calculer et afficher le montant TVAC (tvac) sur base du montant HTVA (htva) et du taux de TVA (taux_tva).
TVAC = HTVA × (1 + taux de TVA)
Utiliser les valeurs ci-dessous:
• htva: 1000
• taux_tva: 0.21
1210.0
2.B
• Calculer et afficher le montant HTVA (htva) sur base du montant TVAC (tvac) et du taux de TVA (taux_tva).
TVAC
HTVA =
(1 + taux de TVA)
Utiliser les valeurs ci-dessous:
• tvac: 1210
• taux_tva: 0.21
1000.0
2.C
• Calculer et afficher le taux de tva (taux_tva) sur base du montant TVAC (tvac) et du montant HTVA (htva).
TVAC
taux de TVA = −1
HTVA
Utiliser les valeurs ci-dessous:
• tvac: 1210
• htva: 1000
0.20999999999999996
2.D
• Modifiez le script précédent de manière à afficher un chiffre arrondi à 2 décimales. Utilisez la fonction round dans
la fonction print.
0.21
2.E
• Calculer et afficher le montant TVAC (tvac) sur base du montant HTVA (htva), du taux de TVA (taux_tva), et d’un
taux de ristourne (taux_ristourne).
TVAC = HTVA × (1 − taux de ristourne) × (1 + taux de TVA)
Utiliser les valeurs ci-dessous:
• htva: 1000
• taux_tva: 0.21
• taux_ristourne: 0.05
Output attendu:
Le prix TVAC est egal a 1149.5
2.6.3 Exercice 3
• Calculer et afficher l’indice de masse corporelle (imc) d’une personne de 75kg mesurant 1m80. Il se calcule grâce
à:
poids
IMC = 2
taille
Utiliser les valeurs ci-dessous:
• poids: 75
• taille: 1.80
23.15
2.6. Exercices 19
Informatique de gestion - 11UIF12-C
Introduction à la programmation: Python
2.6.4 Exercice 4
𝑐 = √𝑎2 + 𝑏2
5.0
2.6.5 Exercice 5
Δ = 𝑏2 − 4𝑎𝑐
Ensuite, si le Δ est positif, ce qui est le cas dans cet exemple, les deux racines, 𝑟1 et 𝑟2 sont:
√
−𝑏 ± Δ
𝑟1 , 𝑟2 =
2𝑎
Calculer les racines du polynome 𝑓(𝑥) = 𝑥2 + 3𝑥 − 4. Donc:
• a: 1
• b: 3
• c: -4
Racine 1: -4.0
Racine 2: 1.0
2.6.6 Exercice 6
• Calculer et afficher:
– le perimetre d’un carre (carre_perimetre)
– l’aire d’un carre (carre_aire)
– le perimetre d’un rectangle (rectangle_perimetre)
– l’aire d’un rectangle (rectangle_aire)
– le perimetre d’un cercle (cercle_perimetre)
– l’aire d’un cercle (cercle_aire)
2.6.7 Exercice 7
• Convertir une vitesse de 120km/h (v_kmh) en une vitesse exprimee en m/s (v_ms).
2.6.8 Exercice 8
• Calculer et afficher le montant que vous obtiendrez dans 10 ans si vous placez 5,000€ à 6% sur un compte bancaire.
Les intérêts sont composés, donc la formule est:
𝑋𝑇 = 𝑋0 ∗ (1 + 𝑡𝑎𝑢𝑥)𝑇
Utiliser les valeurs ci-dessous:
• montant_initial: 5000
• taux: 0.06
• duree: 10
2.6. Exercices 21
Informatique de gestion - 11UIF12-C
Introduction à la programmation: Python
THREE
FONCTIONS
Définition
La programmation est l’art d’apprendre à un ordinateur comment accomplir des tâches qu’il n’était pas capable de réaliser
auparavant. L’une des méthodes les plus intéressantes pour y arriver consiste à ajouter de nouvelles instructions au langage
de programmation que vous utilisez sous la forme de fonctions originales (Swinnen, 2012).
def carre_aire(cote):
aire = cote**2
return aire
Quand la fonction carre_aire reçoit le chiffre 3, elle exécutera certaines instructions de telle sorte à renvoyer la valeur
9. Cette valeur sera stockée dans la variable aire. Il n’est pas nécessaire que le nom de la variable à côté du return soit
identique au nom de la variable dans lequel on stocke le résultat de la fonction.
23
Informatique de gestion - 11UIF12-C
Introduction à la programmation: Python
aire = carre_aire(cote=3)
print(aire)
aire = carre_aire(3)
print(aire)
Lorsque le nombre d’instructions est relativement peu élevé, comme c’est le cas ici, nous pouvons directement renvoyer
la valeur sans la stocker temporairement dans une variable.
def carre_aire(cote):
return cote**2
On peut tester à nouveau la fonction en passant la valeur 5. On peut également afficher directement le résultat renvoyé
par la fonction, sans stocker ce résultat dans une variable.
print(carre_aire(5))
25
La fonction carre_aire ne possède qu’un seul argument (un seul input). Nous allons créer une fonction qui calcule l’aire
d’un rectangle, rectangle_aire qui a besoin de 2 arguments, la longueur et la largeur du rectangle. Nous calculerons ensuite
l’aire d’un rectangle dont la longueur est 5cm et la largeur est 3cm.
24 Chapter 3. Fonctions
Informatique de gestion - 11UIF12-C
Introduction à la programmation: Python
longueur=5
largeur=3
aire = rectangle_aire(longueur, largeur)
print(aire)
15
L’avantage d’utiliser une fonction est de pouvoir réutiliser des morceaux de code. Supposons que nous avons deux listes
dont nous devons calculer la moyenne. Nous pouvons calculer les deux moyennes de la façon suivante (les différents
éléments de syntaxe seront abordés plus tard dans le cours):
a = [2, 5, 3, 8, 6]
b = [5, 2, 1, 7, 4]
4.8
3.8
Nous remarquons cependant que le code nécessaire pour calculer la moyenne est évidemment similaire et il n’est pas utile
ni efficient de procéder de la sorte. Le code suivant permet de calculer la moyenne de 2 listes à l’aide d’une fonction.
a = [2, 5, 3, 8, 6]
b = [5, 2, 1, 7, 4]
def moyenne(liste):
somme = 0
for i in range(len(liste)):
somme = somme + liste[i]
moyenne = somme / len(liste)
return moyenne
moyenne_a = moyenne(a)
moyenne_b = moyenne(b)
print(moyenne_a)
print(moyenne_b)
4.8
3.8
Nous allons créer une fonction tvac qui permet de calculer un montant TVAC sur base d’un montant HTVA (htva) et d’un
taux de tva (taux_de_tva).
Testons ensuite cette fonction si htva = 1000 et taux_de_tva = 0.21. Nous faisons appel à la fonction et stockons le résultat
dans montant_tvac. Finalement, nous affichons cette variable.
Pour rappel:
𝑇 𝑉 𝐴𝐶 = 𝐻𝑇 𝑉 𝐴 × (1 + taux de tva)
TVAC: 1210.0
Nous savons que le taux normal de TVA en Belgique est de 21%. Nous pouvons considérer que c’est une valeur par défault
pour l’argument taux_de_tva. Dans ce cas, nous indiquons cette valeur lors de la définition de la fonction.
TVAC: 1210.0
montant_tvac = tvac(htva=1000)
print("TVAC:", montant_tvac)
TVAC: 1210.0
26 Chapter 3. Fonctions
Informatique de gestion - 11UIF12-C
Introduction à la programmation: Python
TVAC: 1060.0
• Lorsque les paramètres sont indiqués, il n’est pas nécessaire de passer les arguments dans l’ordre.
TVAC: 1060.0
Créer une fonction polynome qui calcule et affiche les racines d’un polynôme de degré 2. Calculez les racines du polynôme
𝑥2 + 3𝑥 − 4
Δ = 𝑏2 − 4𝑎𝑐
1.0
-4.0
Modifier la fonction de telle sorte à ce qu’elle renvoie les valeurs (sans les afficher au sein de la fonction).
Racine 1: 1.0
Racine 2: -4.0
Avant de poursuivre plus loin dans la création de fonctions, nous avons besoin de découvrir d’autres notions:
• Les listes
• Les instructions répétitives (boucle for)
• Les instructions conditionnelles (if et while)
Ces différents points de matière sont abordés dans les prochains chapitres.
Jusqu’à présent, chaque fonction retourne une valeur. C’est le plus souvent le cas. Il est toutefois possible de créer une
fonction qui ne retourne rien. Par exemple, une fonction qui ne s’occupe que de l’affichage d’une matrice.
def print_matrix(mat):
for i in range(len(mat)):
for j in range(len(mat[i])):
print(mat[i][j], end="\t")
print("")
m = [[1,2,3],[4,5,6]]
print_matrix(m)
1 2 3
4 5 6
Dans ce cas, la fonction ne possède pas de return. Elle renverra donc None si jamais on affecte le retour de la fonction à
une variable (par erreur).
def print_matrix(mat):
for i in range(len(mat)):
for j in range(len(mat[i])):
print(mat[i][j], end="\t")
print("")
m = [[1,2,3],[4,5,6]]
display_matrix = print_matrix(m)
print(display_matrix)
1 2 3
4 5 6
None
Une fonction peut faire appel à une autre fonction. Reprenons l’exemple du calcul des racines d’un polynôme. Nous
pourrions créer dans un premier temps une fonction qui calcule le Δ. Ensuite, la fonction polynome ferait appel à cette
fonction delta.
1.0
-4.0
28 Chapter 3. Fonctions
Informatique de gestion - 11UIF12-C
Introduction à la programmation: Python
Quand une variable est définie au sein d’une fonction, elle n’existe qu’au sein de cette fonction. Il n’est donc pas possible
d’y faire référence en dehors de cette fonction.
def add_1(x):
x = x + 1
return x
a = 3
print(a)
a = add_1(a)
print(a)
print(x)
3
4
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
Input In [12], in <cell line: 9>()
7 a = add_1(a)
8 print(a)
----> 9 print(x)
Il y a une exception à cette règle. Si le mot-clé global est utilisé, ceci permet d’accéder à cette variable, sans qu’elle soit
initialisée au sein de la fonction, ni passée comme argument.
def add_1():
global a
a = a + 1
return a
a = 3
print(a)
add_1()
print(a)
3
4
Il est également possible d’accéder à la valeur d’une variable qui se trouve en dehors de la fonction.
x = 2
def add_x(a):
a = a + x
return a
y = 5
y = add_x(y)
print(y)
Une fonction récursive est une fonction qui fait appel à elle-même.
Un exemple connu de fonction récursive est la fonction factorielle.
La factorielle d’un nombre est obtenue de la façon suivante:
𝑥! = 𝑥 × (𝑥 − 1)!
et
0! = 1! = 1
x x!
0 1
1 1
2 2
3 6
4 24
5 120
def factorial(a):
if a <= 1:
return 1
else:
return a * factorial(a-1)
Nous appelons la fonction au sein d’une boucle de manière à afficher le contenu du tableau précédent.
for i in range(6):
print(i, factorial(i))
0 1
1 1
2 2
3 6
4 24
5 120
Remarque 1: Dans la définition de la fonction, nous voyons en effet que la fonction factorial fait appel à elle-même. Ceci
ne fonctionnera que si nous indiquons également un cas de base, dans ce cas, le cas de base est de renvoyer 1 si x <= 1.
Remarque 2: Une fonction récursive peut également être codée de manière non-récursive.
def factorial(x):
f = 1
for i in range(1, x+1):
(continues on next page)
30 Chapter 3. Fonctions
Informatique de gestion - 11UIF12-C
Introduction à la programmation: Python
for i in range(6):
print(i, factorial(i))
0 1
1 1
2 2
3 6
4 24
5 120
3.6.1 Exercice 1
Réaliser une fonction qui permet d’afficher les tables de multiplication et qui prend 2 arguments (a, le nombre à multiplier
et b, le nombre de fois qu’il faut le multiplier). Cette fonction ne renvoie rien.
8 * 1 = 8
8 * 2 = 16
8 * 3 = 24
8 * 4 = 32
8 * 5 = 40
3.6.2 Exercice 2
Supposez que vous avez 5 boules numérotées de 1 à 5 dans un sac et que vous devez en tirer 2 sans remise. Quel est le
nombre de possibilités différentes? Si vous connaissez votre cours de probabilité, vous savez que vous devez utiliser la
combinaison où 𝑛 représente le nombre total de boules et 𝑝 le nombre de boules tirées.
La combinaison se calcule via la formule suivante:
𝑛!
𝑝 𝐶𝑛 =
𝑝!(𝑛 − 𝑝)!
Dans l’exemple:
5! 120
2 𝐶5 = = = 10
2!(5 − 2)! 2×6
10
3.6.3 Exercice 3
𝑛!
𝑝 𝐴𝑛 =
(𝑛 − 𝑝)!
Dans l’exemple:
5! 120
2 𝐴5 = = = 20
(5 − 2)! 6
C’est logique! On a deux fois plus de possibilités que dans l’exemple précédent. Tirer d’abord la boule n°1 et ensuite la
n°2 et inversément compte pour 2 possibilités différentes!
20
3.6.4 Exercice 4
Le triangle de Pascal est un tableau qui calcule la combinaison entre 𝑛, le numéro de la ligne, et 𝑝, le numéro de la colonne.
Bien sûr, 𝑛 ≥ 𝑝.
Si on génère ce tableau, on constate que chaque chiffre correspond à la somme de son voisin supérieur et de son voisin
supérieur gauche.
1 2 3 4 5 6 7 8 9 10
1 1
2 2 1
3 3 3 1
4 4 6 4 1
5 5 10 10 5 1
6 6 15 20 15 6 1
7 7 21 35 35 21 7 1
8 8 28 56 70 56 28 8 1
9 9 36 84 126 126 84 36 9 1
32 Chapter 3. Fonctions
CHAPTER
FOUR
LISTES
Jusqu’à présent, chaque variable ne contenait qu’une seule valeur: un chiffre, une valeur booléenne, une chaîne de carac-
tères,… Une liste est une structure de donnéees qui permet de contenir plusieurs variables, soit un ensemble de valeurs.
Pour définir une liste dans Python, nous utilisons les crochets ([]). Chaque élément est séparé par une virgule.
Nous allons créer une liste a qui contient les chiffres de 1 à 5 et puis l’afficher.
a = [1, 2, 3, 4, 5]
print(a)
[1, 2, 3, 4, 5]
Les valeurs au sein de la liste ne doivent pas nécessairement être du même type (int, float, bool, …).
Nous allons définir et afficher une liste a qui contient les valeurs a, 1, True, et 2.
a = ['a', 1, True, 2]
print(a)
['a', 1, True, 2]
Tout comme les entiers sont de types int et les nombres décimaux sont de type float, les listes sont de type list.
print(type(a))
<class 'list'>
33
Informatique de gestion - 11UIF12-C
Introduction à la programmation: Python
Chaque élément d’une liste possède un indice (index) qui renseigne sa position dans la liste. Le premier indice est l’indice
0. Le dernier indice est 𝑛 − 1 si 𝑛 est le nombre d’éléments dans la liste. Pour accéder à un élément particulier de la liste,
il faut indiquer le nom de la liste, suivi de la position de cet élément entre crochets.
• Définir une liste a qui contient les chiffres 6, 4, 1, 3, et 2.
• Afficher le premier élément (position 0)
• Afficher le troisième élément (position 2)
• Afficher l’élément en position 5
a = [6, 4, 1, 3, 2]
print(a[0])
print(a[2])
print(a[5])
6
1
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
Input In [17], in <cell line: 4>()
2 print(a[0])
3 print(a[2])
----> 4 print(a[5])
La dernière instruction génère une erreur. En effet, il n’y aucun élément en position 5. On essaie donc d’accéder à un
élément en dehors de la liste. Cette erreur causera l’arrêt du programme.
On peut également accéder aux éléments en se référant à la position par rapport à la fin de la liste. Ainsi, le dernier
élément aura la position -1, l’avant-dernier élément la position -2, etc.
a = [1, 2, 3, 4, 5]
print(a[-1])
print(a[-2])
5
4
Pour connaître la longueur d’une liste, nous pouvons utiliser la fonction len.
a = [1, 2, 3, 4, 5]
print(len(a))
34 Chapter 4. Listes
Informatique de gestion - 11UIF12-C
Introduction à la programmation: Python
Pour accéder à plusieurs éléments consécutifs au sein d’une liste, on utilisera le nom de la liste, suivi de crochets et on
spécifie les indices de début et de fin. Pour rappel, les éléments seront affichés entre le premier indice inclus et le deuxième
indice exclus.
print(a[1:4])
[2, 3, 4]
Si un troisième chiffre est mentionné, ce sera l’incrément. Le code ci-dessous affiche donc les éléments entre la position
0 (incluse) et la position 5 (exclue), par incrément de 2, soit les éléments aux positions 0, 2, et 4.
print(a[0:5:2])
[1, 3, 5]
A l’aide de range et list, il est possible de générer rapidement des listes de taille potentiellement plus importante. range
possède un comportement différent en fonction du nombre d’arguments qui sont fournis:
• 1 argument 𝑎 : de 0 (inclus) à 𝑎 (non-inclus)
• 2 arguments 𝑎 et 𝑏 : de 𝑎 (inclus) à 𝑏 (non-inclus)
• 3 arguments 𝑎, 𝑏, et 𝑐: de 𝑎 (inclus) à 𝑏 (non-inclus) par incrément de 𝑐
• 1 argument: list(range(a)) produit une liste de 0 à 𝑎 (non-inclus)
a1 = list(range(20))
print(a1)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
a2 = list(range(10, 15))
print(a2)
• 3 arguments: list(range(a, b, c)) produit une liste de 𝑎 (inclus) à 𝑏 (non-inclus) par pas de 𝑐.
Pour savoir si un élément se trouve dans une liste, nous pouvons effectuer un test à l’aide de in. Par exemple, nous avons
une liste qui contient des prénoms et nous souhaitons tester si un prénom se trouve dans la liste.
print('Christophe' in a)
print('Dianne' in a)
True
False
De nombreux problèmes mathématiques nécessitent de travailler avec des matrices, c’est-à-dire des tableaux à deux di-
mensions contenant des valeurs. Nous pouvons encoder une matrice en créant une liste de listes. Supposons que nous
souhaitions créer une matrice de 3 lignes et 3 colonnes contenant les chiffres de 1 à 9, nous allons créer une liste contenant
elle-même 3 listes:
1 2 3
4 5 6
7 8 9
L’élément 0 de la liste m est une liste. Si nous souhaitons accéder à des chiffres particuliers:
36 Chapter 4. Listes
Informatique de gestion - 11UIF12-C
Introduction à la programmation: Python
2
5
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
Input In [12], in <cell line: 4>()
2 print(m[0][1])
3 print(m[1][1])
----> 4 print(m[3][3])
Le troisième print génère une erreur car il n’y a pas de liste en position 3.
Nous pouvons finalement afficher les chiffres tels que présentés dans le tableau.
1 2 3
4 5 6
7 8 9
Il existe quelques méthodes qui permettent de modifier une liste, et notamment le fait d’ajouter un ou plusieurs éléments
à une liste, potentiellement à une place bien déterminée.
La méthode append permet d’ajouter un élément à la fin de la liste. Nous commençons par définir une liste qui contient
5 chiffres. Nous affichons cette liste et nous affichons également sa longueur. Ensuite, nous utilisons la méthode append
pour ajouter le chiffre 0 à la fin de la liste. Nous réaffichons la liste pour montrer que le changement a bien eu lieu, et
que la longueur de la liste a augmenté de 1. Ensuite, nous ajoutons une liste qui contient 2 chiffres, 9 et 5. Dans ce cas,
c’est bien la liste qui est ajoutée. On remarque que la longueur de la liste n’a augmenté que de 1 à nouveau, même si on a
ajouté une liste qui contient 2 chiffres.
a = [1, 2, 4, 6, 3]
print(a)
print("Longueur de la liste:", len(a))
[Link](0)
print(a)
print("Longueur de la liste:", len(a))
[Link]([9, 5])
print(a)
print("Longueur de la liste:", len(a))
[1, 2, 4, 6, 3]
Longueur de la liste: 5
[1, 2, 4, 6, 3, 0]
Longueur de la liste: 6
[1, 2, 4, 6, 3, 0, [9, 5]]
Longueur de la liste: 7
Nous avons vu dans la section précédente que la méthode append ne permet pas d’ajouter plusieurs chiffres simultanément.
La méthode extend permet de le faire. Nous repartons de la même liste initiale. A l’aide de la méthode extend, le nombre
d’éléments de la liste passe de 5 à 7.
a = [1, 2, 4, 6, 3]
print(a)
print("Longueur de la liste:", len(a))
[Link]([9, 5])
print(a)
print("Longueur de la liste:", len(a))
[1, 2, 4, 6, 3]
Longueur de la liste: 5
[1, 2, 4, 6, 3, 9, 5]
Longueur de la liste: 7
Jusqu’à présent, nous avons ajouté un ou plusieurs chiffres à la fin de la liste. Si nous souhaitons les insérer à une place
particulière au sein de la liste, nous pouvons utiliser la méthode insert. Dans ce cas, il faut spécifier 2 informations: (1) la
place à laquelle nous souhaitons insérer le chiffre, et (2) le chiffre en question. Dans l’exemple ci-dessous, nous insérons
le chiffre 6 à la position 2 (et pas le chiffre 2 à la position 6).
a = [1, 2, 3, 4, 5]
print(a)
[Link](2, 6)
print(a)
[1, 2, 3, 4, 5]
[1, 2, 6, 3, 4, 5]
38 Chapter 4. Listes
Informatique de gestion - 11UIF12-C
Introduction à la programmation: Python
Pour supprimer un élément d’une liste, nous devons utiliser la méthode remove. Si la liste contient plusieurs fois le chiffre
à supprimer, cette méthode ne supprime que la première occurence rencontrée. Dans l’exemple ci-dessous, la liste a
contient 2 fois le chiffre 3. Seul le premier a été supprimé.
a = [1, 3, 5, 2, 5, 3, 0, 4]
print(a)
[Link](2)
print(a)
[Link](3)
print(a)
[1, 3, 5, 2, 5, 3, 0, 4]
[1, 3, 5, 5, 3, 0, 4]
[1, 5, 5, 3, 0, 4]
Avec la méthode clear, il est possible de supprimer le contenu d’une liste. Cependant la liste existe toujours, bien qu’elle
sera vide.
del permet de supprimer la référence à la liste, ce qui implique qu’elle n’existe plus.
a = [1, 2, 4, 6, 3]
print("Adresse memoire", hex(id(a)))
print(a)
# suppression de la liste
del a
print("Adresse memoire", hex(id(a)))
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
Input In [15], in <cell line: 12>()
10 # suppression de la liste
11 del a
---> 12 print("Adresse memoire", hex(id(a)))
La méthode sort permet de trier une liste. Par défault, cette méthode trie la liste dans l’ordre croissant. Pour trier une
liste dans l’ordre décroissant, il faut spécifier reverse=True.
a = [1, 3, 5, 2, 5, 3, 0, 4]
print(a)
[1, 3, 5, 2, 5, 3, 0, 4]
[0, 1, 2, 3, 3, 4, 5, 5]
# tri decroissant
[Link](reverse=True)
print(a)
[5, 5, 4, 3, 3, 2, 1, 0]
reverse permet d’inverser une liste. Le premier élément devient le dernier et inversément, le deuxième devient avant-
dernier, et ainsi de suite. Il ne s’agit donc pas d’un tri !
a = [1, 3, 5, 2, 5, 3, 0, 4]
print(a)
[Link]()
print(a)
[1, 3, 5, 2, 5, 3, 0, 4]
[4, 0, 3, 5, 2, 5, 3, 1]
count permet de compter le nombre d’occurences d’un élément dans une liste.
La liste a contient 3 fois le chiffre 2.
a = [1, 2, 4, 6, 3, 2, 4, 2]
print(a)
print("Nb chiffre 2 : ", [Link](2))
[1, 2, 4, 6, 3, 2, 4, 2]
Nb chiffre 2 : 3
40 Chapter 4. Listes
Informatique de gestion - 11UIF12-C
Introduction à la programmation: Python
index renvoie l’indice à laquelle se trouve un élément dans une liste si cet élément fait effectivement partie de la liste, et
renvoie une erreur si cet élément ne fait pas partie de la liste.
print([Link]('Christophe'))
print([Link]('Diane'))
print([Link]('Dianne'))
0
2
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
Input In [16], in <cell line: 5>()
3 print([Link]('Christophe'))
4 print([Link]('Diane'))
----> 5 print([Link]('Dianne'))
pop permet de supprimer un élément à une position spécifique dans une liste. Si aucun argument n’est mentionné, c’est le
dernier élément de la liste qui est supprimé.
a = [1, 3, 5, 2, 5, 3, 0, 4]
print(a)
[Link](3) # supprime le chiffre 2 (indice=3)
print(a)
[Link]() # supprime le chiffre 4 (dernier element)
print(a)
[1, 3, 5, 2, 5, 3, 0, 4]
[1, 3, 5, 5, 3, 0, 4]
[1, 3, 5, 5, 3, 0]
Supposons qu’une liste soit stockée dans la variable a. Si on souhaite copier le contenu de cette variable a dans une autre
variable, b, on pourrait simplement écrire b = a. En affichant les 2 variables, on constate que le contenu des 2 variables
est semblable.
a = [1, 2, 3, 4]
b = a
print(a)
print(b)
[1, 2, 3, 4]
[1, 2, 3, 4]
Cependant, si on modifie la variable a, par exemple, en ajoutant un chiffre à l’aide de la méthode append, on constate que
la variable b est également affectée.
[Link](5)
print(a)
print(b)
[1, 2, 3, 4, 5]
[1, 2, 3, 4, 5]
La raison est que le signe d’égalité utilisé plus haut a fait en sorte que les 2 variables a et b pointent vers le même objet.
On peut d’ailleurs s’en convaincre en affichant l’adresse mémoire de cette liste. Le schéma ci-dessous illustre le fait que
les 2 variables pointent vers la même liste.
print(hex(id(a)))
print(hex(id(b)))
0x7fb5f0b8ec00
0x7fb5f0b8ec00
La méthode copy permet d’effectuer une copie de la liste a et de la stocker dans la variable b. Ceci crée une 2ème liste
qui est indépendante de la première liste. Une modification de a n’affecte donc pas b.
a = [1, 2, 3, 4]
b = [Link]() # permet de creer une autre liste
print(a)
print(b)
[Link](5)
print(a)
print(b)
print(hex(id(a)))
print(hex(id(b)))
42 Chapter 4. Listes
Informatique de gestion - 11UIF12-C
Introduction à la programmation: Python
[1, 2, 3, 4]
[1, 2, 3, 4]
[1, 2, 3, 4, 5]
[1, 2, 3, 4]
0x7fb5a0034a80
0x7fb5a00349c0
a = [1, 2, 3, 4]
b = a[:] # permet de faire une copie
print(a)
print(b)
[Link](5)
print(a)
print(b)
print(hex(id(a)))
print(hex(id(b)))
44 Chapter 4. Listes
CHAPTER
FIVE
INSTRUCTIONS RÉPÉTITIVES
Il arrive fréquemment qu’une instruction soit répétée un certain nombre de fois. Il est dès lors plus efficace d’écrire une
cette instruction au sein d’une instruction répétitive / une boucle.
Par exemple, supposons que nous souhaitions afficher les chiffres de 0 à 5, nous pourrions écrire :
print(0)
print(1)
print(2)
print(3)
print(4)
print(5)
0
1
2
3
4
5
L’instruction print est répétée un certain nombre de fois. Voyons comment une boucle for pourrait nous aider à écrire
ceci de manière plus concise.
for i in range(6):
print(i)
0
1
2
3
4
5
45
Informatique de gestion - 11UIF12-C
Introduction à la programmation: Python
for i in range(5):
print(i)
0
1
2
3
4
1
2
3
4
1
3
5
7
9
Si l’incrément est négatif, les chiffres affichés seront donc décroissants (il faut que 𝑎 > 𝑏 dans ce cas).
10
8
6
4
2
Pour afficher séparémment chaque élément d’une liste, on peut utiliser une boucle. Dans une liste de 𝑛 éléments, les
éléments sont indexés de la position 0 à la position 𝑛 − 1. Il faut donc créer une variable qui prendra les valeurs de 0
(inclus) à 𝑛 (non-inclus). Pour accéder à la longueur de la liste, et donc connaître 𝑛, nous pouvons utiliser la fonction len.
for i in range(len(voyelles)):
print(voyelles[i])
a
e
i
o
u
y
a
e
i
o
u
y
Cette façon de parcourir la liste est plus intuitive et plus lisible. Toutefois, il ne sera pas toujours possible d’utiliser cette
2ème méthode, notamment lorsqu’on aura besoin d’effectuer des manipulations sur la liste qui nécessite de connaître la
position de l’élément au sein de la liste, comme le tri d’une liste par exemple.
5.2 Compteur
Dans cette section, nous ne considérerons que des listes composées uniquement de chiffres entiers. Maintenant que
nous sommes capables de parcourir la liste, nous allons pouvoir réaliser des scripts permettant de calculer la somme des
éléments, de trouver le minimum et le maximum, etc.
Pour calculer la somme d’une liste, nous devons commencer par initialiser une variable somme=0. Ensuite, nous allons
parcourir chaque élément de la liste à l’aide d’une boucle for et ajouter successivement chacun de ces chiffres à la somme.
Pour implémenter un compteur, la logique est très semblable. Comme précédemment, nous initialisons une variable
compteur à 0 et ensuite, nous augmentons la valeur du compteur à chaque élément.
a = [1, 2, 3, 4, 5]
compteur = 0
for i in range(len(a)):
compteur = compteur + 1
(continues on next page)
print(compteur)
Ce script n’est pas très utile car il renvoie la même information que la longueur de la liste. Par contre, nous pouvons
légèrement modifier ce script de manière à compter uniquement les chiffres qui respectent une certaine condition. Par
exemple, pour compter le nombre de chiffres pairs (ou impairs) d’une liste, nous pouvons écrire:
a = [1, 2, 3, 4, 5]
nb_pairs = 0
nb_impairs = 0
for i in range(len(a)):
if a[i] % 2 == 0:
nb_pairs = nb_pairs + 1
else:
nb_impairs = nb_impairs + 1
Nombres pairs : 2
Nombres impairs : 3
Pour calculer le minimum d’une liste, nous allons initialiser une variable minimum. Cependant, nous ne pouvons pas lui
donner une valeur telle que 0 car ce chiffre n’est peut-être pas dans la liste. C’est d’ailleurs le cas dans notre exemple.
Nous allons donc considérer que, dans un premier temps, le minimum sera égal au premier chiffre de la liste. Ensuite,
nous parcourons l’entièreté de la liste et nous testons si le chiffre en question est plus petit que le minimum actuel. Si oui,
nous effectuons le remplacement (et nous avons une nouvelle valeur pour le minimum).
a = [8, 2, 5, 3, 4]
minimum = a[0]
for i in range(len(a)):
if a[i] < minimum:
minimum = a[i]
print("Minimum:", minimum)
Minimum: 2
Nous avons également vu dans le chapitre précédent qu’une liste pouvait contenir d’autres listes. Cette structure s’apparente
au concept mathématique de matrices. Nous allons créer une matrice (3x3) qui contient les chiffres de 1 à 9.
matrice = [[1,2,3],[4,5,6],[7,8,9]]
Si nous souhaitons afficher chaque élément de manière séparée, il faudrait écrire 9 instructions print.
print(matrice[0][0])
print(matrice[0][1])
print(matrice[0][2])
#------------------#
print(matrice[1][0])
print(matrice[1][1])
print(matrice[1][2])
#------------------#
print(matrice[2][0])
print(matrice[2][1])
print(matrice[2][2])
1
2
3
4
5
6
7
8
9
A l’aide de ce qui vient d’être vu précédemment, on pourrait obtenir le même résulat à l’aide d’une instruction for. Vous
pouvez remarquer que 3 blocs ont été séparés à l’aide de #—#. Bien que ça n’ait aucun effet sur le code, étant donné que
c’est un commentaire, cela permet de constater que la seule différence entre ces trois blocs est la valeur du chiffre dans le
premier crochet. Nous pouvons donc écrire:
for i in range(3):
print(matrice[i][0])
print(matrice[i][1])
print(matrice[i][2])
1
2
3
4
5
6
7
8
9
Mais ce n’est pas tout ! En effet, on constate maintenant (même si on aurait déjà pu le constater plus tôt) que les instructions
au sein de la boucle for sont similaires, à l’exception près du chiffre qui se trouve cette fois-ci dans le deuxième crochet.
Nous allons donc pouvoir écrire une 2ème boucle au sein de la première. Nous utiliserons la lettre j.
for i in range(3):
for j in range(3):
print(matrice[i][j])
1
2
3
4
(continues on next page)
Top ! On est passé de 9 lignes de codes à 3 lignes, tout ça pour obtenir le même résultat. Pour obtenir un output plus
qualitatif et avoir un affichage qui s’apparente à celui d’une matrice, il conviendrait maintenant d’afficher 3 chiffres, puis de
passer à la ligne, d’afficher les 3 chiffres suivants, et ainsi de suite. Rappelez-vous que par défaut, l’instruction print passe
à la ligne, mais qu’il est possible de changer de comportement par défault en indiquant end=… et ce que l’on souhaite voir
afficher après avoir affiché les différents éléments du print. Si nous décidons “d’afficher” une tabulation, obtenu à l’aide de
\t après chaque chiffre, ceci devient:
for i in range(3):
for j in range(3):
print(matrice[i][j], end="\t")
1 2 3 4 5 6 7 8 9
On constate maintenant que tous les chiffres sont affichés sur la même ligne. Il ne reste plus qu’à “afficher” un retour à
la ligne à chaque fois que 3 chiffres ont été affichés. Ceci revient à afficher un retour à la ligne une fois que la boucle
intérieure (celle avec la variable j) est terminée.
for i in range(3):
for j in range(3):
print(matrice[i][j], end="\t")
print("")
1 2 3
4 5 6
7 8 9
5.4 Break
L’instruction break permet de stopper une boucle, si une condition particulière est rencontrée.
1
2
3
4
5
Notez que si l’instruction break se situe avant l’instruction print, alors le résultat n’est pas tout à fait le même.
1
2
3
4
5.5 Continue
L’instruction continue permet de continuer la boucle tout en passant une itération particulière. Supposons qu’on souhaite
diviser 10 par tous les chiffres compris entre -5 et 5. Nous savons qu’une division par 0 entraînera une erreur. Il faut donc
passer cette itération.
10 / -5 = -2.0
10 / -4 = -2.5
10 / -3 = -3.33
10 / -2 = -5.0
10 / -1 = -10.0
Pas de division par zero
10 / 1 = 10.0
10 / 2 = 5.0
10 / 3 = 3.33
10 / 4 = 2.5
10 / 5 = 2.0
5.6 Pass
L’instruction pass permet d’indiquer qu’on complètera une partie de code plus tard. Dans l’exemple ci-dessous, on parcourt
la liste qui contient les chiffres de 1 à 10. Pour les chiffres pairs, on complètera les instructions à réaliser plus tard. Pour
les chiffres impairs, on se contente de les afficher.
a = list(range(1, 10))
for i in a:
if i % 2 == 0:
# to-do : complete this part
pass
else:
print(i)
5.5. Continue 51
Informatique de gestion - 11UIF12-C
Introduction à la programmation: Python
1
3
5
7
9
Nous avons vu comment créer des fonctions et comment parcourir une liste. Nous allons maintenant voir comment
appliquer une fonction sur l’ensemble des éléments d’une liste.
Nous allons créer une liste a qui contient les chiffres entre 1 et 5. Ensuite, nous allons définir une fonction square qui
permet de calculer le carré d’un chiffre. Finalement, on appliquera la fonction sur chaque élément de la liste et chaque
valeur sera stockée dans la liste a_square.
a = list(range(1, 6))
def square(x):
return x**2
a_square = []
for i in a:
a_square.append(square(i))
print(a_square)
𝑦 = 2𝑥2 − 4𝑥 + 3
def f(x):
return 2*x**2 - 4*x + 3
x = list(range(-3, 6))
y = [f(i) for i in x]
print(x)
print(y)
[Link](x, y);
Si vous utilisez IDLE, il est probable que vous rencontriez cette erreur :
Cette erreur signifie que la librairie n’est pas installée. Dans ce cas, vous pouvez :
• installer via IDLE (voir instructions sur Moodle).
• utiliser une solution en ligne ([Link] - nécessite un compte Google et une connexion à
internet)
x = list(range(-30, 51))
x = [i/10 for i in x]
y = [f(i) for i in x]
[Link](x, y);
5.8 Exercices
5.8.1 Exercice 1
Créez une variable n égal à 5. Affichez ensuite tous les chiffres entre 1 et n.
1
2
3
4
5
5.8.2 Exercice 2
Demandez à l’utilisateur d’entrer une borne inférieure et une borne supérieure. Stockez ces informations dans les variables
a et b. Affichez tous les chiffres compris entre ces bornes, a et b inclus.
5.8.3 Exercice 3
3A
A l’aide d’une boucle, créez un compte à rebours qui affiche les chiffres de 10 à 0.
10
9
8
7
6
5
4
3
2
1
0
3B
Améliorez le script précédent en utilisant [Link](1) qui permet de faire une pause dans l’exécution de 1 seconde pour
avoir un rendu qui ressemble vraiment à un compte à rebours. N’oubliez pas d’importer le module time.
10
9
8
7
6
5
4
3
2
1
0
5.8. Exercices 55
Informatique de gestion - 11UIF12-C
Introduction à la programmation: Python
5.8.4 Exercice 4
Créez une liste a qui contient les chiffres 2, 5, 8, 9, et 4. Calculez ensuite la somme des éléments de cette liste sans utiliser
la fonction sum.
28
5.8.5 Exercice 5
Reproduisez le contenu (uniquement la zone bleue) de l’image ci-dessous. Chaque chiffre correspond à la somme entre
le numéro de ligne et le numéro de colonne.
0 1 2 3 4 5
1 2 3 4 5 6
2 3 4 5 6 7
3 4 5 6 7 8
4 5 6 7 8 9
5 6 7 8 9 10
5.8.6 Exercice 6
L’opérateur ∑, très utilisé en mathématiques et statistiques, indique une somme. Par exemple :
6
∑ = 1 + 2 + 3 + 4 + 5 + 6 = 21
𝑖=1
21
5.8.7 Exercice 7
L’opérateur Π, également très utilisé en mathématiques et statistiques, indique un produit. Par exemple:
Π6𝑖=1 = 1 × 2 × 3 × 4 × 5 × 6 = 720
Implémentez un script qui calcule et affiche le produit des chiffres entre 1 et 𝑛 (supposez que 𝑛 = 6).
720
SIX
INSTRUCTIONS CONDITIONNELLES
Jusqu’à présent, nous avons considéré une exécution “linéaire”. La première ligne est exécutée, ensuite la deuxième, et
ainsi de suite. En pratique, il est possible de n’exécuter que certaines parties du code, sous certaines conditions.
L’instruction if réalise un test logique. Un test logique débouche sur 2 possibilités mutuellement exclusives:
• Vrai (True)
• Faux (False)
Pour tester si un nombre est pair ou impair, nous pouvons calculer le reste de la division entière de ce nombre par 2. S’il
ne reste rien (le reste vaut 0) alors le nombre est pair, sinon il est impair.
Pour rappel, on peut calculer le reste de la division entière (le modulo) à l’aide du symbôle %. Le reste de la division
entière de 5 par 2 vaut 1.
print(5 % 2)
On peut donc tester si le reste de la division entière de 5 par 2 est égal à zéro. Dans ce cas-ci, le test renvoie la valeur
False.
print(5 % 2 == 0)
False
57
Informatique de gestion - 11UIF12-C
Introduction à la programmation: Python
a = 5
if a % 2 == 0:
print(a, "est pair.")
else:
print(a, "est impair.")
5 est impair.
Il y a plusieurs éléments importants dans ce script. On utilise le mot-clé if pour l’instruction conditionnelle. Ensuite, on
écrit le test réalisé. Notez que pour tester une égalité, nous devons utiliser le double symbôle d’égalité (==). Si ce test
renvoie la valeur True, alors la première partie du code est exécute. Sinon (else), la deuxième partie est exécutée. Enfin, il y
a une tabulation dans le code qui permettent de délimiter les différents morceaux du code. En Python, cette indentation est
fondamentale. Deux codes similaires avec des indentations différentes donneront des résultats potentiellement différents.
Il est possible d’imbriquer plusieurs conditions. Nous définissons une variable a=10. Ensuite, nous testons si a est plus
grand que 5, et si ce n’est pas le cas, nous testons si a est plus petit que 3. Nous afficherons un message cohérent avec le
résultat des différents tests.
a = 10
if a > 5:
print(a, "est plus grand que 5")
else:
if a < 3:
print(a, "est plus petit que 3")
else:
print(a, "est compris entre 3 et 5")
En Python, il est possible de contracter un else suivi d’un if par un elif. Ceci rend le code plus lisible car toutes les
conditions se trouvent au même niveau.
a = 10
if a > 5:
print(a, "est plus grand que 5")
elif a < 3:
print(a, "est plus petit que 3")
else:
print(a, "est compris entre 3 et 5")
Etant donné que l’indentation est fondamentale, deux codes similaires avec des indentations différentes donneront des
résultats potentiellement différents.
a = 11
if a > 5:
if a % 2 == 0:
print("plus grand que 5 et pair")
elif a % 2 == 1:
print("plus grand que 5 et impair")
a = 11
if a > 5:
if a % 2 == 0:
print("plus grand que 5 et pair")
elif a % 2 == 1:
print("plus grand que 5 et impair")
Ce second code n’affichera aucun résultat car aucune condition atteinte par le programme n’est vraie.
Une valeur booléenne peut prendre deux valeurs: VRAI True ou FAUX False. Ces valeurs booléennes permettent de
réaliser des tests logiques (AND, OR, XOR).
a = True
print(a)
True
b = False
print(b)
False
Au niveau du type de variables, ce sont donc des variables booléennes, en anglais bool.
a = True
print(type(a))
<class 'bool'>
ET
• a et b est vrai si et seulement si a est vrai et b est vrai. Dans les autres cas, l’opération est fausse.
a b a “et” b
True True True
False True False
True False False
False False False
a = True
b = True
print(a, "and", b, "is", a & b)
a = False
b = True
print(a, "and", b, "is", a & b)
a = True
b = False
print(a, "and", b, "is", a & b)
a = False
b = False
print(a, "and", b, "is", a & b)
OU
• a ou b est vrai si et seulement si au moins une des deux variables est vraie. Dans les autres cas, l’opération est fausse.
a b a “ou” b
True True True
False True True
True False True
False False False
a = True
b = True
print(a, "or", b, "is", a | b)
a = False
b = True
print(a, "or", b, "is", a | b)
a = True
b = False
print(a, "or", b, "is", a | b)
a = False
b = False
print(a, "or", b, "is", a | b)
Ou exclusif
• a ou b est vrai si et seulement si exactement une des deux variables est vraie. Dans les autres cas (si les deux sont
vraies ou si les deux sont fausses), l’opération est fausse.
a b a “ou exclusif” b
True True False
False True True
True False True
False False False
a = True
b = True
print(a, "or", b, "is", a ^ b)
a = False
b = True
print(a, "xor", b, "is", a ^ b)
a = True
b = False
print(a, "xor", b, "is", a ^ b)
a = False
b = False
print(a, "xor", b, "is", a ^ b)
Les valeurs booléennes peuvent aussi être le résultat d’un test. Commençons par définir a=5 et b=3.
a = 5
b = 3
Warning: Une erreur fréquente est de n’utiliser qu’un seul signe d’égalité.
print(a==b)
False
print(a>=b)
True
print(a<b)
False
Finalement, c’est vrai que le contenu des deux variables est différent.
print(a!=b)
True
a = 4
b = 5
c = 6
d = 7
True
En effet, il convient d’évaluer les expressions en suivant l’ordre imposé par les parenthèses. a n’est pas plus grand que c
mais en même temps b est différent de d. Nous avons donc: False or True, ce qui est True.
6.5 Exercices
6.5.1 Exercice 1
𝑓(𝑥) = 𝑎𝑥2 + 𝑏𝑥 + 𝑐
Pour calculer les racines d’une fonction, il faut tout d’abord calculer le Δ:
Δ = 𝑏2 − 4𝑎𝑐
−𝑏
𝑟1 =
2𝑎
Si le Δ est négatif, il n’y a pas de racine.
Calculer les racines du polynome 𝑓(𝑥) = 𝑥2 + −4𝑥 + 4. Donc:
• a: 1
• b: -4
• c: 4
Racine: 2.0
6.5.2 Exercice 2
6.5.3 Exercice 3
Demander à l’utilisateur d’entrer deux entiers. Calculer la somme et indiquer si celle-ci est paire ou impaire.
6.5.4 Exercice 4
Demander à l’utilisateur d’entrer deux entiers. Indiquer si a est plus grand que b, plus petit que b, ou si les chiffres sont
égaux.
6.5. Exercices 65
Informatique de gestion - 11UIF12-C
Introduction à la programmation: Python
6.5.5 Exercice 5
Demander à l’utilisateur d’entrer deux entiers a et b. On fait l’hypothèse que l’utilisateur entre deux entiers différents.
Vérifier si ce sont des multiples (vérifier dans les deux sens: a peut être multiple de b ou b peut être un multiple de a).
6.5.6 Exercice 6
Demander à l’utilisateur d’entrer un montant HTVA, un taux de TVA et un montant TVAC. Vérifier ensuite si les infor-
mations fournies sont cohérentes.
6.5.7 Exercice 7
Entrer un chiffre: 5
Perdu, c'était 8
6.5.8 Exercice 8
Entrer un chiffre: 2
Trop petit, c'était 4
SEVEN
INSTRUCTIONS WHILE
Après avoir découvert, for et if, il est temps de découvrir while. L’instruction while s’utilise quand il faut exécuter certaines
instructions tant qu’une condition est vraie.
Par exemple, tant que a est plus petit que 5, j’affiche sa valeur et j’augmente ensuite cette valeur de 1. A chaque itération,
la valeur de a est affichée. Ensuite, a augmente de 1. Finalement, on teste si a est toujours plus petit que 5.
67
Informatique de gestion - 11UIF12-C
Introduction à la programmation: Python
a = 0
while a < 5:
print(a)
a = a + 1
0
1
2
3
4
Lorsqu’on utilise while, il est possible de créer une boucle infinie… Il faut donc être particulièrement attentif à ce qui est
écrit. Si plutôt que d’écrire a = a - 1, j’écris (de manière eronnée) a = a + 1, a sera toujours plus grand que zéro et le script
continuera à l’infini…
a = 5
print("i vaut:", a)
while a > 0:
print("Je diminue a de 1")
print("a vaut maintenant: ", a)
a = a + 1 # erreur!
7.2 Exercices
7.2.1 Exercice 1
Modifier le script du jeu “Deviner un chiffre” de manière à permettre à l’utilisateur d’entrer un essai tant qu’il ne trouve
pas la bonne réponse.
Entrer un chiffre: 5
Entrer un chiffre: 4
Entrer un chiffre: 6
Entrer un chiffre: 3
Entrer un chiffre: 2
Entrer un chiffre: 1
Entrer un chiffre: 8
Entrer un chiffre: 7
Entrer un chiffre: 9
Bravo
7.2.2 Exercice 2
Modifier le script du jeu “Deviner un chiffre” de manière à permettre à l’utilisateur d’entrer un essai tant qu’il ne trouve
pas la bonne réponse, avec un maximum de 3 essais.
Entrer un chiffre: 1
Entrer un chiffre: 2
Entrer un chiffre: 3
Game Over!
Bonne reponse: 5
7.2. Exercices 69
Informatique de gestion - 11UIF12-C
Introduction à la programmation: Python
EIGHT
CHAÎNES DE CARACTÈRES
Une chaine de caractères est comparable à une liste dans le sens où chaque lettre (ou symbole) d’une chaine de caractère
possède une position au sein de la chaine de caractères. Tout comme les listes, la première lettre de la chaîne de caractères
possède l’indice 0.
prenom = 'Christophe'
print(prenom[0])
Nous pouvons donc facilement afficher les initiales du nom et du prénom d’une personne.
prenom = 'Christophe'
nom = 'Desagre'
print('Mes initiales sont', prenom[0], nom[0])
prenom = 'Christophe'
nom = 'Desagre'
print('Mes initiales sont ', prenom[0], nom[0], sep="")
Bien que cela puisse paraître étrange à première vue, il est possible d’utiliser l’opérateur d’addition entre des chaines de
caractères. Ceci permet de les assembler, en utilisant le symbôle +. Ainsi, nous pouvons définir deux variables, prenom
et nom. Ensuite, nous pouvons créer une 3ème variable nom_complet en additionnant les deux premières variables.
prenom = 'Christophe'
nom = 'Desagre'
nom_complet = prenom + nom
print(nom_complet)
71
Informatique de gestion - 11UIF12-C
Introduction à la programmation: Python
ChristopheDesagre
Note: Pour obtenir un résultat plus qualitatif, nous pouvons ajouter un espace entre le prénom et le nom.
prenom = 'Christophe'
nom = 'Desagre'
nom_complet = prenom + " " + nom
print(nom_complet)
Christophe Desagre
Pour afficher une chaîne de caractères sur plusieurs lignes, on peut utiliser 3 simples quotes ou 3 double quotes
prenom = 'Christophe'
print(len(prenom))
10
Etant donné qu’une chaîne de caractères peut être considérée comme une liste de caractères, il est donc possible de ne
retenir que certains caractères en fonction de leur positionnement. Par exemple, les 5 premiers caractères de mon prénom
sont:
prenom = 'Christophe'
print(prenom[:5])
Chris
prenom = 'Christophe'
print(prenom[-3:])
phe
prenom = 'Christophe'
print(prenom[::2])
Crsoh
lower permet de transformer toutes les lettres d’une chaîne de caractères en minuscules.
prenom = 'Christophe'
print([Link]())
christophe
Inversément, upper permet de transformer toutes les lettres d’une chaîne de caractères en majuscules.
prenom = 'christophe'
print([Link]())
CHRISTOPHE
Finalement, capitalize permet d’avoir une première lettre en majuscule, et toutes les autres en minuscule.
prenom = 'christophe'
print([Link]())
Christophe
8.2 Exercices
8.2.1 Exercice 1
[Link]@[Link]
8.2.2 Exercice 2
Réaliser un script qui permet de tester si une adresse mail finit par “@[Link]”. Si c’est le cas, indiquez que l’adresse
mail est valide.
8.2.3 Exercice 3
8.2.4 Exercice 4
8.2.5 Exercice 5
Réaliser un script qui permet de vérifier qu’un compte bancaire est correct. En Belgique, un compte bancaire sous format
IBAN commence par “BE” et est suivi de 14 chiffres. Les différentes étapes pour déterminer s’il s’agit d’un compte IBAN
valide sont les suivantes ([Link]
• Prendre les 4 premiers caractères et les placer à la fin de la chaîne de caractère
• Remplacer les lettres “B” et “E” par leur équivalent hexadécimal (B=11 et E=14)
• Vérifier que le modulo du nombre obtenu à l’étape 2 par 97 est égal à 1.
True
NINE
DICTIONNAIRES
Dans ce chapitre, nous aborderons le concept de dictionnaire. Le fil conducteur de ce chapitre sera de répliquer le tableau
suivant:
Compte tenu des concepts abordés jusqu’o présent, nous pourrions utiliser deux listes : une première liste qui contient
les attributs (théoriques), c-à-d le prénom, l’âge, et la profession, et une deuxième liste qui contient les valeurs, c-à-d
Christophe, 30, et enseignant. Le code suivant permet d’implémenter cette approche
Prenom : Christophe
Age : 30
Profession : Enseignant
Après analyse de ce code, on comprend que pour afficher un élément particulier, il faut connaître sa position au sein de
la liste. Dans l’exemple précédent, étant donné qu’il n’y a que 3 attributs, c’est facile. Mais quand serait-il si le nombre
d’attributs augmentait?
Les dictionnaires permettent de solutionner ce problème. Un dictionnaire est défini en Python à l’aide des accolades
(curly brackets) { et }. Un dictionnaire est composé de clés (les attributs théoriques) et de valeurs. Lors de la création du
dictionnaire, il faut associer ces clés et ces valeurs.
Chaque clé est unique !
• Créer un dictionnaire informations qui contient les informations mentionnées dans le tableau ci-dessus.
informations = {'Nom':'Christophe',
'Age': 30,
'Profession':'Enseignant'}
75
Informatique de gestion - 11UIF12-C
Introduction à la programmation: Python
Nom: Christophe
Age: 30
Profession: Enseignant
print("Keys:", [Link]())
print("Values:", [Link]())
print("Items:")
print([Link]())
Items:
dict_items([('Nom', 'Christophe'), ('Age', 30), ('Profession', 'Enseignant')])
Nom - Christophe
Age - 30
Profession - Enseignant
Tout d’abord, il faut se rappeler que [Link]() retourne des paires clé/valeur. C’est la raison pour laquelle, il y
a deux éléments juste à côté du mot-clé for, c-à-d key et value. Ensuite, ces deux variables sont affichées dans le print.
Nous allons maintenant ajouter d’autres personnes dans le tableau :
76 Chapter 9. Dictionnaires
Informatique de gestion - 11UIF12-C
Introduction à la programmation: Python
L’ensemble des informations est affichée mais pour revenir à un format qui ressemble d’avantage à un tableau, le code se
complique considérablement.
9.2 Exercices
9.2.1 Exercice 1
Réaliser un script qui permet de compter le nombre d’occurences de chaque élément dans une liste.
Utiliser la liste suivante:
[2, 4, 3, 9, 5, 9, 0, 9, 2, 3, 9]
2 - 2
4 - 1
3 - 2
9 - 4
5 - 1
0 - 1
9.2. Exercices 77
Informatique de gestion - 11UIF12-C
Introduction à la programmation: Python
9.2.2 Exercice 2
Réaliser un script qui permet de trouver le mode d’une liste de valeurs (le mode est la valeur qui revient le plus fréquem-
ment). Utiliser la liste définie précédemment. Le mode est donc le chiffre 9 qui apparaît 4 fois dans la liste.
mode 9 - 4 occurences
78 Chapter 9. Dictionnaires
CHAPTER
TEN
EXERCICES SUPPLÉMENTAIRES
Pour chacun des codes ci-dessous, déterminez ce qui sera affiché par ce script.
m = [[1,2,3],[4,5,6],[7,8,9]]
s = 0
for i in range(3):
for j in range(3):
s += m[i][j]
print(s)
m = [[1,2,3],[4,5,6],[7,8,9]]
s = 0
for i in range(3):
for j in range(3):
s += m[i][j]
print(s)
m = [[1,2,3],[4,5,6],[7,8,9]]
for i in range(3):
s = 0
for j in range(3):
s += m[i][j]
print(s)
m = [[1,2,3],[4,5,6],[7,8,9]]
s = 0
for j in range(3):
for i in range(3):
s += m[i][j]
print(s)
m = [[1,2,3],[4,5,6],[7,8,9]]
79
Informatique de gestion - 11UIF12-C
Introduction à la programmation: Python
for j in range(3):
s = 0
for i in range(3):
s += m[i][j]
print(s)
m = [[1,2,3],[4,5,6],[7,8,9]]
for i in range(3):
for j in range(i+1):
print(i, j, m[i][j])
m = [[1,2,3],[4,5,6],[7,8,9]]
s = 0
for i in range(3):
for j in range(i+1):
s += m[i][j]
print(s)
m = [[1,2,3],[4,5,6],[7,8,9]]
s = 0
for i in range(3):
for j in range(3):
if i == j:
s += m[i][j]
print(s)
m = [[1,2,3],[4,5,6],[7,8,9]]
s = 0
for i in range(3):
for j in range(3):
if i > j:
s += m[i][j]
print(s)
m = [[1,2,3],[4,5,6],[7,8,9]]
s = 0
for i in range(3):
for j in range(3):
if i <= j:
s += m[i][j]
print(s)
m1 = [[1,2,3]]
m2 = [[1],[3],[5]]
s = 0
for i in range(1):
(continues on next page)
10.2 while
x = 0
while x < 5:
print(x)
x = x + 1
x = 0
while x < 5:
x = x + 1
print(x)
x = 0
while x < 5:
x = x + 1
print(x)
x = 10
while x < 5:
x = x + 1
print(x)
x = 10
while x > 5:
x = x + 1
print(x)
x = 10
while x > 5:
x = x + 1
print(x)
10.2. while 81