如何使用嵌套的for循环在python中打印出以下模式?

时间:2018-09-28 05:06:41

标签: python

如何使用嵌套的for循环打印以下模式?因此,您不必为此编写10个for循环。

1 2 3 4 5 6 7 8 9 10

2 4 6 8 10 12 14 16 18 20

3 6 9 12 15 18 21 24 27 30

4 8 12 16 20 24 28 32 36 40

5 10 15 20 25 30 35 40 45 50

6 12 18 24 30 36 42 48 54 60

7 14 21 28 35 42 49 54 63 70

8 16 24 32 40 48 56 64 72 80

9 18 27 36 45 54 63 72 81 90

10 20 30 40 50 60 70 80 90 100

3 个答案:

答案 0 :(得分:2)

只需增加步长即可!

for stepSize in range(10):
    for count in range(10):
        print((count + 1) * (stepSize + 1), end=" ")
    # count loop has ended, back into the scope of stepSize loop
    # We are also printing(" ") to end the line
    print(" ")
# stepSize loop has finished, code is done

说明: 首先,外部循环会增加步长,然后对于每个步长,我们会累加10步,并在外部for循环中print(" ")时结束这一行。

答案 1 :(得分:0)

这就是我要做的:

 for x in range (1,11):
    product = []
    for y in range (1, 11):
        current_product = x * y
        product.append(current_product)
    print(*product, sep=' ')

答案 2 :(得分:0)

这将是最难以解释的答案之一,但是我很乐于尝试编写单行代码:

num_rows = 10
print '\n\n'.join(' '.join(str(i) for i in range(j,(num_rows+1)*j)[::j]) for j in range(1,num_rows+1))

输出:

1 2 3 4 5 6 7 8 9 10

2 4 6 8 10 12 14 16 18 20

3 6 9 12 15 18 21 24 27 30

4 8 12 16 20 24 28 32 36 40

5 10 15 20 25 30 35 40 45 50

6 12 18 24 30 36 42 48 54 60

7 14 21 28 35 42 49 56 63 70

8 16 24 32 40 48 56 64 72 80

9 18 27 36 45 54 63 72 81 90

10 20 30 40 50 60 70 80 90 100

剖析它,range(j,(num_rows+1)*j)[::j]为其中j遍历行号的每一行生成整数(以您要求的索引开头1)。 [::j]部分为您提供列表的第j个元素。然后,内部join语句从整数列表构造行字符串,每个整数之间用空格' '隔开。外部联接通过将整数行与\n\n组合在一起来构造最终输出,using Microsoft.AspNetCore.Identity; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace TimePlus.Data { public class ApplicationUser : IdentityUser { public string Fullname { get; set; } public int? CompanyID { get; set; } public int? EmployeeID { get; set; } } } 是一个新的双行,用于在每行整数之间放置一个空白行。

我认为其他解决方案更具可读性,但这是一种乐趣。