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ásicoCrea 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ásicoPide 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ásicoPide 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
MedioPide 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
MedioPide 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
MedioCalcula 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
AvanzadoPide 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
AvanzadoCrea 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?
AvanzadoEscribe 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
RetoCrea 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!")