17.12.2012 Views

Programmation PYTHON - Zenk - Security - Repository

Programmation PYTHON - Zenk - Security - Repository

Programmation PYTHON - Zenk - Security - Repository

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Les opérateurs<br />

Syntaxe du langage<br />

CHAPITRE 4<br />

Cette section présente l’ensemble des opérateurs disponibles en Python, ainsi que les<br />

règles qui les gèrent, comme l’ordre de traitement par l’interpréteur des éléments<br />

d’une opération.<br />

Opérateurs de base<br />

Les opérateurs de base que sont l’addition, la soustraction et la multiplication, fonctionnent<br />

de manière tout à fait classique en Python. La division est particulière : historiquement,<br />

cet opérateur fonctionne exactement comme celui du langage C. Ainsi,<br />

lorsque les deux opérandes de la division sont des entiers, le résultat est toujours un<br />

nombre entier, ce qui peut être relativement perturbant. Pour éviter ce problème, il<br />

est nécessaire de transformer l’un des opérandes en nombre à virgule flottante.<br />

Essais de division<br />

>>> 5/6<br />

0<br />

>>> (-1)/2<br />

-1<br />

>>> -1/2<br />

-1<br />

>>> -1/2.5<br />

-0.40000000000000002<br />

>>> -1/6<br />

-1<br />

>>> -float(1)/float(6)<br />

-0.16666666666666666<br />

>>> -float(1)/6<br />

-0.16666666666666666<br />

Cette particularité, qui existe depuis le début du langage a été souvent décriée par la<br />

communauté et par Guido van Rossum lui-même. Un des objectifs de la version 3 de<br />

Python est de voir disparaître ce fonctionnement au profit d’un principe plus classique.<br />

Ce changement étant relativement lourd pour le langage, il est introduit par<br />

petites étapes successives depuis la version 2.2.<br />

La première étape a consisté à introduire un nouvel opérateur noté // et voué à remplacer<br />

à terme l’actuel opérateur /. L’opérateur // est donc la division entière mais<br />

fonctionne de la même manière pour tous les types d’opérandes. Ainsi, 1.0 // 4.0<br />

est bien équivalent à 0.0, contrairement à 1.0 / 4.0 qui vaut 0.25.<br />

La deuxième étape offre la possibilité d’implémenter dès à présent le futur fonctionnement<br />

de la prochaine version 3.0, par le biais d’une directive d’importation spéciale.<br />

81

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!