¿Cuál es la diferencia entre '/' y '//' cuando se usan para dividir?
¿Hay algún beneficio en usar uno sobre el otro? En Python 2, ambos parecen arrojar los mismos resultados:
>>> 6/3
2
>>> 6//3
2
En Python 3.x, 5 / 2
regresará 2.5
y 5 // 2
regresará 2
. La primera es división de punto flotante y la segunda es división de piso , a veces también llamada división entera .
En Python 2.2 o posterior en la línea 2.x, no hay diferencia para los números enteros a menos que realice a from __future__ import division
, lo que hace que Python 2.x adopte el comportamiento 3.x.
Independientemente de la futura importación, 5.0 // 2
regresará 2.0
ya que esa es la división de piso resultado de la operación.
Puede encontrar una descripción detallada en PEP 238: Cambio del operador de división .
Aclaración de Python 2.x:
Para aclarar para la línea Python 2.x, /
no es división de piso ni división verdadera.
/
es división de piso cuando ambos argumentos son int
, pero es división verdadera cuando cualquiera de los argumentos es float
.
//
implementa "división de piso", independientemente de su tipo. Así
1.0/2.0
dará 0.5
, pero ambos 1/2
, 1//2
y 1.0//2.0
dará 0
.
Consulte PEP 238: Cambio del operador de división para obtener más detalles.