python-使用由另一个函数确定的变量

时间:2019-03-04 04:08:56

标签: python function variables global

我想调用第二个函数并使它使用第一个函数的结果,但是不确定如何执行此操作。我不能使“数组”成为局部变量,因为它依赖于第一个函数。有人可以帮忙吗?谢谢。

def main(n):
    array = []
    for x in range(n):
        array.append(random.randint(0, 5))
    print(array)

def sortarray(list):
    newarray = []
    for i in range(len(array)):
        newarray.append(array.pop.array(array.index(max(x))))
    print(newarray)

2 个答案:

答案 0 :(得分:1)

如果要将结果传递给第二个函数,则第一个函数必须返回某些内容。请参见以下示例:

def main(n):
    array = []
    for x in range(n):
        array.append(random.randint(0, 5))
    return array

def sortarray(array):
    newarray = []
    for i in range(len(array)):
        newarray.append(array.pop.array(array.index(max(x))))
    return newarray

您可以像下面这样使用它们:

print(sortarray(main(5)))

顺便说一句,如果您对排序感兴趣-您绝对应该结帐Sorting HOW TO

更新

这将产生以下错误:

<ipython-input-1-d0f89860ca87> in sortarray(array)
      8     newarray = []
      9     for i in range(len(array)):
---> 10         newarray.append(array.pop.array(array.index(max(x))))
     11     return newarray

AttributeError: 'builtin_function_or_method' object has no attribute 'array'

如您所见,它指向以下行:

newarray.append(array.pop.array(array.index(max(x))))

问题出在array.pop.array调用中。 array.pop是一个函数。

答案 1 :(得分:0)

为什么您将变量“列表”传递给funcion sortarray但却从未使用过?

顺便说一句,您不应将变量定义为“列表”。它是python中的保留字。 尽管它可能不会导致错误,但是会混淆某些查看您的代码或某些IDE链接错误的人。

这可能是您想要实现的。

def main(n):
    array = []
    for x in range(n):
        array.append(random.randint(0, 5))
    print(array)
    sortarray(array)

def sortarray(array):
    newarray = []
    for i in range(len(array)):
        newarray.append(array.pop.array(array.index(max(x))))
    print(newarray)