¿Qué significa el símbolo // en Python?: división sin decimales

| Última modificación: 22 de octubre de 2024 | Tiempo de Lectura: 3 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

Los operadores en Python son una parte fundamental en el aprendizaje de este lenguaje. Algunos te serán muy conocidos, como los operadores aritméticos de suma (+), resta (-) o multiplicación (*); operadores lógicos como el or, and o not, entre otros tantos. Otros operadores, como el // en Python, no son tan comunes, pero son igualmente importantes para desarrollar algunas operaciones.

Por eso, el día de hoy queremos hablarte de uno de esos operadores que no muchos conocen, pero que deberían, porque puede llegar a ser de gran utilidad. Te estamos hablando del símbolo // en Python.

// en Python

¿Qué significa el símbolo // en Python?

El símbolo // en Python es conocido con el nombre de operador de división entera o, en inglés, floor division. Se diferencia del operador de división tradicional, el /, porque este no devuelve un número decimal flotante, sino que realiza una división y luego redondea el resultado hacia abajo, al número entero más cercano.

Por ejemplo, si divides 7 entre 3 usando /, obtendrás un resultado de 2.3333… Pero si usas //:

resultado = 7 // 3
print(resultado)

La salida será:

2

Esto se debe a que el // en Python descarta cualquier decimal y redondea el número hacia abajo, independientemente de cuán cercano esté al siguiente entero.

Aplicaciones del // en Python

🔴 ¿Quieres Aprender a Programar con Python? 🔴

Descubre el Full Stack Jr. Bootcamp - Aprende a Programar desde Cero de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada

👉 Prueba gratis el Bootcamp Aprende a Programar desde Cero por una semana

Algunas de las aplicaciones que tiene el // en python son:

  1. División simple:
print(10 // 4)
# Salida: 2

En este caso, 10 / 4 daría como resultado 2.5, pero 10 // 4 te devuelve 2, el número entero más cercano hacia abajo.

  1. División con números negativos:
print(-10 // 4)
# Salida: -3

Aquí, el operador // en Python sigue redondeando hacia abajo, por lo que el resultado será -3, alejándose del cero.

  1. División con decimales: Aunque generalmente se usa con enteros, el operador // también funciona con números decimales:
print(9.0 // 2.5)
# Salida: 3.0

El resultado es un número flotante, pero sin decimales, redondeado hacia abajo.

El símbolo // y math.floor()

Python nos ofrece una función llamada math.floor() en la que se redondea cualquier número flotante hacia abajo. Curiosamente, el operador // en python funciona parecido. De hecho, de manera interna, // en python usa el comportamiento de math.floor() para calcualr los resultados.

Veamos un ejemplo:

import math

num1 = 15
num2 = 4

division_entera = num1 // num2
math_floor = math.floor(num1 / num2)

print(division_entera) # Salida: 3
print(math_floor) # Salida: 3

Ambos métodos devuelven 3, porque // simplemente redondea hacia abajo de la misma manera que lo hace math.floor().

¿Qué pasa detrás de las cortinas? El método floordiv()

El operador // en Python no es un truco matemático de manera exclusiva. Además de usar el comportamiento de math.floor(), cuando usas python se llama de manera interna a un método especial llamado __floordiv__(), el cual se encarga de hacer el trabajo de calcular la división entera y redondear hacia abajo.

Inclusive puedes usar este método de manera directa, en vez de hacer uso del operador // en python, aunque es más común y legible usar el operador:

resultado = 15 // 4
resultado_floordiv = 15.__floordiv__(4)

print(resultado) # Salida: 3
print(resultado_floordiv) # Salida: 3

Ambos ejemplos devuelven el mismo resultado. Así que, aunque es bueno saber que existe __floordiv__(), es mucho más sencillo usar // en tu código del día a día.

Diferencias entre // y /

Ya lo mencionamos, pero para tener claridad, hagamos un compendio con las principales diferencias entre el / y el // en python:

  • / devuelve un número flotante (decimales), mientras que // devuelve solo la parte entera del resultado.
  • // en python redondea siempre hacia abajo, incluso si el número es negativo o muy cercano al siguiente entero.
  • Ambos operadores son útiles en contextos diferentes: / es mejor cuando necesitas precisión decimal, mientras que // es ideal para cálculos que solo requieren la parte entera del resultado.

Si quieres aprender a programar fácil y rápido, no dudes en inscribirte en el bootcamp de programación desde cero que tenemos para ti. Este te preparará para entrar al mundo laboral. ¡No desaproveches esta gran oportunidad!

Ramón Maldonado

Full Stack Developer y Responsable de Formación base en KeepCoding.

Posts más leídos

¡CONVOCATORIA ABIERTA!

Aprende a Programar desde Cero

Full Stack Jr. Bootcamp

Apúntate y consigue uno de los perfiles más demandados con Python en solo 4 meses.