This is an archive copy of wikilivres.ca as of 18 February 2017 (from the WikiTeam dump). The original site is closed.

Page:Swinnen - Apprendre Python, 2010.djvu/41

Free texts and images.
Jump to navigation Jump to search
This page has been proofread


Opérateurs et expressions
19

>>>10 % 3 # (et prenez note de ce qui se passe ! )

>>>10 % 5

Cet opérateur vous sera très utile plus loin, notamment pour tester si un nombre a est divisible par un nombre b. Il suffira en effet de vérifier que a % b donne un résultat égal à zéro.


Exercice

2.3 Testez les lignes d’instructions suivantes. Décrivez dans votre cahier ce qui se passe :

>>> r, pi = 12, 3.14159

>>> s = pi * r ** 2

>>> print (s)

>>> print (type (r), type (pi), type (s))

Quelle est, à votre avis, l’utilité de la fonction type() ?

(Note : les fonctions seront décrites en détail aux chapitres 6 et 7.)



Priorité des opérations

Lorsqu’il y a plus d’un opérateur dans une expression, l’ordre dans lequel les opérations doivent être effectuées dépend de règles de priorité. Sous Python, les règles de priorité sont les mêmes que celles qui vous ont été enseignées au cours de mathématique. Vous pouvez les mémoriser aisément à l’aide d’un « truc » mnémotechnique, l’acronyme PEMDAS :

• P pour parenthèses. Ce sont elles qui ont la plus haute priorité. Elles vous permettent donc de « forcer » l’évaluation d’une expression dans l’ordre que vous voulez.

Ainsi 2.(3-1) = 4, et (1+1)**(5-2) = 8.

• E pour exposants. Les exposants sont évalués ensuite, avant les autres opérations.

Ainsi 2**1+1 = 3 (et non 4), et 3*1**10 = 3 (et non 59049 ! ).

• M et D pour multiplication et division, qui ont la même priorité. Elles sont évaluées avant l’addition A et la soustraction S, lesquelles sont donc effectuées en dernier lieu.

Ainsi 2*3-1 = 5 (plutôt que 4), et 2 / 3- 1 = -0.3333… (plutôt que 1.0).

• Si deux opérateurs ont la même priorité, l’évaluation est effectuée de gauche à droite. Ainsi dans l’expression 59*100//60, la multiplication est effectuée en premier, et la machine doit donc ensuite effectuer 5900//60, ce qui donne 98. Si la division était effectuée en premier, le résultat serait 59 (rappelez-vous ici que l’opérateur // effectue une division entière, et vérifiez en effectuant 59*(100//60)).



Composition

Jusqu’ici nous avons examiné les différents éléments d’un langage de programmation, à savoir : les variables, les expressions et les instructions, mais sans traiter de la manière dont nous pouvons les combiner les unes avec les autres.

Or l’une des grandes forces d’un langage de programmation de haut niveau est qu’il permet de construire des instructions complexes par assemblage de fragments divers. Ainsi par exemple,