About
Swaroop C H is 27 years of age. He graduated in B.E. (Computer Science) from PESIT, Bangalore, India. He has previously worked at Yahoo! and Adobe.
Page
Support
Personal tools
COLLECTION
Collection
Python fr:Opérateurs Et Expressions
From Notes
Contents |
[edit] Introduction
la plupart des instructions (lignes logiques) que vous écrierez contiendront des expressions. Un exemple simple d'une expression est 2 + 3. Une expression peut être décomposée en opérateurs et opérandes.
Les Opérateurs sont la fonctionnalité qui fait quelque chose et peuvent être représentés par des symboles comme + ou des mots-clés spéciaux. Les opérateurs ont besoins de données pour agir et ces données sont appelées des opérandes. Dans ce cas, 2 et 3 sont les opérandes.
[edit] Opérateurs
Nous jetterons un coup d'oeil rapide aux opérateurs et à leur utilisation :
Notez que vous pouvez évaluer de manière interactive les expressions données dans les exemples en utilisant l'interpréteur. Par exemple, pour tester l'expression 2 + 3, utilisez le prompt Python interactif :
>>> 2 + 3 5 >>> 3 * 5 15 >>>
|
Opérateur |
Nom |
Explication |
Exemples |
|---|---|---|---|
|
+ |
Plus |
Additionne les deux objets |
3 + 5 donne 8. 'a' + 'b' donne 'ab'. |
|
- |
Moins |
Donne un nombre négatif ou bien le résultat de la soustraction entre deux nombres |
-5.2 donne un nombre négatif. 50 - 24 donne 26. |
|
* |
Multiplication |
Donne le résultat de la multiplication de deux nombres ou renvoie une chaîne de caractères répétée le nombre de fois indiqué. |
2 * 3 donne 6. 'la' * 3 donne 'lalala'. |
|
** |
Puissance |
Renvoie x à la puissance y |
3 ** 4 donne 81 (c'est-à-dire 3 * 3 * 3 * 3) |
|
/ |
Division |
Divise x par y |
4 / 3 donne 1.3333333333333333. |
|
// |
Quotient De LA Division |
Renvoie le quotient de la division |
5 // 3 donne 1. |
|
% |
Modulo |
Renvoie le reste d'une division |
8 % 3 donne 2. -25.5 % 2.25 donne 1.5. |
|
<< |
Décalage de bits à gauche |
Fait un décalage à gauche du nombre de bits indiqué. (Chaque nombre est représenté en mémoire par des bits, c'est-à-dire 0 et 1) |
2 << 2 donne 8. 2 est représenté par 10 en bits. Le décalage à gauche de 2 bits donne 1000 qui représente le décimal 8. |
|
>> |
Décalage de bits à droite |
Fait un décalage à droite du nombre de bits indiqué à droite. |
11 >> 1 donne 5. 11 est représenté en bits par 1011 et un décalage à droite de 1 bit donne 101 qui est le décimal 5. |
|
& |
ET logique |
ET logique des nombres |
5 & 3 donne 1. |
|
| |
OU logique |
OU logique des nombres |
5 | 3 donne 7 |
|
^ |
XOR |
XOR des nombres |
5 ^ 3 donne 6 |
|
~ |
Bit-wise invert |
L'inversion bit-wise de x est -(x+1) |
~5 donne -6. |
|
< |
Moins que |
Indique si x est plus petit que y. Tous les opérateurs de comparaison renvoient True ou False. Notez la première lettre en majuscule. |
5 < 3 donne False and 3 < 5 donne True. Les comparaisons peuvent être chaînées de manière arbitraire : 3 < 5 < 7 donne True. |
|
> |
Plus grand que |
Renvoie si x est plus grand que y |
5 > 3 renvoie True. Si les deux opérandes sont des nombres, ils sont d'abord convertis en un type commun. Sinon, il renvoie toujours False. |
|
<= |
Inférieur ou égal à |
Indique si x est inférieur ou égal à y |
x = 3; y = 6; x <= y renvoie True. |
|
>= |
Supérieur ou égal à |
Indique si x est inférieur ou égal à y |
x = 4; y = 3; x >= 3 renvoie True. |
|
== |
Egal à |
Compare deux objets pour voir s'ils sont égaux |
x = 2; y = 2; x == y renvoie True. x = 'str'; y = 'stR'; x == y renvoie False. x = 'str'; y = 'str'; x == y renvoie True. |
|
!= |
Différent de |
Compare pour tester si les objets sont égaux |
x = 2; y = 3; x != y renvoie True. |
|
not |
Boolean NOT |
Si x vaut True, il renvoie False. Si x est False, il renvoie True. |
x = True; not x renvoie False. |
|
and |
Boolean AND |
x and y renvoie False si x est False, sinon renvoie l'évaluation de y |
x = False; y = True; x and y renvoie False vu que x est False. Dans ce cas, Python ne va pas évaluer y car il sait que la partie gauche de l'expression 'and' est False ce qui implique que l'expression complète sera False quelles que soient les autres valeurs. C'est ce que l'on appelle short-circuit evaluation. |
|
or |
Boolean OR |
Si x est True, il renvoie True, sinon il rencoir l'évaluation de y |
x = True; y = False; x or y renvoie True. Short-circuit evaluation s'applique ici aussi. |
[edit] Raccourci pour les opérations mathématiques et les assignations
Il est fréquent de faire une opération mathématique avec une variable et ensuite affecter à nouveau le résultat de l'opération à la variable, et donc il y a un raccourci pour de telles expressions:
Vous pouvez écrire :
a = 2; a = a * 3
de cette façon :
a = 2; a *= 3
Notez que var = var operation expression devient var operation= expression.
[edit] Ordre D'Evaluation
Si vous avez une expression comme 2 + 3 * 4, fait-on d'abord l' addition ou la multiplication? Nos souvenirs de maths à l'école nous disent qu'il faut d'abord faire la multiplication. Cela signifie que l'opérateur de multiplication est prioritaire par rapport à l'opérateur d'addition.
Le tableau suivant donne les priorités pour Python, de la plus basse (least binding) à la plus élevée (most binding). Cela signifie que dans une expression donnée, Python va d'abord évaluer les opérateurs et expressions les plus bas dans ce tableau, avant ceux placés plus en haut.
Le tableau suivant, extrait de Le manuel Python de référence, est fourni afin d'être complet. Il est bien meilleur d'utiliser les parenthèses pour grouper correctement les opérateurs et les opérandes afin d'indiquer explicitement la précédence. Cela rend le programme plus lisible. Voyez Changer l'ordre des évaluations pour plus de détails.
|
Operator |
Description |
|---|---|
|
lambda |
Lambda Expression |
|
or |
Boolean OR |
|
and |
ET Booléen |
|
not x |
NON Booléen |
|
in, not in |
Test d'appartenance |
|
is, is not |
Tests d'identité |
|
<, <=, >, >=, !=, == |
Comparaisons |
|
| |
Bitwise OR |
|
^ |
Bitwise XOR |
|
& |
Bitwise AND |
|
<<, >> |
Shifts |
|
+, - |
Addition et soustraction |
|
*, /, //, % |
Multiplication, Division, Quotient Et Reste |
|
+x, -x |
Positif, Négatif |
|
~x |
Bitwise NOT |
|
** |
Exponentiation |
|
x.attribute |
Attribute reference |
|
x[index] |
Subscription |
|
x[index1:index2] |
Slicing |
|
f(arguments ...) |
Function call |
|
(expressions, ...) |
Binding or tuple display |
|
[expressions, ...] |
List display |
|
{key:datum, ...} |
Dictionary display |
Les opérateurs que nous n'avons pas encore rencontrés seront expliqués dans les chapitres suivants.
Les opérateurs avec la même précédence sont listés dans la même ligne dans le tableau ci-dessus. Par exemple, + et - ont la même précédence.
[edit] Changer L'Ordre Des Evaluations
Pour rendre les expressions plus lisibles, nous pouvons utiliser des parenthèses. Par exemple, 2 + (3 * 4) est bien plus facile à comprendre que 2 + 3 * 4 qui demande de connaître la précédence des opérateurs. Comme pour toute chose, les parenthèses doivent être utilisées à bon escient (n'en abusez pas) et ne doivent pas être redondantes comme dans (2 + (3 + 4)).
Il y a un autre avantage à utiliser des parenthèses - cela nous aide à changer l'ordre d'évaluation. Par exemple, si vous évaluer une addition avant une multiplication dans une expression, alors vous pouvez écrire quelque chose comme (2 + 3) * 4.
[edit] Associativité
Les opérateurs sont en général associés de gauche à droite, c'est-à-dire que les opérateurs avec la même précédence sont évalués de la gauche vers la droite. Par exemple, 2 + 3 + 4 est évalué comme (2 + 3) + 4. Certains opérateurs comme les opérateurs d'assignations ont une associativité de droite à gauche, c'est-à-dire que a = b = c est traité comme a = (b = c).
[edit] Expressions
Pour un affichage correct des caractères accentués, on lira avec profit http://sebsauvage.net/python/charsets_et_encoding.html
Depuis Python 3, l'utilisation du u précédant une chaîne de caractères n'est plus pris en charge. Par contre, si vous n'enregistrez pas votre fichier en UTF-8 (Unicode), spécifiez l'encodage. Les exemples de code de ce cours seront présentés en Unicode, pour permettre d'alléger le contenu.
Exemple:
#!/usr/bin/python # Fichier : expression.py length = 5 breadth = 2 area = length * breadth print('L\'aire est de', area) print('Le périmètre est de', 2 * (length + breadth))
Résultat:
$ python expression.py L'aire est de 10 Le périmètre est 14
Comment cela fonctionne :
La longueur et la largeur du rectangle sont rangés dans des variables du même nom (length et breadth). Nous les utilisons pour calculer la surface et le périmètre du rectangle avec l'aide des expressions. Nous rangeons le résultat de l'expression length * breadth dans la variable area et ensuite nous l'affichons en utilisant la fonction print. Dans le deuxième cas, nous utilisons directement la valeur de l'expression 2 * (length + breadth) dans la fonction print.
Notez également comment Python 'affiche joliment' le résultat. Même si nous n'avons pas ajouté un espace entre 'l'aire est de' et la variable area, Python l'insère pour nous afin d'avoir un joli affichage et le programme est bien plus lisible ainsi (vu que nous n'avons pas à nous inquiéter des espaces dans les chaînes de caractères utilisées à l'affichage). Voici un exemple de ce que fait Python pour rendre la vie du programmeur plus facile.
[edit] Récapitulatif
Nous avons vu comment utiliser les opérateurs, opérandes et expressions - ce sont les briques de base de n'importe quel programme. Ensuite, nous verrons comment les utiliser dans nos programmes avec des instructions.
Please add your comments by clicking on the 'Discussion' link in the left sidebar.