初学者Python目标特定解释

时间:2017-07-04 02:35:30

标签: python

A = [ [1, 1, 2], [2, 2, 3], [3, 3, 4] ]

x = 0
for i in range(2):
    x = x + A[i][i]
    print(x)
print(x)

答案/输出是:

1,3,3

这是怎么发生的?详细解释一切

2 个答案:

答案 0 :(得分:1)

当你说

A = [ [1, 1, 2], [2, 2, 3], [3, 3, 4] ]

A是列表清单。所以,

  

A [0]给你[1,2,3]   A [1]给你[2,2,3]

A [0] [0]只是[1,2,3]的第0个索引,即1。

类似地,A [1] [1]是第一个指数是[2,2,3],它是2(第二个2)

现在返回程序,

range(2)返回0到2之间的列表,不包括2,因此

[0,1]

所以你的程序循环两次,i值为0和1.

对于循环中的第一行,

x = x + A[i][i]

变为

x = 0 + A[0][0]

x = 0 + 1

这解释了你的第一次印刷。

当你再次进入循环时,你会得到这个:

x = 1 + A [1] [1](因为我是1,x在前一个循环中设置为1。

评估为

x = 1 + 2

现在x的值是3,这解释了你的第二个印刷语句。

循环外部的打印输出x的当前值,即3和 这就是为什么你得到

1,3,3

答案 1 :(得分:-1)

A是3个元素的列表,每个元素都有一个索引号,从零(0,1,2)开始。列表的每个元素也是一个列表。

语法A[i]返回列表的第i个值。例如A[0] = [1, 1, 2]。语法A [i] [i]返回第i个列表的第i个值。 A[2][2] = 4

  1. range(2)评估为0,1
  2. 第一次运行i循环时,for的值设置为0
  3. A[0][0]计算第一个列表的第一个元素(1)。这已添加到x以向x提供值1,即打印
  4. 第二个循环选取A[1][1],即第二个列表的第二个元素(2)。这将添加到x的值,即1. x的新值现在已打印(1 + 2 = 3)。
  5. 循环结束,x的值不变,再次打印(3)