Introdução
Num mundo marítimo encantado, repleto de mistério e magia, um mundo onde os navegantes navegam não apenas pelas águas traiçoeiras, mas também pelos fluxos arcanos da magia, existe uma lenda conhecida por suas habilidades formidáveis tanto na navegação quanto na feitiçaria – o notório Capitão Pirata Magellan, o Enfeitiçado. A capacidade de Magellan de aproveitar os poderes das Bibliotecas Padrão Comuns do Python (Python's Common Standard Libraries) tem sido a pedra angular de seu sucesso em enganar piratas rivais e descobrir tesouros escondidos.
Como membro da tripulação de Magellan, sua missão é dominar o mesmo conjunto de poderosas bibliotecas Python para ajudar a navegar seu navio por uma série de desafios. O destino de The Enchanted Marauder, o navio mais temido em alto mar, está em suas mãos. Você abraçará o código Python e se tornará um trunfo inestimável para o Capitão Magellan? A aventura que se avizinha testará suas habilidades e astúcia em igual medida!
Navegando com Math e Datetime
Nesta etapa, você tem a tarefa de traçar o curso para sua próxima jornada. Calcule a melhor rota usando o módulo math e estime o tempo de chegada com a ajuda do módulo datetime.
Primeiro, abra um script chamado chart_course.py no diretório ~/project. Este script calculará a distância até seu próximo destino com base nas coordenadas de latitude e longitude.
import math
## Coordinates of your current location and the destination (in degrees)
current_location = (0, 0)
destination = (10, 10)
def calculate_distance(loc1, loc2):
## Convert degrees to radians
lat1, lon1 = map(math.radians, loc1)
lat2, lon2 = map(math.radians, loc2)
## Haversine formula
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 ## Radius of Earth in kilometers
return c * r
## Estimate the distance
distance = calculate_distance(current_location, destination)
print(f"The distance to the destination is {distance:.2f} kilometers.")
Agora, estime o tempo de chegada usando datetime:
from datetime import datetime, timedelta
## Assume an average ship speed of 10 km/h
average_speed = 10
## Calculate the time of arrival
time_to_destination = timedelta(hours=distance / average_speed)
arrival_time = datetime.now() + time_to_destination
print(f"Estimated time of arrival: {arrival_time.strftime('%Y-%m-%d %H:%M:%S')}")
Execute seu script executando o seguinte comando em seu terminal:
python ~/project/chart_course.py
As informações abaixo devem ser exibidas em seu terminal:
The distance to the destination is 1568.52 kilometers.
Estimated time of arrival: 2024-01-04 09:40:36
Gerenciando Inventário com Collections
O Capitão Magellan mantém seu inventário organizado e acessível com a ajuda do módulo collections do Python. Sua missão é organizar os dados de suprimentos do navio usando um Counter do módulo collections.
Abra um script chamado manage_inventory.py no diretório ~/project:
from collections import Counter
## Inventory list
inventory = ['potion', 'dagger', 'potion', 'gold coin', 'gold coin', 'ruby']
inventory_counter = Counter(inventory)
## Display inventory count
for item, count in inventory_counter.items():
print(f"{item.title()}: {count}")
## Add items to your inventory
loot = ['gold coin', 'emerald', 'potion']
inventory_counter.update(loot)
print("\nUpdated inventory:")
for item, count in inventory_counter.items():
print(f"{item.title()}: {count}")
Para gerenciar o inventário, execute:
python ~/project/manage_inventory.py
As informações abaixo devem ser exibidas em seu terminal:
Potion: 2
Dagger: 1
Gold Coin: 2
Ruby: 1
Updated inventory:
Potion: 3
Dagger: 1
Gold Coin: 3
Ruby: 1
Emerald: 1
Resumo
Neste laboratório, você foi transportado para o mundo dos encantamentos e aventuras marítimas. Projetamos cenários envolventes que utilizaram as Bibliotecas Padrão Comuns do Python como ferramentas para navegar pelos desafios, de forma semelhante a como o Capitão Magellan faria em suas viagens. Você aprendeu a realizar cálculos geográficos com math e datetime, gerenciou um inventário de itens mágicos com collections e prosseguiria trabalhando com sistemas de arquivos e outras tarefas comuns com bibliotecas padrão adicionais.
Ao concluir cada tarefa, você não apenas ganhou proficiência no uso dessas bibliotecas, mas também contribuiu para o sucesso da jornada do The Enchanted Marauder. Esses exercícios estabelecem as bases para ser um programador Python eficaz — capaz de enfrentar problemas práticos com criatividade e eficiência. Que os ventos do conhecimento continuem a encher suas velas!



