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
这是怎么发生的?详细解释一切
答案 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
range(2)
评估为0,1 i
循环时,for
的值设置为0 A[0][0]
计算第一个列表的第一个元素(1)。这已添加到x
以向x
提供值1,即打印A[1][1]
,即第二个列表的第二个元素(2)。这将添加到x
的值,即1. x
的新值现在已打印(1 + 2 = 3)。x
的值不变,再次打印(3)