嵌套循环结果聚集在一起

2024-04-19 03:55:07 发布

您现在位置:Python中文网/ 问答频道 /正文

for j in range(10):
    for i in range(10):
        print(j,end=" ")

我的结果集中在一起,每行需要10个数字。我不能用print("0123456789")。我试过print(j,j,j,j,j,j,j,j,j),得到了我想要的结果,但我确信这不是编写代码的正确方法。你知道吗


Tags: 方法代码inforrange数字endprint
3条回答

如果可以使用单个for循环,为什么要使用嵌套for循环:

for i in range(10):
    print('{} '.format(i) * 10)

如果print(j,j,j,j,j,j,j,j,j)有效,则只需在每次迭代后添加另一个print()

for j in range(10):
    for i in range(10):
        print(j,end=" ")
    print()

输出:

0 0 0 0 0 0 0 0 0 0 
1 1 1 1 1 1 1 1 1 1 
2 2 2 2 2 2 2 2 2 2 
3 3 3 3 3 3 3 3 3 3 
4 4 4 4 4 4 4 4 4 4 
5 5 5 5 5 5 5 5 5 5 
6 6 6 6 6 6 6 6 6 6 
7 7 7 7 7 7 7 7 7 7 
8 8 8 8 8 8 8 8 8 8 
9 9 9 9 9 9 9 9 9 9 

或者简单地说:

for j in range(10):
    print(" ".join(str(j) * 10))

0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1
2 2 2 2 2 2 2 2 2 2
3 3 3 3 3 3 3 3 3 3
4 4 4 4 4 4 4 4 4 4
5 5 5 5 5 5 5 5 5 5
6 6 6 6 6 6 6 6 6 6
7 7 7 7 7 7 7 7 7 7
8 8 8 8 8 8 8 8 8 8
9 9 9 9 9 9 9 9 9 9

这类似于Malik Brahimi的解决方案,只是它没有在每行的最后一个数字后面加空格:

for i in range(10):
    print(' '.join([str(i)]*10))

输出

0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1
2 2 2 2 2 2 2 2 2 2
3 3 3 3 3 3 3 3 3 3
4 4 4 4 4 4 4 4 4 4
5 5 5 5 5 5 5 5 5 5
6 6 6 6 6 6 6 6 6 6
7 7 7 7 7 7 7 7 7 7
8 8 8 8 8 8 8 8 8 8
9 9 9 9 9 9 9 9 9 9

只是为了好玩,这里有另一种方法来使用单循环,这次使用带编号字段的格式字符串。你知道吗

fmt = ('{0} ' * 10)[:-1]
for i in range(10):
    print(fmt.format(i))

相关问题 更多 >