-2

我有一个简单的程序,但我不太明白为什么输出仍然是 0。

x=0
def main():     
    getX(1,2,x)
    print(x)

def getX(v1,v2,x):
    if (v1>v2):
        v1=x
    else:
        v2=x
main()
4

1 回答 1

2

这里的主要问题是getX它完全没有任何作用。v1您所做的就是为or分配一个值v2,这两个值都是本地值,一旦函数结束就会被丢弃。

你可能想要的是这样的:

def getX(v1, v2):
    if v1 > v2:
        return v1
    else:
        return v2

x = getX(1, 2)
print(x)

return给出一个值作为函数的结果,然后您可以在其他地方使用它。您不需要x初始设置或将其传递给函数,因为函数根本不使用它。

另请注意,这可以通过更改函数内部的分配并global x用于访问x您最初定义的模块级别来解决。这是不好的做法,因为通常很难遵循修改全局变量的代码。

于 2012-12-16T22:44:09.847 回答