Как рассчитать какое расстояние получилось от начальной точки до места, где мы находимся после последнего шага?

У нас есть бесконечный цикл запроса от пользователя следующих данных "сторона шаги" (типо down 7 , up 10, right 1 и т.д.) Цикл обрывается, когда пользователь ничего не ввёл, но нажал ввод. Как рассчитать какое расстояние получилось от начальной точки до места, где мы находимся после последнего шага? Как понимаю, надо через пифагора, но реализовать не получается.

x = 0
y = 0
while True:
    inp = input('move number:')
    if not inp:
        break
    direction, steps = inp.split(' ')
    steps = int(steps)

if direction == 'left' or 'right':
    x = steps
if direction == 'up' or 'down':
    y=steps
 

    print((x**2+y**2)**0,5)

Ответы (2 шт):

Автор решения: ClickName

Если я правильно понял вашу задачу, код должен быть таким

x = 0
y = 0
while True:
    inp = input('move number:')
    if not inp:
        break
    direction, steps = inp.split(' ')
    steps = int(steps)

    if direction == 'right':
        x += steps
    elif direction == 'left':
        x-= steps
    elif direction === 'down'
        y -= steps
    elif direction == 'up':
        y += steps
 

print((x**2+y**2)**0,5)

Замечание
Оператор or используется для работы с логическими значениями. СТРОКА or СТРОКА приведет к тому, что строки будут приведены к булевым значениям, и только потом отработает оператор сравнения. Если проще, то правильно будет написать

direction == 'up' or direction == 'down'

А еще лучше

direction in ('up', 'down')
→ Ссылка
Автор решения: SergFSM

в python 3.10 был добавлен match, в вашем случае его можно использовать примерно так:

from math import hypot

x = 0
y = 0
while True:
    match input('move number:').split():
        case 'left', left:   x-=int(left)
        case 'right', right: x+=int(right)
        case 'up', up:       y+=int(up)
        case 'down', down:   y-=int(down)
        case _: break
print(hypot(x,y))

>>> out
'''
move number:left 3
move number:up 4
move number:stop
5.0
→ Ссылка