Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么这段代码不生成一个二维正方形数组?是什么使它变成三角形的?_Python_Arrays_Dimensional - Fatal编程技术网

Python 为什么这段代码不生成一个二维正方形数组?是什么使它变成三角形的?

Python 为什么这段代码不生成一个二维正方形数组?是什么使它变成三角形的?,python,arrays,dimensional,Python,Arrays,Dimensional,我想打印一个0的正方形二维数组。我不明白为什么我一直用这个代码得到一个三角形。为什么我每打印一行,就少打印一列 def ar(i): j = i for i in range(i): for j in range(j): print('0', end=" ") print() 范围(5)将产生从0到4的值-比输入的数字少一个 i = 5 j = i # this is overwritten by the loop-j

我想打印一个0的正方形二维数组。我不明白为什么我一直用这个代码得到一个三角形。为什么我每打印一行,就少打印一列

def ar(i):
    j = i
    for i in range(i):
        for j in range(j):
            print('0', end=" ")
        print()
范围(5)
将产生从0到4的值-比输入的数字少一个

i = 5
j = i   # this is overwritten by the loop-j
for _ in range(i):       # on the first i
    for j in range(j):       # j will get 4 at max, so for the next i your j 
        print('0', end=" ")  # only produce a range(4), then (3) ... hence: triangular
    print()
您的内循环
j
覆盖本地
j
,并且由于
range()
的性质,每个外循环将减少1

修正:

您不需要命名的循环变量,用
\ucode>替换:

def ar(i):
    for _ in range(i):
        for _ in range(i): # no j needed at all
            print('0', end=" ")
        print()

ar(5)
输出:

0 0 0 0 0 
0 0 0 0 0 
0 0 0 0 0 
0 0 0 0 0 
0 0 0 0 0

因为你覆盖了你自己的
j
<代码>在范围内(
j
):
哦,我明白了。非常感谢。有道理。