我非常抱歉我不得不问这么荒谬简单的问题,但我现在一直在寻找答案,我觉得自己像个白痴,但我似乎无法让这个工作。
我只想创建一个包含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'未定义。”有人可以帮帮我吗?
答案 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来创建数组...