1
21
123
4321
12345
654321
1234567
87654321
123456789
我写了下面这段代码:
def printFigure(rows):
if rows > 0:
if rows%2 == 0:
printFigure(rows-1)
while(rows>0):
print(str(rows)[::-1], end = '')
rows -= 1
print('')
if rows%2 == 1:
printFigure(rows-1)
while (rows>0):
print(str(rows),end = '')
rows -= 1
print('')
但输出结果是:
1
21
321,
4321
54321
654321
7654321
87654321
987654321
我是一名递归的初学者,希望能够得到您的解释。
谢谢。
print('\n'.join([''.join(map(str, range(1, n+1)[::(-1)**(n%2)])) for n in range(1, 10)]))
- Ma0(1,-1)[n%2]
:D - Mateen Ulhaqprint('\n'.join('123456789'[:n][::(-1,1)[n%2]]for n in range(1,10)))
- Mateen Ulhaqn%2*2-1
,在Python2中你可以省略括号。而range(9)则是:print'\n'.join('123456789'[:n+1][::1-n%2*2]for n in range(9))
。 - zch