Python中的数字乘积三角形

Python中的数字乘积三角形,python,Python,目前我正试图通过在线课程学习Python,但我一直被困在生成以下三角形的作业上 1 2 4 3 6 9 4 8 12 16 5 10 15 20 25 6 12 18 24 30 36 7 14 21 28 35 42 49 我给出了以下代码 行=[ 待办事项:解决这个问题 对于范围(1,8)内的n ] 打印'\n'+'\n'。加入(行) 但是我一辈子都搞不清楚它是怎么做的,我已经一个多月没看了,就像我上次看它的时候一样,我能打印出第一行,但现在我无法做到这一点 我知道我是否使用以下

目前我正试图通过在线课程学习Python,但我一直被困在生成以下三角形的作业上

1
2  4
3  6  9
4  8 12 16
5 10 15 20 25
6 12 18 24 30 36
7 14 21 28 35 42 49
我给出了以下代码

行=[
待办事项:解决这个问题
对于范围(1,8)内的n
]
打印'\n'+'\n'。加入(行)
但是我一辈子都搞不清楚它是怎么做的,我已经一个多月没看了,就像我上次看它的时候一样,我能打印出第一行,但现在我无法做到这一点

我知道我是否使用以下代码

它会给我

1  1   1
2  4   8
3  9  27
但是我不知道从那里去哪里

a = [[str(t * i) for t in range(1, i + 1)] for i in range(1, 8)]

for l in a:
    print(" ".join(l))
  • 生成所需的列表列表
  • 在单独的行中打印每个内部列表

  • 这相当接近您想要的:

    >>> rows = [
        ' '.join(map(str, range(n, n * n + 1, n)))
        for n in range(1, 8)
    ]
    >>> print('\n' + '\n'.join(rows))
    
    1
    2 4
    3 6 9
    4 8 12 16
    5 10 15 20 25
    6 12 18 24 30 36
    7 14 21 28 35 42 49
    >>> 
    

    可以在上找到该代码的演示。

    我尝试用另一种方式来思考它-作为一个行列表,每个行包含一个数的倍数,直到该数的平方。对于循环,您可能需要两个
    ,一个用于行,另一个用于列。
    
    >>> rows = [
        ' '.join(map(str, range(n, n * n + 1, n)))
        for n in range(1, 8)
    ]
    >>> print('\n' + '\n'.join(rows))
    
    1
    2 4
    3 6 9
    4 8 12 16
    5 10 15 20 25
    6 12 18 24 30 36
    7 14 21 28 35 42 49
    >>>