- 需要创建直角数字三角形
- 每个空都是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-i
0
,而不是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)