Uso del editor en línea

Para realizar las actividades, utiliza el Online Python IDE disponible en:

https://www.online-python.com/

Instrucciones

  1. Abre el enlace en tu navegador.
  2. Borra el código que aparece por defecto.
  3. Copia y pega el código del ejercicio.
  4. Presiona el botón Run para ejecutarlo.
  5. Observa el resultado en la consola (parte inferior).

Recomendaciones

  • Modifica los valores del código para ver cómo cambian los resultados.
  • Prueba diferentes entradas cuando el programa lo solicite.
  • Analiza qué hace cada línea antes de ejecutar.
  • Resuelve las actividades propuestas modificando el código base.

El objetivo no es solo ejecutar el programa, sino entender cómo funciona y experimentar con él.

🟢 Nivel básico (variables y operaciones)

1. Tiempo de viaje a la Luna

Calcula cuánto tarda una nave en llegar a la Luna.

Datos:

  • Distancia promedio: 384,400 km
  • Velocidad: dada por el usuario

Ejercicio:

distancia = 384400  # km
velocidad = float(input("Ingresa la velocidad de la nave (km/h): "))

tiempo = distancia / velocidad

print("Tiempo estimado:", tiempo, "horas")

2. Combustible restante

Calcula cuánto combustible queda después de un viaje.

combustible_inicial = float(input("Combustible inicial (litros): "))
consumo = float(input("Consumo por hora (litros): "))
horas = float(input("Horas de viaje: "))

restante = combustible_inicial - (consumo * horas)

print("Combustible restante:", restante)

🟡 Nivel básico-intermedio (condicionales)

3. ¿La nave puede despegar?

Se necesita al menos 500 litros de combustible.

combustible = float(input("Cantidad de combustible: "))

if combustible >= 500:
    print("La nave puede despegar")
else:
    print("No hay suficiente combustible")

4. Clasificación de misión

Según la distancia:

distancia = float(input("Distancia de la misión (km): "))

if distancia < 100000:
    print("Órbita terrestre")
elif distancia < 400000:
    print("Misión lunar")
else:
    print("Misión profunda")

🟠 Nivel intermedio (ciclos)

5. Cuenta regresiva de lanzamiento

Simula una cuenta regresiva.

for i in range(10, 0, -1):
    print(i)

print("¡Despegue!")

6. Registro de etapas del cohete

El usuario ingresa etapas hasta escribir "fin".

etapa = ""

while etapa != "fin":
    etapa = input("Ingresa una etapa (o 'fin' para terminar): ")
    if etapa != "fin":
        print("Etapa registrada:", etapa)

🔵 Nivel intermedio (funciones)

7. Calcular gravedad en la Luna

La gravedad lunar es ~1.62 m/s².

def peso_en_luna(peso_tierra):
    return peso_tierra * (1.62 / 9.81)

peso = float(input("Peso en la Tierra (kg): "))
print("Peso en la Luna:", peso_en_luna(peso))

8. Velocidad de escape (simplificada)

Usa una fórmula simplificada:

def velocidad_escape(gravedad, radio):
    return (2 * gravedad * radio) ** 0.5

g = 1.62  # gravedad lunar
radio = 1737  # km (radio de la Luna)

print("Velocidad de escape aproximada:", velocidad_escape(g, radio))

9. Simulador simple de misión Artemis (integración)

Combina todo lo anterior:

distancia = 384400
velocidad = float(input("Velocidad (km/h): "))
combustible = float(input("Combustible disponible: "))
consumo = 50  # litros por hora

tiempo = distancia / velocidad
combustible_necesario = consumo * tiempo

print("Tiempo estimado:", tiempo)

if combustible >= combustible_necesario:
    print("Misión posible")
else:
    print("Combustible insuficiente")

🔴 Nivel avanzado (clases)

10. Clase Astronauta

Crea una clase que represente a un astronauta de una misión Artemis.

class Astronauta:
    def __init__(self, nombre, edad, mision):
        self.nombre = nombre
        self.edad = edad
        self.mision = mision

    def mostrar_info(self):
        print("Nombre:", self.nombre)
        print("Edad:", self.edad)
        print("Misión:", self.mision)

astro1 = Astronauta("Diana", 35, "Artemis II")
astro1.mostrar_info()

Actividad

  1. Crea otro astronauta.
  2. Cambia el nombre de la misión.
  3. Agrega un atributo llamado especialidad.

