首页 > 解决方案 > for 循环遍历数组以显示其内容

问题描述

程序为用户输入的数字计算从 0 到 12 的乘法表。我正在尝试通过循环显示数组的内容以及其中的结果。但是,它只显示从 0 到 11 的表格,而不显示第 12 个表格,即使第 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 误认为是索引,而它是数组中的一个值,但我真的不知道如何解决这个问题。谢谢 !

标签: pythonarrayspython-3.xfor-loopindexoutofboundsexception

解决方案


range()函数不包括上限。所以当你说 时range(0,12),你只会得到 [0,11]。如果你想要 [0,12],你必须这样做range(0,13)。请注意,这range(0,13)等价于range(13)因为默认下限为 0。
请参阅文档


推荐阅读