首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >我在这条python中遗漏了什么?这是一个简单的程序来订购3个术语,而最后一个订单部分不工作

我在这条python中遗漏了什么?这是一个简单的程序来订购3个术语,而最后一个订单部分不工作
EN

Stack Overflow用户
提问于 2020-02-04 22:55:18
回答 1查看 37关注 0票数 0

我已经尝试过直接输入SWAP()函数,它可以工作,但由于函数在其中,它不会交换变量。

代码语言:javascript
代码运行次数:0
运行
复制
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}')
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-04 23:02:24

当您调用SWAP函数时,它不返回值。和函数参数不会作为call-by-reference发送。

因此,您在交换函数中所做的任何更改都不会反映在调用函数中。

试试这个:

代码语言:javascript
代码运行次数:0
运行
复制
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个变量,该变量应该被交换。

例如:-

代码语言:javascript
代码运行次数:0
运行
复制
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.
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60059995

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档