成功用Python打三角形后想尝试把*换成数字

怎样写一个每一列有规律的三角形啊
我连规律都看不懂,卑微了

img

每行从左到右相差6、5、4...其他的规律我相信你看出来了

for r in range(7):
    for c in range(r + 1):
        print(r + sum(range(6, 6 - c, -1)) + 1, end=' ')
    print()

找不到每行规律的话,这样写也可以:

nums = []
num = 1
# 将每一列的数添加进数组
for r in range(7):
    temp = []
    for c in range(7 - r):
        temp.append(num)
        num += 1
    nums.append(temp)
# 第一行打印第一个数组的-7位置,第二行打印第一、二个数组的-6位置...
for r in range(-7, 0):
    for c in range(r + 8):
        print(nums[c][r], end=' ')
    print()