Рассчитать расстояние и распечатать его

Моя задача — вычислить расстояние между прямоугольником и точкой 0/0 в системе координат и вывести конкретный ответ. Если оно ближе 100 м (единица измерения системы — метры, 1 единица = 1 метр), следует вывести 100 м, если расстояние ‹ 200 м, вывести 101 м...

Я узнал, что могу использовать теорему Пифагора, чтобы получить расстояние между двумя координатами. Я внедрил его в свою программу (на Python), но у меня возникли проблемы с выводом.

Давайте попробуем пример. Прямоугольник с координатами (–400 200); (–300, 200); (–300, 300); (–400, 300) находится на расстоянии 360 м от точки (0/0). Правильным выходом будет «103 м».

Кто-то спрашивал что-то подобное раньше, и они сказали, что вам нужно разделить расстояние на 100 и прибавить к «10{}».

print("10{}m".format(distance//100))

На самом деле, это работает для всего ниже 1000. Если координаты будут (-4000,2000); (–3000, 2000); (–3000, 3000); (–4000, 3000), правильное расстояние будет «3605 м», а на выходе должно быть «136 м».

Надеюсь, вы понимаете мой случай/вопрос!


person ThinkDifferent    schedule 29.11.2012    source источник


Ответы (1)


print("{:d}m".format(100+(distance//100)))

Например,

In [16]: distance = 50; "{:d}m".format(100+(distance//100))
Out[16]: '100m'

In [17]: distance = 360; "{:d}m".format(100+(distance//100))
Out[17]: '103m'

In [18]: distance = 3605; "{:d}m".format(100+(distance//100))
Out[18]: '136m'
person unutbu    schedule 29.11.2012
comment
Благодарю вас! Что означает :d? - person ThinkDifferent; 29.11.2012
comment
:d форматирует значение как целое число. Он вызывает ValueError, если ввод не является целым числом. Результат будет таким же, даже если вы удалите :d, но я хотел подчеркнуть, что ожидаемый ввод — целое число. - person unutbu; 29.11.2012