Когда вы вызываете функцию SWAP
, она не возвращает значения. И аргументы функций не отправляются как call-by-reference
.
Так что любые изменения, которые вы делаете в функции SWAP, не отражаются в вызывающей функции.
Попробуйте это:
def SWAP(x,y):
w = x
x = y
y = w
return x,y
def ORDER(x,y,z):
if x > z:
x,z=SWAP(x,z)
if x > y:
x,y=SWAP(x,y)
if y > z:
y,z=SWAP(y,z)
print(f'{x}<{y}<{z}')
Объяснение:
Функция SWAP принимает 2 аргумента x,y
и возвращает замененное значение. Произведенная вами перестановка была правильной.
При вызове SWAP я ожидаю возврата переменной 2, которую следует поменять местами.
Например. -
a = 5
b = 8
a,b = SWAP(a,b)
Here I am calling SWAP with `a,b` who have values `5,8` currently,
Now SWAP returns `8,5`as response. I am storing `8,5` into `a,b`.
So Now a becomes 8 and b becomes 5.
All the other logic is same as you wrote for comparing.