Введение
В зачарованном морском мире, полном тайны и магии, где моряки должны ориентироваться не только в опасных водах, но и в таинственных потоках магии, существует легенда, известная своими превосходными навыками в навигации и заклинаниях - зловещая Капитан-пират Магеллан, Проклятый. Способность Магеллана использовать силы стандартных библиотек Python стала основой его успеха в智取ании сопернических пиратов и открытии скрытых сокровищ.
Вашей миссией, как член экипажа Магеллана, является овладеть тем же набором мощных библиотек Python, чтобы помочь управлять вашим кораблем в серии испытаний. Судьба "Очарованного грабителя", самого страшного корабля на высоких морях, зависит от вас. Будете ли вы принять код Python и стать бесценным активом для Капитана Магеллана? Приключения впереди будут испытанием ваших навыков и хитрости в равной мере!
Навигация с использованием Math и Datetime
На этом этапе вам предстоит составить маршрут для вашего предстоящего путешествия. Вычислите лучший маршрут с использованием модуля math и оцените время прибытия с помощью модуля datetime.
Сначала откройте скрипт под названием chart_course.py в директории ~/project. Этот скрипт будет вычислять расстояние до вашей следующей цели на основе координат широты и долготы.
import math
## Координаты вашего текущего местоположения и назначения (в градусах)
current_location = (0, 0)
destination = (10, 10)
def calculate_distance(loc1, loc2):
## Преобразуйте градусы в радианы
lat1, lon1 = map(math.radians, loc1)
lat2, lon2 = map(math.radians, loc2)
## Формула Гаверсинуса
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 ## Радиус Земли в километрах
return c * r
## Оцените расстояние
distance = calculate_distance(current_location, destination)
print(f"Расстояние до назначения составляет {distance:.2f} километров.")
Теперь оцените время прибытия с использованием datetime:
from datetime import datetime, timedelta
## Предположим, что средняя скорость корабля составляет 10 км/ч
average_speed = 10
## Вычислите время прибытия
time_to_destination = timedelta(hours=distance / average_speed)
arrival_time = datetime.now() + time_to_destination
print(f"Предполагаемое время прибытия: {arrival_time.strftime('%Y-%m-%d %H:%M:%S')}")
Запустите свой скрипт, выполнив следующую команду в терминале:
python ~/project/chart_course.py
На вашем терминале должны быть отображены следующие сведения:
Расстояние до назначения составляет 1568.52 километров.
Предполагаемое время прибытия: 2024-01-04 09:40:36
Управление инвентарем с использованием Collections
Капитан Магеллан хранит свой инвентарь отсортированным и доступным с помощью модуля collections в Python. Ваша миссия - организовать данные о снаряжениях корабля с использованием Counter из модуля collections.
Откройте скрипт под названием manage_inventory.py в директории ~/project:
from collections import Counter
## Список инвентаря
inventory = ['зелье', 'кинжал', 'зелье', 'золотая монета', 'золотая монета', 'рубина']
inventory_counter = Counter(inventory)
## Отобразите количество элементов в инвентаре
for item, count in inventory_counter.items():
print(f"{item.title()}: {count}")
## Добавьте предметы в инвентарь
добыча = ['золотая монета', 'изумруд', 'зелье']
inventory_counter.update(добыча)
print("\nОбновленный инвентарь:")
for item, count in inventory_counter.items():
print(f"{item.title()}: {count}")
Для управления инвентарем запустите:
python ~/project/manage_inventory.py
На вашем терминале должны быть отображены следующие сведения:
Зелье: 2
Кинжал: 1
Золотая монета: 2
Рубина: 1
Обновленный инвентарь:
Зелье: 3
Кинжал: 1
Золотая монета: 3
Рубина: 1
Изумруд: 1
Резюме
В этом практическом занятии вы попали в мир зачарований и морских приключений. Мы разработали увлекательные сценарии, которые использовали стандартные библиотеки Python в качестве инструментов для преодоления различных вызовов, подобно тому, как это делал Капитан Магеллан в своих путешествиях. Вы узнали, как выполнять географические вычисления с использованием math и datetime, управлять инвентарем магических предметов с помощью collections, а также продолжите работать с файловой системой и выполнять другие общие задачи с использованием дополнительных стандартных библиотек.
При выполнении каждой задачи вы не только приобрели навыки в использовании этих библиотек, но и внесли свой вклад в успешное путешествие "Очарованного грабителя". Эти упражнения奠定ят основы для成為 эффективного программиста на Python, способного创造性地 и эффективно решать практические проблемы. Пусть ветра знаний будут всегда поднимать ваши паруса!



