如何使用python创建直角数字三角形

2024-04-23 07:09:07 发布

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

  • 需要创建直角数字三角形
  • 每个空位都被零填满
  • 如果我附加到列表并返回列表,则我的输出不正确

代码如下

def right_angle(lines):
    result = []
    result = [[0 for i in range(lines)] for i in range(lines)]
    for i in range(lines):
        for j in range(lines-i-1):
            print(" ",end=" ")
        for j in range(i+1):
            print(j+ 1, end=' ')
        print( )
    #return result
right_angle(4)

我的

      1 
    1 2 
  1 2 3 
1 2 3 4

预期是

[[0 0 0 1] 
[0 0 1 2] 
[0 1 2 3] 
[1 2 3 4]]

Tags: 代码inright列表forrange数字result
2条回答

你也许可以把它浓缩一点,但它是有效的。实际上,您只是忘记添加[],而是添加了' ',而不是'0 '

def right_angle(lines):
    result = []
    result = [[0 for i in range(lines)] for i in range(lines)]
    for i in range(lines):
        if i == 0:
            print('[[',end='')
        else:
            print('[',end='')
        for j in range(lines-i-1):
            print("0",end=" ")
        for j in range(i+1):
            print(j+ 1, end=' ')
        print(']', end='')
        if i == lines-1:
            print(']')
        print( )
    #return result
right_angle(4)

在循环中附加0和数字,而不是打印空格和数字

您应该附加lines-i{}的,而不是lines-i-1

def right_angle(lines):
    result = []
    for i in range(lines):
        row = []
        for j in range(lines-i):
            row.append(0)
        for j in range(1, i+1):
            row.apend(j)
        result.append(row)
    retrn result

这可以简化为:

def right_angle(lines):
    result = []
    for i in range(lines):
        result.append([0] * (lines-i) + list(range(1, i+1)))
    return result

相关问题 更多 >