PyQuiz 17 - Comparadores y booleanos en Python | Quiz interactivo

PyQuiz 17 – Comparadores y booleanos en Python

El reto

x = 5
resultado = not (x > 3 and x < 4)
print(resultado)

¿Cuál es el resultado?

  • a) True
  • b) False
  • c) Error

Piensa tu respuesta antes de seguir leyendo…


Concepto: Comparadores y booleanos

Los operadores lógicos en Python (and, or, not) siguen un orden de precedencia estricto: primero se evalúa not, luego and, y finalmente or. Los paréntesis permiten alterar ese orden.

La evaluación es en cortocircuito: en una expresión con and, si el primer operando es False, Python no evalúa el segundo. Con or, si el primero es True, no evalúa el segundo. Esto puede importar cuando los operandos tienen efectos secundarios.

El operador not invierte el booleano: not True da False y not False da True. En el quiz, la expresión not (x > 3 and x < 4) primero evalúa el paréntesis interior y luego niega el resultado.

Paso a paso

  1. x = 5 — se asigna el entero 5 a la variable x.
  2. x > 3 — se evalúa: ¿es 5 mayor que 3? Sí. Resultado: True.
  3. x < 4 — se evalúa: ¿es 5 menor que 4? No. Resultado: False.
  4. True and False — el operador and devuelve True solo si ambos son True. Como uno es False, el resultado es False.
  5. not False — el operador not invierte el booleano. not False es True.
  6. print(resultado) — se imprime True.

Solución

Respuesta correcta: A) True

x > 3 es True, pero x < 4 es False. True and False = False. not False = True.

Sabías que...

El cortocircuito en and y or es muy útil para evitar errores. Por ejemplo, comprobar si una lista no está vacía antes de acceder a su primer elemento:

# Cortocircuito con and
lista = []
if lista and lista[0] > 0:  # lista es falsy, no evalúa lista[0]
    print('Positivo')
else:
    print('Lista vacía o primer elemento no positivo')  # esto se imprime

# not con expresiones complejas
x = 7
resultado = not (x > 5 or x < 2)
print(resultado)  # False: (True or False) = True, not True = False

# Tabla de verdad rápida
print(True and False)   # False
print(True or False)    # True
print(not True)         # False

Prueba tú mismo

Con x = 5, ¿qué devuelve not (x > 3 or x < 4)? Evalúalo paso a paso antes de comprobarlo.


Más PyQuizzes en elpythonista.com/pyquizzes

Tutorial relacionado: Tipos numéricos y booleanos

Compartir

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Publicar un comentario