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


  • 需要创建直角数字三角形
  • 每个空都是0
  • 如果我追加列表并返回列表,我的输出是不正确的

代码在

下面
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]]

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

应该加上lines-i0,而不是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

您可以将其压缩一点,但它是有效的。你只是忘记添加[],而添加了' '而不是'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)