Bibliotecas estándar comunes de Python

PythonBeginner
Practicar Ahora

Introducción

En un mundo marítimo encantado lleno de misterio y magia, un mundo donde los marineros navegan no solo por las aguas peligrosas sino también por los flujos arcánicos de la magia, existe una leyenda conocida por sus formidable habilidades tanto en la navegación como en la hechicería: el infame Capitán Pirata Magallanes el Encantado. La capacidad de Magallanes para aprovechar los poderes de las Bibliotecas Estándar Comunes de Python ha sido el pilar de su éxito para superar a los piratas rivales y descubrir tesoros escondidos.

Como miembro de la tripulación de Magallanes, tu misión es dominar el mismo conjunto de poderosas bibliotecas de Python para ayudar a navegar tu barco a través de una serie de desafíos. El destino del El Ataud Encantado, el barco más temido de las altas marinas, está en tus manos. ¿Acogerás el código de Python y convertirte en un activo invaluable para el Capitán Magallanes? La aventura que se avecina probará tus habilidades y astucia en igual medida.

En este paso, te encomiendan trazar el rumbo para tu próximo viaje. Calcula la mejor ruta utilizando el módulo math y estima la hora de llegada con la ayuda del módulo datetime.

Primero, abre un script llamado chart_course.py en el directorio ~/project. Este script calculará la distancia a tu próximo destino basado en coordenadas de latitud y longitud.

import math

## Coordenadas de tu ubicación actual y el destino (en grados)
current_location = (0, 0)
destination = (10, 10)

def calculate_distance(loc1, loc2):
    ## Convierte grados a radianes
    lat1, lon1 = map(math.radians, loc1)
    lat2, lon2 = map(math.radians, loc2)

    ## Fórmula de Haversine
    dlon = lon2 - lon1
    dlat = lat2 - lat1
    a = math.sin(dlat/2)**2 + math.cos(lat1) * math.cos(lat2) * math.sin(dlon/2)**2
    c = 2 * math.asin(math.sqrt(a))
    r = 6371  ## Radio de la Tierra en kilómetros
    return c * r

## Estima la distancia
distance = calculate_distance(current_location, destination)
print(f"La distancia al destino es {distance:.2f} kilómetros.")

Ahora, estima la hora de llegada utilizando datetime:

from datetime import datetime, timedelta

## Asume una velocidad media de 10 km/h
average_speed = 10

## Calcula la hora de llegada
time_to_destination = timedelta(hours=distance / average_speed)
arrival_time = datetime.now() + time_to_destination

print(f"Estimada hora de llegada: {arrival_time.strftime('%Y-%m-%d %H:%M:%S')}")

Ejecuta tu script ejecutando el siguiente comando en tu terminal:

python ~/project/chart_course.py

La información siguiente debe mostrarse en tu terminal:

La distancia al destino es 1568.52 kilómetros.
Estimada hora de llegada: 2024-01-04 09:40:36

Manejar el Inventario con Collections

El Capitán Magallanes mantiene su inventario ordenado y accesible con la ayuda del módulo collections de Python. Tu misión es organizar los datos de los suministros del barco utilizando un Counter del módulo collections.

Abre un script llamado manage_inventory.py en el directorio ~/project:

from collections import Counter

## Lista de inventario
inventory = ['potion', 'dagger', 'potion', 'gold coin', 'gold coin', 'ruby']

inventory_counter = Counter(inventory)

## Muestra la cantidad de inventario
for item, count in inventory_counter.items():
    print(f"{item.title()}: {count}")

## Agrega elementos a tu inventario
loot = ['gold coin', 'emerald', 'potion']
inventory_counter.update(loot)

print("\nInventario actualizado:")
for item, count in inventory_counter.items():
    print(f"{item.title()}: {count}")

Para administrar el inventario, ejecuta:

python ~/project/manage_inventory.py

La información siguiente debe mostrarse en tu terminal:

Potion: 2
Dagger: 1
Gold Coin: 2
Ruby: 1

Inventario actualizado:
Potion: 3
Dagger: 1
Gold Coin: 3
Ruby: 1
Emerald: 1

Resumen

En este laboratorio, te transportaste al mundo de los hechizos y las aventuras marinas. Diseñamos escenarios atractivos que aprovecharon las Bibliotecas Estándar Comunes de Python como herramientas para navegar por los retos, de manera similar a como lo haría el Capitán Magallanes en sus viajes. Has aprendido a realizar cálculos geográficos con math y datetime, a manejar un inventario de objetos mágicos con collections, y seguirás trabajando con sistemas de archivos y otras tareas comunes con bibliotecas estándar adicionales.

A medida que completaste cada tarea, no solo adquiriste destreza en el uso de estas bibliotecas, sino que también contribuyaste al viaje exitoso de El Ataud Encantado. Estos ejercicios establecen las bases para ser un programador de Python efectivo, capaz de abordar problemas prácticos con creatividad y eficiencia. ¡Que los vientos del conocimiento sigan llenando tus velas!