Python中的数字乘积三角形
目前我正试图通过在线课程学习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'。加入(行) 但是我一辈子都搞不清楚它是怎么做的,我已经一个多月没看了,就像我上次看它的时候一样,我能打印出第一行,但现在我无法做到这一点 我知道我是否使用以下
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
>>>