0

非常抱歉我不得不问这样一个可笑的简单问题,但我一直在寻找答案一段时间,我觉得自己像个白痴,但我似乎无法让它发挥作用。

我只是想创建一个包含 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'”。谁能帮帮我吗?

4

3 回答 3

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()
于 2013-10-13T22:37:39.330 回答
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() 

顺便说一句——“数组”在 Python 中被称为“列表”,除非您专门使用数组模块或 numpy 来创建数组......

于 2013-10-13T22:37:07.850 回答
1

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

主要:

a = list ()
makeArray (a)

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

于 2013-10-13T21:59:51.610 回答