如何让这个简单的数组工作? (初级Python)

时间:2013-10-13 21:57:17

标签: python

我非常抱歉我不得不问这么荒谬简单的问题,但我现在一直在寻找答案,我觉得自己像个白痴,但我似乎无法让这个工作。

我只想创建一个包含10个变量的数组,每个变量由用户定义,然后可以选择将它们全部添加到一起。我甚至无法正确获得第一部分。到目前为止,这是我的代码:

def makeArray():
    a = [0,1,2,3,4,5,6,7,8,9]
    a[0] = input("Please input 1st number: \n")
    a[1] = input("Please input 2nd number: \n")
    a[2] = input("Please input 3rd number: \n")
    a[3] = input("Please input 4th number: \n")
    a[4] = input("Please input 5th number: \n")
    a[5] = input("Please input 6th number: \n")
    a[6] = input("Please input 7th number: \n")
    a[7] = input("Please input 8th number: \n")
    a[8] = input("Please input 9th number: \n")
    a[9] = input("Please input 10th number: \n")
def main():
    makeArray()
    print(a[2])
main()

每当我输入10个值后运行它,我得到“全局名称'a'未定义。”有人可以帮帮我吗?

3 个答案:

答案 0 :(得分:2)

您需要返回数组:

def makeArray():
    a = []
    for x in xrange(10):
        a.append(input("Please input the %d number: " % x))
    return a

def main():
    my_array = makeArray()
    print(my_array[2])
main()

答案 1 :(得分:1)

你有2个。范围在makeArray中,另一个在main中。

在main中:

a = list ()
makeArray (a)

应该让事情顺利进行。 (取出makeArray中的初始化。)注意程序中数组的所有元素都是字符串。

答案 2 :(得分:1)

这是代码的较小版本,但错误相同:

def makeList():
    a=[0,1,2]

def main():
    makeList()
    print a[1]

main() 

你可以这样解决:

def makeList():
    a=[0,1,2]
    return a

def main():
    a=makeList()
    print a[1]

main() 
BTW - '数组'在Python中称为'列表',除非您专门使用数组模块或numpy来创建数组...