for遍历数组以显示其内容

时间:2018-10-18 02:20:12

标签: python arrays python-3.x for-loop indexoutofboundsexception

程序为用户输入的数字计算从0到12的乘法表。 我试图通过循环显示数组的内容及其结果。但是,即使有第12个数据,它也只显示0到11的表,而不显示第12个表。

这是我想出的:

def multiplicationTable():
 nb = int(input("Please enter a number between 1 and 12 : \n"))

 table = array('i')
 for i in range(0,12):
     table.append(i * nb)

 for i in range(len(table)):
     print(str(nb) + "x" + str(i) + " = " + str(table[i]))

输出看起来像这样:

4x0 = 0
4x1 = 4
4x2 = 8
4x3 = 12
4x4 = 16
4x5 = 20
4x6 = 24
4x7 = 28
4x8 = 32
4x9 = 36
4x10 = 40
4x11 = 44

可能是什么原因造成的?来自VB和C#,因此我可能会误以为i,尽管它是数组中的值,但我真的不知道如何解决此问题。 谢谢!

1 个答案:

答案 0 :(得分:1)

range()函数不包含上限。因此,当您说range(0,12)时,您只会得到[0,11]。如果要[0,12],则必须执行range(0,13)。请注意,range(0,13)等效于range(13),因为默认的下限为0。
参见documentation