我已经尝试过直接输入SWAP()函数,它可以工作,但由于函数在其中,它不会交换变量。
def SWAP(x,y):
w = x
x = y
y = w
del w
def ORDER(x,y,z):
if x > z:
SWAP(x,z)
if x > y:
SWAP(x,y)
if y > z:
SWAP(y,z)
print(f'{x}<{y}<{z}')
发布于 2020-02-04 15:02:24
当您调用SWAP
函数时,它不返回值。和函数参数不会作为call-by-reference
发送。
因此,您在交换函数中所做的任何更改都不会反映在调用函数中。
试试这个:
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}')
解释:
交换函数接受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.
https://stackoverflow.com/questions/60059995
复制相似问题