Tema 10

10 ejercicios, de menos a más difícil

Intenta resolver cada ejercicio por tu cuenta antes de mirar la solución. Los niveles van de básico a reto.

1. Preséntate

Básico

Crea tres variables (nombre, edad y ciudad) y muestra una frase de presentación usando una f-string.

Ver solución
nombre = "Marta"
edad = 16
ciudad = "Granada"

print(f"Me llamo {nombre}, tengo {edad} años y vivo en {ciudad}")

2. Suma de dos números

Básico

Pide al usuario dos números y muestra su suma por pantalla. Recuerda convertir el resultado de input() a número.

Ver solución
a = int(input("Escribe el primer número: "))
b = int(input("Escribe el segundo número: "))

print(f"La suma es {a + b}")

3. Área de un rectángulo

Básico

Pide la base y la altura de un rectángulo (pueden tener decimales) y calcula su área.

Ver solución
base = float(input("Base: "))
altura = float(input("Altura: "))
area = base * altura

print(f"El área es {area}")

4. Par o impar

Medio

Pide un número entero e indica si es par o impar, usando el operador %.

Ver solución
numero = int(input("Escribe un número entero: "))

if numero % 2 == 0:
    print("Es par")
else:
    print("Es impar")

5. Nota media y aprobado

Medio

Pide tres notas, calcula la media y muestra "Aprobado" si la media es 5 o más, o "Suspenso" en caso contrario.

Ver solución
n1 = float(input("Nota 1: "))
n2 = float(input("Nota 2: "))
n3 = float(input("Nota 3: "))

media = (n1 + n2 + n3) / 3
print(f"Media: {media:.2f}")

if media >= 5:
    print("Aprobado")
else:
    print("Suspenso")

6. Suma del 1 al 100

Medio

Calcula la suma de todos los números enteros del 1 al 100 usando un bucle (sin usar la fórmula matemática directa).

Ver solución
suma = 0
for numero in range(1, 101):
    suma += numero

print(f"La suma es {suma}")

7. Tabla de multiplicar

Avanzado

Pide un número al usuario y muestra su tabla de multiplicar del 1 al 10, con el formato 3 x 1 = 3.

Ver solución
numero = int(input("¿De qué número quieres la tabla?: "))

for i in range(1, 11):
    print(f"{numero} x {i} = {numero * i}")

8. Lista de la compra

Avanzado

Crea una lista vacía. Pide al usuario productos uno a uno (escribiendo fin para terminar) y añádelos a la lista. Al terminar, muestra la lista completa y cuántos productos se han añadido.

Ver solución
compra = []

while True:
    producto = input("Producto (escribe 'fin' para terminar): ")
    if producto == "fin":
        break
    compra.append(producto)

print("Lista de la compra:", compra)
print(f"Has añadido {len(compra)} productos")

9. ¿Es primo?

Avanzado

Escribe una función es_primo(numero) que devuelva True si el número es primo y False si no lo es. Pruébala con varios números.

Ver solución
def es_primo(numero):
    if numero < 2:
        return False
    for divisor in range(2, numero):
        if numero % divisor == 0:
            return False
    return True

for n in [2, 4, 7, 15, 17]:
    print(f"{n} es primo: {es_primo(n)}")

10. Piedra, papel o tijera

Reto

Crea un juego de piedra, papel o tijera contra el ordenador. El ordenador elige una opción al azar (usa random.choice), el usuario escribe la suya por teclado, y el programa dice quién gana. Repite la partida mientras el usuario quiera seguir jugando.

Ver solución
import random

def elegir_ganador(jugador, maquina):
    if jugador == maquina:
        return "empate"
    gana_jugador = {
        "piedra": "tijera",
        "tijera": "papel",
        "papel": "piedra"
    }
    if gana_jugador[jugador] == maquina:
        return "jugador"
    return "maquina"

opciones = ["piedra", "papel", "tijera"]
seguir = "s"

while seguir == "s":
    jugador = input("Elige piedra, papel o tijera: ").lower()
    maquina = random.choice(opciones)
    print(f"La máquina eligió: {maquina}")

    resultado = elegir_ganador(jugador, maquina)
    if resultado == "empate":
        print("¡Empate!")
    elif resultado == "jugador":
        print("¡Ganaste!")
    else:
        print("Gana la máquina")

    seguir = input("¿Jugar otra vez? (s/n): ").lower()

print("¡Gracias por jugar!")
← 9. Chuleta de comandos