¿Cuál es la diferencia entre '/' y '//' cuando se usan para dividir?

Resuelto Ray asked hace 15 años • 16 respuestas

¿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
Ray avatar Oct 09 '08 00:10 Ray
Aceptado

En Python 3.x, 5 / 2regresará 2.5y 5 // 2regresará 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 // 2regresará 2.0ya 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 .

Eli Courtwright avatar Oct 08 '2008 17:10 Eli Courtwright

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.

npnmodp avatar Jul 22 '2012 21:07 npnmodp

//implementa "división de piso", independientemente de su tipo. Así 1.0/2.0dará 0.5, pero ambos 1/2, 1//2y 1.0//2.0dará 0.

Consulte PEP 238: Cambio del operador de división para obtener más detalles.

Kena avatar Oct 08 '2008 17:10 Kena