Рассчитать расстояние между точками коорд.

Some_acc

Новичок
Пользователь
Ноя 29, 2022
15
0
1
Здравствуйте!
Есть задача:
Написать функцию, которая принимает n-ое количество координат точек.
И в ответ возвращает длину маршрута между ними.
Каждая координата представлена кортежем, состоящим из двух объектов типа int.
Примеры использования функции:
result = distance((1, 1), (1, 2))
print(result) # выведет 1

В общем виде:
result = distance((1, 1), (2, 3), (5, 8), ..., (xn, yn))

Код:
from math import *
x1 = float(input())
y1 = float(input())
x2 = float(input())
y2 = float(input())
 
def distance(x1, y1, x2, y2, *args):
    result = sqrt((x2-x1)**2 + (y2-y1)**2)
    return c

result = distance(x1, y1, x2, y2)
print(result)
Не считает расстояние по точкам args.
В чем может быть проблема, подскажите пожалуйста?
 

4olshoy_blen

Активный пользователь
Пользователь
Ноя 13, 2022
137
32
28
Наверное как-то так, но мне кажется, что можно сделать более элегантным способом

Python:
from math import sqrt


x1, y1 = int(input('Enter x1: ')), int(input('Enter y1: '))
x2, y2 = int(input('Enter x2: ')), int(input('Enter y2: '))


def distance(*args):
    w = [args[i:i + 2] for i in range(0, len(args), 2)]
    q = list(map(lambda x: sqrt((x[0][0]-x[1][0])**2 + (x[0][1]-x[1][1])**2), w))
    return q


result1 = distance((x1, y1), (x2, y2))
result2 = distance((15, 11), (9, 17), (3, 4), (9, 1))

print(result1, result2, sep='\n')
 

Malenkey

Пользователь
Пользователь
Ноя 3, 2022
140
11
18
Что это такое у тебя?
 

Some_acc

Новичок
Пользователь
Ноя 29, 2022
15
0
1
Что это такое у тебя?
Ой, это я не убрал строку, спасибо большое)
Функция все равно криво считается :(
 

Форум IT Специалистов