11. Clase Cohete

Representa un cohete con combustible y capacidad de despegue. Usando métodos que toman decisiones.

class Cohete:
    def __init__(self, nombre, combustible):
        self.nombre = nombre
        self.combustible = combustible

    def mostrar_estado(self):
        print("Cohete:", self.nombre)
        print("Combustible:", self.combustible, "litros")

    def puede_despegar(self):
        if self.combustible >= 1000:
            print("El cohete puede despegar")
        else:
            print("El cohete no puede despegar")

cohete1 = Cohete("SLS", 1200)
cohete1.mostrar_estado()
cohete1.puede_despegar()

Actividad

Modifica el programa para que:

  • el combustible se ingrese por teclado
  • el método puede_despegar() devuelva True o False en vez de imprimir directamente

12. Clase MisionArtemis

Crea una misión con nombre, distancia y velocidad; usando una clase para resolver cálculos simples.

class MisionArtemis:
    def __init__(self, nombre, distancia, velocidad):
        self.nombre = nombre
        self.distancia = distancia
        self.velocidad = velocidad

    def calcular_tiempo(self):
        return self.distancia / self.velocidad

    def mostrar_resumen(self):
        print("Misión:", self.nombre)
        print("Distancia:", self.distancia, "km")
        print("Velocidad:", self.velocidad, "km/h")
        print("Tiempo estimado:", self.calcular_tiempo(), "horas")

mision1 = MisionArtemis("Artemis III", 384400, 8000)
mision1.mostrar_resumen()

Actividad

  1. Crea una segunda misión.
  2. Compara cuál tarda menos.
  3. Muestra un mensaje si el tiempo es mayor a 50 horas.

13. Clase ModuloLunar

Simula un módulo lunar que puede aterrizar o no según su combustible.

class ModuloLunar:
    def __init__(self, nombre, combustible):
        self.nombre = nombre
        self.combustible = combustible

    def aterrizar(self):
        if self.combustible >= 300:
            print(self.nombre, "puede aterrizar en la Luna")
        else:
            print(self.nombre, "no tiene suficiente combustible para aterrizar")
modulo1 = ModuloLunar("Orion", 250)
modulo1.aterrizar()

Actividad

Agregar:

  • un método recargar_combustible(cantidad)
  • un método gastar_combustible(cantidad)

14. Relación entre clases: misión y astronauta

Muestra de cómo se relacionan objetos.

class Astronauta:
    def __init__(self, nombre):
        self.nombre = nombre

class Mision:
    def __init__(self, nombre):
        self.nombre = nombre
        self.tripulacion = []

    def agregar_astronauta(self, astronauta):
        self.tripulacion.append(astronauta)

    def mostrar_tripulacion(self):
        print("Misión:", self.nombre)
        print("Tripulación:")
        for astronauta in self.tripulacion:
            print("-", astronauta.nombre)

a1 = Astronauta("Elena")
a2 = Astronauta("Marco")

m1 = Mision("Artemis IV")
m1.agregar_astronauta(a1)
m1.agregar_astronauta(a2)

m1.mostrar_tripulacion()

Actividades

  1. Agrega 3 astronautas más.
  2. Muestra cuántos astronautas hay en la misión.
  3. Imprime un mensaje si hay más de 4 tripulantes.

15. Simulador básico de misión Artemis

Une varias clases en un solo ejercicio.

class Cohete:
    def __init__(self, nombre, combustible):
        self.nombre = nombre
        self.combustible = combustible

    def listo_para_despegue(self):
        return self.combustible >= 1000

class Astronauta:
    def __init__(self, nombre):
        self.nombre = nombre

class Mision:
    def __init__(self, nombre, cohete):
        self.nombre = nombre
        self.cohete = cohete
        self.tripulacion = []

    def agregar_astronauta(self, astronauta):
        self.tripulacion.append(astronauta)

    def iniciar_mision(self):
        print("Misión:", self.nombre)
        print("Cohete:", self.cohete.nombre)
        print("Tripulación:", len(self.tripulacion))

        if self.cohete.listo_para_despegue():
            print("La misión puede iniciar")
        else:
            print("La misión no puede iniciar por falta de combustible")

cohete = Cohete("SLS", 1500)
mision = Mision("Artemis V", cohete)

mision.agregar_astronauta(Astronauta("Ana"))
mision.agregar_astronauta(Astronauta("Luis"))

mision.iniciar_mision()