Y a-t-il un avantage à utiliser l'un plutôt que l'autre ? Dans Python 2, les deux semblent retourner les mêmes résultats :
>>> 6/3
2
>>> 6//3
2
Y a-t-il un avantage à utiliser l'un plutôt que l'autre ? Dans Python 2, les deux semblent retourner les mêmes résultats :
>>> 6/3
2
>>> 6//3
2
Dans Python 3.x, 5 / 2
retournera 2.5
y 5 // 2
retournera 2
. La première est une division en virgule flottante et la seconde est une division en virgule flottante. division du plancher parfois aussi appelé division de nombres entiers .
Dans Python 2.2 ou dans les versions ultérieures de la ligne 2.x, il n'y a pas de différence pour les entiers, sauf si vous effectuez un from __future__ import division
ce qui fait que Python 2.x adopte le comportement de 3.x.
Indépendamment de l'importation future, 5.0 // 2
retournera 2.0
puisque c'est le résultat de la division du plancher de l'opération.
Vous trouverez une description détaillée à l'adresse suivante PEP 238 : Changer l'opérateur de division .
Édité : Vous pouvez "corriger" la division depuis Python 2.2 ! (Il suffit de lire le PEP lié)
Également python -Qnew
. d'autres options de division : -Qold
(par défaut), -Qwarn
, -Qwarnall
Il convient de souligner que 5.0 / 2
renvoie à 2.5
dans toutes les versions, tout comme 5 / 2.0
- l'ancien comportement n'est différent que lorsque les deux opérandes sont int
.
//
met en œuvre la "division du sol", quel que soit votre type. Donc 1.0/2.0
donnera 0.5
mais les deux 1/2
, 1//2
y 1.0//2.0
donnera 0
.
Voir PEP 238 : Changer l'opérateur de division pour les détails.
C'est une bonne réponse. Le lien PEP est utile. Vous pouvez également envisager d'utiliser math.floor()
o math.fmod()
si vous n'êtes pas sûr de ce qui se passe avec les opérateurs unaires .
Comme tout le monde a déjà répondu, //
est la division du plancher.
Ce qui est important, c'est que //
est sans ambiguïté une division de plancher, dans toutes les versions de Python à partir de la 2.2, y compris les versions 3.x de Python.
Le comportement de /
peut changer en fonction de :
__future__
Importer ou non (module-local)-Q old
o -Q new
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
3 votes
Veuillez vous référer à Le problème de la division des nombres entiers pour la raison de l'introduction de la
//
pour effectuer une division entière.