Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Ejercicios: El Centro de Cálculo

Pon a prueba tu lógica y tus matemáticas.


Ejercicio 6.1: La Calculadora de Descuentos

Crea un script descuentos.py.

  1. Define una variable precio = 100 y descuento = 0.2 (20%).
  2. Calcula el monto ahorrado (precio * descuento).
  3. Calcula el precio final (precio - monto_ahorrado).
  4. Imprime ambos valores con mensajes explicativos usando f-strings, como las que ya viste en el Cap. 4.

Pista 1: piensa en qué operación convierte un porcentaje en una cantidad de dinero concreta, sin necesidad de dividir entre 100.

Pista 2: multiplica el precio por el descuento para obtener el ahorro y muéstralo dentro de una f-string; la interpolación con {} hace el resto.

Ejercicio 6.2: ¿Par o Impar? (Módulo)

El operador módulo % es más útil de lo que parece al principio. No divide: te dice lo que sobró de la división, y ese sobrante es información.

  1. Define un número cualquiera en una variable.
  2. Usa el módulo 2 (numero % 2) para ver qué sobra.
    • Si sobra 0, es par.
    • Si sobra 1, es impar.
  3. Imprime el resultado del módulo.

Pista 1: el resultado de % es el residuo, no el cociente; compáralo con 0 usando == para decidir.

Pista 2: un número es par cuando numero % 2 == 0 da True; cualquier otro residuo significa que es impar.

Ejercicio 6.3: El Portero Lógico

Estás programando el acceso a la zona de montacargas del almacén. Las reglas del inspector no son negociables:

  • Debe medir más de 1.5 metros.
  • O debe tener más de 12 años de antigüedad certificada.
  • Y ADEMÁS, NO debe tener restricción médica activa.

Escribe la expresión lógica completa en una sola línea para: altura = 1.6, antiguedad = 10, restriccion = False. ¿Pasa o no pasa?

Pista 1: traduce cada regla en una comparación booleana separada antes de combinarlas con and/or.

Pista 2: agrupa entre paréntesis las dos condiciones del “o” para que se resuelvan antes que el “y”, y niega la restricción con not.

Ejercicio 6.4: Manipulación de Texto (in)

Crea una variable frase = "El veloz murciélago hindú comía feliz cardillo y kiwi". El operador in hace algo concreto y valioso: busca sin que tengas que recorrer la cadena letra por letra.

  1. Escribe un código que imprima True si la palabra “murciélago” está en la frase.
  2. Escribe un código que imprima True si la palabra “manzana” NO está en la frase.

Pista 1: in funciona directo sobre cadenas de texto, sin bucles ni índices manuales.

Pista 2: usa in para comprobar si la primera palabra está en la frase, y not in para la segunda; ambos operadores funcionan directo sobre la cadena.

Ejercicio 6.5: Asignación Rápida

Empiezas con puntos = 10. Los operadores de asignación compuesta no son azúcar sintáctico caprichoso; expresan intención de forma directa. Sin reiniciar la variable:

  1. Súmale 5 (usa +=).
  2. Multiplícalo por 2 (usa *=).
  3. Réstale 4 (usa -=).
  4. Imprime el resultado final. ¿Cuánto da?

Pista 1: hay una forma más corta de escribir variable = variable + algo que hace la operación y la reasignación en un solo paso.

Pista 2: aplica los tres operadores compuestos en el orden dado, cada uno sobre la misma variable; recuerda que +=, *= y -= combinan operación y reasignación en un paso. El orden importa porque cada paso parte del resultado anterior.

Ejercicio 6.6: El Valor por Defecto (Cortocircuito)

Recuerda que or devuelve uno de los valores, no solo True/False.

  1. Guarda un texto en la variable entrada (empieza con "Ana").
  2. Calcula nombre = entrada or "Anónimo" e imprime nombre.
  3. Cambia entrada a "" (cadena vacía) y repite. ¿Qué imprime ahora?
  4. Explica en un comentario por qué la cadena vacía activó el reemplazo.

Pista 1: or no siempre da True o False; devuelve el primer valor “verdadero” que encuentra, o el último si ninguno lo es.

Pista 2: una cadena vacía "" cuenta como “falsa” en Python, así que entrada or "Anónimo" cae al segundo valor apenas entrada está vacía.

Ejercicio 6.7: ¿La Misma Caja? (is e is None)

  1. Crea pedido = None (aún no llega nada) y comprueba con is None si hay pedido; imprime el resultado.
  2. Asigna pedido = ["Tornillos"] y repite la comprobación.
  3. Crea a = [1, 2] y b = [1, 2]. Antes de imprimir nada, predice: ¿qué da a == b? ¿Y a is b? Anota tu respuesta, luego imprime ambos y compara. Explica en un comentario por qué dan distinto.
  4. Ahora c = a. Predice qué da a is c antes de imprimirlo. ¿Por qué este sí?

Pista 1: is no compara si dos valores “se ven igual”; compara si son literalmente el mismo objeto en memoria.

Pista 2: dos listas con el mismo contenido son iguales (==) pero no son el mismo estante (is), salvo que una sea alias directo de la otra; prueba a is b y luego a is c una junto a la otra, la diferencia entre ambas te muestra la regla completa.

¡Ojo!: confundir == con is. == compara si los valores son iguales; is compara si son el mismo objeto en memoria. Usa == para comparar contenido y reserva is casi exclusivamente para is None.

Ejercicio 6.8: El Orden de la Maquinaria (Precedencia)

Sin ejecutar nada todavía, predice en un comentario el resultado de cada línea. Luego imprime y compara:

  1. 2 + 3 * 4
  2. (2 + 3) * 4
  3. 10 - 4 - 3 (¿izquierda a derecha o derecha a izquierda?)
  4. True or False and False (¿quién gana, or o and?)
  • Reto: si a = True y b = False, ¿qué resultado da not (a or b)? Razónalo en voz alta antes de probarlo.

Moraleja esperada: cuando dudes de la precedencia, los paréntesis son gratis.

Pista 1: la multiplicación y la división se evalúan antes que la suma y la resta, igual que en la aritmética normal que ya conoces.

Pista 2: entre operadores lógicos, and se evalúa antes que or; si la precedencia no coincide con lo que quieres decir, los paréntesis siempre pueden forzar el orden.


Soluciones: en el Apéndice B está la solución de cada ejercicio. Inténtalo por tu cuenta antes de consultarla.


Ya sabes comparar y combinar condiciones. En el siguiente capítulo esas comparaciones cobran vida: tu programa empezará a tomar decisiones y a bifurcar su camino según lo que encuentre.