Олег Марков
Работа с координатами X и Y в Python
Введение
Координаты X и Y в Python часто используются для работы с геометрическими данными, графикой, визуализацией, а также для расчета положения объектов в 2D-пространстве. Важно понимать, как хранить и обрабатывать эти данные, чтобы эффективно работать с точками и наборами координат.
В этой статье мы разберемся, как хранить координаты, получать доступ к ним, изменять и выполнять базовые операции над точками в Python.
Если вы хотите системно освоить работу с координатами, массивами данных и структурами Python — приходите на наш курс Основы Python. На курсе 209 уроков и 34 упражнения, AI-тренажеры для практики с кодом и задачами 24/7, решение задач с живым ревью наставника, еженедельные встречи с менторами. Вы научитесь эффективно работать с координатами и другими структурами данных.
Хранение координат
Кортежи
Координаты часто хранятся в виде кортежей (x, y):
point = (10, 20)
x, y = point
print(x) # 10
print(y) # 20Кортеж удобен для неизменяемых точек, например, когда координаты не должны меняться.
Списки
Если требуется изменять координаты, используют списки:
point = [10, 20]
point[0] = 15
point[1] += 5
print(point) # [15, 25]Списки позволяют динамически добавлять или удалять координаты.
Словари
Для более наглядного доступа можно использовать словари:
point = {"x": 10, "y": 20}
print(point["x"]) # 10
point["y"] += 5Словари удобны, когда требуется доступ по именованным ключам, а не по индексу.
Основные операции с координатами
Сложение и вычитание точек
p1 = (10, 20)
p2 = (5, 7)
# Создаем новую точку как сумму координат
p3 = (p1[0] + p2[0], p1[1] + p2[1])
print(p3) # (15, 27)Для списков можно использовать аналогично:
p1 = [10, 20]
p2 = [5, 7]
p3 = [p1[0] + p2[0], p1[1] + p2[1]]Расстояние между точками
import math
p1 = (10, 20)
p2 = (5, 7)
distance = math.sqrt((p2[0]-p1[0])**2 + (p2[1]-p1[1])**2)
print(distance) # 13.0Перебор списка точек
points = [(1,2), (3,4), (5,6)]
for x, y in points:
print(f"X={x}, Y={y}")Использование множеств для уникальных координат
points = {(1,2), (3,4), (1,2)}
print(points) # {(1,2), (3,4)}Частые ошибки
- Попытка изменить кортеж →
TypeError. - Индексация словаря как списка →
KeyError. - Использование списков как ключей множества →
TypeError. - Ошибка при переборе точек без распаковки кортежа или списка.
Часто задаваемые вопросы
Можно ли хранить координаты в одном списке и обращаться по индексу? Да, например
points = [[x1,y1],[x2,y2]], но для каждой точки потребуется доступ черезpoint[0],point[1].Как изменить координату X для всех точек?
points = [[1,2],[3,4]]
for point in points:
point[0] += 1Можно ли использовать координаты как ключи словаря? Да, если они неизменяемые (кортежи).
Как найти ближайшую точку к заданной? Используется формула расстояния и перебор точек:
import math
target = (5,5)
points = [(1,2),(3,4),(6,6)]
closest = min(points, key=lambda p: math.sqrt((p[0]-target[0])**2 + (p[1]-target[1])**2))
print(closest)Заключение
Работа с координатами X и Y в Python требует понимания структуры хранения точек и методов их обработки. Использование кортежей, списков и словарей позволяет эффективно управлять координатами и выполнять базовые геометрические операции.
Для системного изучения работы с координатами, массивами и другими структурами Python рекомендую пройти курс Основы Python. В первых 3 модулях уже доступно бесплатное содержание — начните погружаться в мир Python прямо сегодня.
Постройте личный план изучения Python до уровня Middle — бесплатно!
Python — часть карты развития Backend
100+ шагов развития
30 бесплатных лекций
300 бонусных рублей на счет
Все гайды по Python
Лучшие курсы по теме

Основы Python
Антон Ларичев
Nest.js с нуля
Антон Ларичев