Langage Python
Langage Python
Chimie 1, FS UN-NGAOUNDERE
2023
p. 1
Introduction
Pour pouvoir écrire des programmes, il faut d'abord choisir un langage de programmation qui
permette de décrire les différentes opérations que le programme développé doit effectuer. Il existe
des centaines de langages de programmation différents, chacun ayant ses spécificités propres. Ce
cours a choisi Python, un langage moderne utilisable pour coder une grande variété de programmes
différents. Ce chapitre présente ce langage et introduit les concepts de base nécessaires à l'écriture
d'un premier programme simple.
• Le langage est simple et intuitif, et aussi puissant que les principaux concurrents ;
• Il est open source, afin que quiconque puisse contribuer à son développement ;
• Le code est aussi compréhensible qu'un texte en anglais ;
• Il est adapté aux tâches quotidiennes, et permettre des courts délais de développement.
Depuis sa création, le succès du langage n'a cessé de croitre. Il s'agit d'un langage de haut niveau,
à usage général. Ces deux versions, communément appelées Python 2 et Python 3, continuent
toutes les deux d'exister, essentiellement pour des raisons de compatibilité. Dans ce cours, nous
utiliserons la version 3.
p. 2
Mode interactif et mode script
L'exécution d'un programme Python se fait à l'aide d'un interpréteur. Il s'agit d'un programme qui
va traduire les instructions écrites en Python en langage machine, afin qu'elles puissent être
exécutées directement par l'ordinateur. On dit donc que Python est un langage interprété.
Il y a deux modes d'utilisation de Python. Dans le mode interactif, aussi appelé mode console,
l'interpréteur vous permet d'encoder les instructions une à une. Il suffit d'appuyer sur la touche
ENTER pour que l'interpréteur l'exécute.
La figure 1 à suivante montre le programme Hello World en mode interactif. Les lignes qui
commencent par >>> sont l'invite de commande qui vous propose d'encoder une instruction. Si
cette dernière produit un résultat, il est affiché une fois l'instruction exécutée. Voici donc
l'instruction qui a été encodée et le résultat qu'elle a produit :
Figure 1. Dans le mode interactif, les instructions sont exécutées une à une par l'interpréteur
Python, au fur et à mesure que vous les encodez.
Pour quitter le mode interactif, il suffit d'exécuter l'instruction exit().
Il existe également le mode script où vous devez avoir préalablement écrit toutes les
instructions de votre programme dans un fichier texte, et l'avoir enregistré sur votre ordinateur.
On utilise généralement l'extension de fichier .py pour des fichiers contenant du code Python.
Une fois cela fait, l'interpréteur va lire ce fichier et exécuter son contenu, instruction par
instruction, comme si vous les aviez tapées l'une après l'autre dans le mode interactif.
p. 3
Calculatrice Python
On peut utiliser l'interpréteur Python en mode interactif comme une calculatrice. En effet, si vous y
tapez une expression mathématique, cette dernière sera évaluée et son résultat affiché.
>>> 42
42
>>> 2 * 12
24
>>> 2 ** 10
1024
>>> ((19.99 * 1.21) - 5) / 4
4.796975
Python propose plusieurs opérateurs arithmétiques décrit dans le tableau 1.
Description Notation
Addition +
Soustraction -
Multiplication *
Division /
Exponentiation **
Division entière //
Reste de la division entière %
Tableau 1 : Python propose sept opérateurs arithmétiques que l'on peut utiliser pour construire
des expressions mathématiques.
Variable
Une variable peut être vue comme une boite (virtuelle) représentant un emplacement en mémoire
qui permet de stocker une valeur, et à qui on a donné un nom afin de facilement l'identifier.
Voyons maintenant un exemple de programme qui utilise plusieurs variables pour calculer le
discriminant du trinôme 𝑥 2 + 2𝑥 − 4 . :
p. 4
1. a=1
2. b=2
3. c = -4
4.
5. delta = b ** 2 - 4 * a * c
6. print('Le discriminant est :')
7. print(delta)
Les trois premières instructions stockent les coefficients du trinôme, à savoir 1, 2 et −4,
respectivement dans des variables nommées a, b et c. La quatrième instruction effectue le calcul
du discriminant (𝑏 2 − 4𝑎𝑐) et stocke le résultat dans la variable delta. Enfin, les deux dernières
instructions affichent à l'écran la phrase « Le discriminant est : », suivie de la valeur de la
variable delta.
L'opérateur d'affectation (=).
Type de donnée
Il existe de nombreux types prédéfinis en Python, parmi lesquels les nombres et les chaines de
caractères.
• Le type entier (int) permet de représenter n'importe quel nombre entier, peu importe sa
taille.
• Le type flottant (float) permet de représenter des nombres comportant une partie décimale,
compris entre 10−308 et 10308 . La valeur spéciale math.inf représente l'infini.
• Le type complexe (complex) permet de représenter des nombres complexes, où le nombre
imaginaire se note j.
Il y’a également, une chaine de caractères (str) qui est une séquence de caractères, délimitée par
des guillemets dans sa forme littérale (simple ' ou double "). On peut généralement utiliser
indifféremment l'un ou l'autre type de guillemets.
Comme le montre l'exemple suivant, les flottants peuvent être écrits en notation scientifique. Il
s'agit d'un programme qui calcule les deux racines d'un trinôme du second degré :
1. from math import sqrt
2.
3. a = 1
4. b = -4
5. c = 2e2
6.
7. delta = b ** 2 - 4 * a * c
8. x1 = (-b + sqrt(delta)) / (2 * a)
9. x2 = (-b - sqrt(delta)) / (2 * a)
p. 5
10.
11. print('Les deux racines sont :')
12. print(x1)
13. print(x2)
La première instruction importe la fonction prédéfinie sqrt depuis le module math, afin de calculer
la racine carrée d'un nombre.
Exemple d’une chaine de caracteres.
address = "Bonjour étudiants\n en chimie 1"
print(address)
Fonction input
Alors que la fonction print permet à un programme de produire une sortie, on va pouvoir lire une
entrée grâce à la fonction input. Cette fonction, une fois appelée, arrête l'exécution du programme
et attend que l'utilisateur saisisse un texte. Ce dernier est ensuite rapatrié et peut, par exemple, être
stocké dans une variable. Voici un programme qui vous demande votre nom, puis vous souhaite la
bienvenue :
p. 6
Commentaire
Lorsqu'on écrit un programme, il est parfois utile d'y ajouter des informations textuelles à
destination des êtres humains. Ce genre d'information est appelé commentaire et on en ajoute dans
un code source à l'aide du caractère #. Tout ce qui suit ce caractère, jusqu’à la fin de la ligne, sera
ignoré par l'interpréteur Python.
Le but d'un bon commentaire est d'apporter une information additionnelle au code. Il peut s'agir
d'informations liées au problème résolu par le programme ou d'informations sur le programme.
Instruction de contrôle
Les instructions conditionnelles permettent de n'exécuter une partie du programme que si une
condition donnée est satisfaite. Les instructions répétitives permettent de répéter un certain
nombre de fois une portion de code.
Instruction conditionnelle
Commençons avec un exemple qui teste la valeur d'une variable x et affiche une phrase seulement
si cette valeur est négative :
1. x = -5
2. if x <= 0:
3. print("x est négatif !")
4. print("Sa valeur absolue vaut ", -x)
x est négatif !
Sa valeur absolue vaut 5
L'instruction if se compose du mot réservé if suivi d'une condition, puis du caractère deux-points
(:) et enfin d'une séquence d'instructions à exécuter si la valeur de la condition est vraie.
p. 7
En plus d'un bloc de code qui n'est exécuté que si une condition est satisfaite, on peut également
définir un second bloc qui ne sera exécuté que dans le cas contraire, c'est-à-dire si la condition n'est
pas satisfaite. Une telle exécution alternative se déclare avec le mot réservé else.
1. moyenne = 9.5
2. if moyenne >= 10:
3. print("vous avez réussi")
4. else:
5. print("vous avez raté")
On est maintenant capable d'écrire un programme complet pour chercher les racines d'un trinôme
du second degré, dont le code se trouve au listing suivant. Faites attention aux commentaires qui
ont été utilisés, ainsi qu'à la mise en page globale du code.
# Calcul du discriminant
delta = b**2 - 4 * a * c
print("Discriminant :", delta)
p. 8
Instruction répétitive
Une grande force de la programmation, et l'une des raisons pour lesquelles elle a été inventée, c'est
de pouvoir répéter plusieurs fois la même tâche. Voyons maintenant comment exécuter plusieurs
fois une même portion de code à l'aide d'instructions répétitives.
Instruction while
Commençons avec un exemple qui affiche les cinq premiers nombres naturels, en commençant
avec 11 :
n = 1
while n <= 5:
print(n)
n += 1
1
2
3
4
5
L'instruction while se compose du mot réservé while suivi d'une condition, puis du caractère deux-
points (:) et enfin d'un bloc de code appelé corps de la boucle. Celui-ci est exécuté intégralement
de manière répétée, tant que la condition du while est vraie.
Instruction for
La boucle for permet de faire des itérations sur un élément, comme une chaine de caractères par
exemple ou une liste.
Exemple :
p. 9
o
n
j
o
u
r
c
h
i
m
i
e
Fonction
On sait maintenant écrire des programmes Python, mais ils vont vite devenir longs en nombre de
lignes de code. De plus, on risque très vite de se retrouver avec des répétitions de codes
similaires. Alors grâce au concept de fonction, on va pouvoir écrire du code plus compact, lisible
et réutilisable.
Une fonction se définit avec le mot réservé def, suivi de son nom, d'une liste de paramètres (qui
peut être vide), du caractère deux-points (:) et enfin d'un bloc de code représentant son corps. Une
fois définie, elle peut être utilisée autant de fois qu'on le souhaite, en l'appelant.
p. 10
On peut classifier les fonctions selon deux critères. Une fonction peut renvoyer une valeur ou non,
au terme de son exécution, et une fonction peut admettre ou non des paramètres. On va maintenant
voir comment définir et utiliser ces différents types de fonctions.
Commençons avec un exemple d'une fonction qui ne renvoie pas de valeur, et n'admet aucun
paramètre. Écrivons, par exemple, une fonction qui affiche la table de multiplication de 7. Pour
cela, on va évidemment utiliser une boucle while qui va parcourir les entiers de 1 à 10. La fonction
se définit comme suit :
def table7():
n = 1
while n <= 10:
print(n, "x 7 =", n * 7)
n += 1
Ces lignes de code définissent donc une fonction dont le nom est table7. La fonction initialise une
variable n à 1, puis une boucle se répète tant que la condition n <= 10 est vraie. Le corps de la
boucle affiche une ligne de la table de multiplication, puis incrémente la valeur de n d'une unité.
Pour exécuter cette fonction, il suffit simplement d'utiliser son nom, suivi d'une parenthèse
ouvrante et d'une fermante. L'instruction d'appel de fonction table7() produit donc le résultat
suivant :
1 x 7 = 7
2 x 7 = 14
3 x 7 = 21
4 x 7 = 28
5 x 7 = 35
6 x 7 = 42
7 x 7 = 49
8 x 7 = 56
9 x 7 = 63
10 x 7 = 70
def table(base):
n = 1
while n <= 10:
print(n, "x", base, "=", n * base)
n += 1
Le corps de cette fonction est très similaire à celui de la fonction table7, les occurrences de 7 ayant
été remplacées par base. Le grand avantage de cette fonction est qu'elle est beaucoup
p. 11
plus générique, c'est-à-dire qu'elle pourra fonctionner dans beaucoup plus de cas. Pour l'appeler,
on utilise de nouveau son nom, sans oublier de fournir une valeur à son paramètre, entre
parenthèses. Voici comment afficher successivement les tables de multiplication de 3, 8 et 42 :
table(3)
table(8)
table(42)
Exercices de musculation
Cours 𝒏𝒐 𝟏 : « Premiers pas en Python »
1. Affectez les variables temps et distance par les valeurs 6.892 et 19.7.
Calculez et affichez la valeur de la vitesse.
Améliorez l’affichage en imposant un chiffre après le point décimal.
3. Saisir un nom et un âge en utilisant l’instruction input().
1. Saisissez un flottant. S’il est positif ou nul, affichez sa racine, sinon affichez un message d’erreur.
2. Initialisez deux entiers : a = 0 et b = 10.
Écrire une boucle affichante et incrémentant la valeur de a tant qu’elle reste inférieure à celle de b.
Écrire une autre boucle décrémentant la valeur de b et affichant sa valeur si elle est impaire. Boucler
tant que b n’est pas nul.
3. Écrire une saisie filtrée d’un entier dans l’intervalle 1 à 10, bornes comprises. Affichez la saisie.
Écrire une fonction volumeSphere qui calcule le volume d’une sphère de rayon r fourni en
argument et qui utilise la fonction cube. Tester la fonction volumeSphere par un appel dans le
programme principal.
p. 12