PyQuiz 44 - División entera negativa en Python | Quiz interactivo

PyQuiz 44 – División entera negativa en Python

El reto

print(-7 // 2)

¿Cuál es el resultado?

  • a) -3
  • b) -4
  • c) -3.5

Piensa tu respuesta antes de seguir leyendo…


Concepto: División entera negativa

El operador de división entera // en Python devuelve el resultado redondeado hacia menos infinito (floor division), no hacia cero. Esto marca una diferencia importante con los números negativos.

Para -7 // 2: la división exacta es -3.5. Redondear hacia menos infinito significa buscar el entero más grande que sea menor o igual que -3.5, que es -4 (no -3). En lenguajes como C o Java, la división entera trunca hacia cero (daría -3), pero Python usa el comportamiento matemáticamente más coherente del suelo.

print(7 // 2)    #  3  — suelo de 3.5
print(-7 // 2)   # -4  — suelo de -3.5 (NO -3)
print(7 // -2)   # -4  — suelo de -3.5
print(-7 // -2)  #  3  — suelo de 3.5

Paso a paso

  1. -7 // 2 — Se realiza la división entera de -7 entre 2.
  2. La división exacta sería -7 / 2 = -3.5.
  3. El operador // aplica la función suelo (floor): el entero más grande que sea ≤ -3.5.
  4. Entre -4 y -3, el más grande que sigue siendo ≤ -3.5 es -4.
  5. print(-7 // 2) — Se imprime -4.

📥 Llévate el cheatsheet de Python (gratis)

PDF de 6 páginas con lo esencial: tipos, condicionales, bucles, estructuras de datos, funciones y los errores que más vas a cometer. Para tener al lado mientras programas.

Sin spam. Te apuntas a la lista, descargas el cheatsheet y recibes contenido de Python cada semana.

Solución

Respuesta correcta: B) -4

// redondea hacia menos infinito (floor). -7/2 = -3.5, floor(-3.5) = -4.

Sabías que…

El operador módulo % en Python también sigue la lógica del suelo y está relacionado con // mediante la identidad a == (a // b) * b + (a % b):

# Verificación de la identidad
a, b = -7, 2
q = a // b   # -4
r = a % b    # 1  (NO -1, como en algunos otros lenguajes)
print(q * b + r)  # (-4)*2 + 1 = -8 + 1 = -7

# En Python, el módulo siempre tiene el signo del divisor
print(-7 % 2)   #  1  (signo positivo como el divisor 2)
print(7 % -2)   # -1  (signo negativo como el divisor -2)

# math.trunc() para truncar hacia cero (como C):
import math
print(math.trunc(-7 / 2))  # -3

Prueba tú mismo

Sin ejecutar el código, ¿cuál es el resultado de -10 // 3? ¿Y el de 10 // -3? Recuerda: siempre se redondea hacia menos infinito.


Más PyQuizzes en elpythonista.com/pyquizzes

Tutorial relacionado: Operadores y expresiones

¿Quieres aprender Python en orden, no a saltos?

Esto que has leído es solo una pieza. En El Pythonista lo verás todo encadenado: 11 módulos, 37+ horas de vídeo, 734 actividades y un proyecto real (MovieTracker) que crece contigo desde la primera variable hasta el deploy a producción.

Ver el curso completo →

37+ horas · 734 actividades · Proyecto real · Acceso de por vida · 14 días de garantía

Compartir