python输出数字金字塔_python中的数字金字塔

使用字符串格式,并且它适用于n>=1的任何值:num=int(raw_input())

max_width=len(" ".join(map(str,range(num,0,-1)))+" ".join(map(str,range(2,num+1))))+1

#max_width is the maximum width, i.e width of the last line

print "{0:^{1}}".format("1",max_width) #print 1 , ^ is used to place the

#string in the center of the max_width

for i in range(2,num+1): #print rest of the numbers from 2 to num

range1=range(i,0,-1)

strs1=" ".join(map(str,range1))

range2=range(2,i+1)

strs2=" ".join(map(str,range2))

print "{0:^{1}}".format(" ".join((strs1,strs2)),max_width) # use ^ again with max_width

输出:monty@monty-Aspire-5050:~$ python so27.py

5

1

2 1 2

3 2 1 2 3

4 3 2 1 2 3 4

5 4 3 2 1 2 3 4 5

monty@monty-Aspire-5050:~$ python so27.py

10

1

2 1 2

3 2 1 2 3

4 3 2 1 2 3 4

5 4 3 2 1 2 3 4 5

6 5 4 3 2 1 2 3 4 5 6

7 6 5 4 3 2 1 2 3 4 5 6 7

8 7 6 5 4 3 2 1 2 3 4 5 6 7 8

9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9

10 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 10

monty@monty-Aspire-5050:~$ python so27.py

20

1

2 1 2

3 2 1 2 3

4 3 2 1 2 3 4

5 4 3 2 1 2 3 4 5

6 5 4 3 2 1 2 3 4 5 6

7 6 5 4 3 2 1 2 3 4 5 6 7

8 7 6 5 4 3 2 1 2 3 4 5 6 7 8

9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9

10 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 10

11 10 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 10 11

12 11 10 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 10 11 12

13 12 11 10 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 10 11 12 13

14 13 12 11 10 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 10 11 12 13 14

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值