HOWTO · Python
Qué significa // en Python
Este tutorial demuestra lo que // significa en python
En esta página
En Python, // es el operador de división con redondeo hacia menos infinito: divide el operando izquierdo por el derecho y redondea el cociente hacia abajo, hacia el menos infinito. El tipo del resultado depende de los operandos. Dos enteros producen un int; si alguno de los operandos es un float, el resultado es un float. El operador no se limita a eliminar el resto ni siempre devuelve un entero.
Qué significa la división con redondeo hacia menos infinito en Python
La división con redondeo hacia menos infinito busca el mayor entero menor o igual que el cociente matemático y luego representa ese valor con el tipo de resultado que corresponda a los operandos. Por ejemplo, 10 / 3 es aproximadamente 3.333, así que 10 // 3 es 3. Esto difiere del truncamiento, que descarta la parte fraccionaria acercando el resultado a cero. La diferencia importa cuando el cociente es negativo.
Ejecuta este ejemplo:
El código y las etiquetas o salidas visibles de esta sección se mantienen en inglés.
quotient = 10 // 3
print(quotient, type(quotient).__name__)
Cómo se comporta // con enteros, floats y números negativos
Con operandos enteros, // produce un cociente entero. Si uno de los operandos es un float, el cociente redondeado hacia abajo es un float, incluso cuando su valor no tiene parte fraccionaria. El signo del cociente también importa: la división con redondeo hacia menos infinito se dirige hacia el menos infinito, por lo que un cociente negativo no entero se vuelve más negativo.
El código y las etiquetas o salidas visibles de esta sección se mantienen en inglés.
print(7 // 2)
print(7.0 // 2)
print(-7 // 2)
Para -7 // 2, el cociente matemático es -3.5, y redondearlo hacia abajo da -4. El truncamiento hacia cero daría -3, que corresponde a una operación distinta. Al trabajar con floats, sigue aplicándose la representación habitual de punto flotante; // define la dirección del redondeo, pero no es una solución general a las limitaciones de precisión de punto flotante.
Cuándo usar // en lugar de /
Usa // cuando necesites contar unidades completas, como cajas, grupos o páginas enteras. Si distribuyes 25 artículos en cajas con capacidad para 6 cada una, el cociente indica cuántas cajas completas puedes llenar. El operador módulo % da la cantidad de artículos sobrantes; para operandos enteros, // y % describen conjuntamente el cociente y el resto.
El código y las etiquetas o salidas visibles de esta sección se mantienen en inglés.
total_items = 25
items_per_box = 6
full_boxes = total_items // items_per_box
leftover_items = total_items % items_per_box
print(full_boxes, leftover_items)
Para la división ordinaria, usa /: devuelve el cociente como float, incluso si ambos valores de entrada son enteros. Usa // cuando el resultado deseado sea el cociente redondeado hacia abajo. No lo elijas solo para que un resultado float parezca un entero, ya que si uno de los operandos es un float, el resultado también será un float.
Preguntas frecuentes sobre la división con redondeo hacia menos infinito en Python
¿// siempre devuelve un entero? No. Los operandos enteros producen un int, mientras que una operación con un operando float produce un float.
¿Cómo trata los números negativos? Redondea el cociente hacia abajo, hacia el menos infinito. Por eso, -7 // 2 da -4, en vez del -3 que resultaría del truncamiento hacia cero.
¿En qué se diferencia // de /? El operador / realiza una división ordinaria y devuelve un float. El operador // redondea el cociente hacia abajo; el tipo del resultado depende de los operandos.
¿Cuándo resulta útil la división con redondeo hacia menos infinito? Es útil para contar unidades completas, como cajas o grupos. Si el cálculo requiere un resultado fraccionario, usa /.