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.

More about

Page
Personal tools
COLLECTION
Collection

Python fr:Opérateurs Et Expressions

From Notes

Jump to: navigation, search

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
>>>
Les Opérateurs Et Leur utilisation

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 Precedence

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.