要求输出如下: 5 5 5 5 5 5 5 5 5 5 4 4 4 4 4 4 4 5 5 4 3 3 3 3 3 4 5 5 4 3 2 2 2 3 4 5 5 4 3 2 1 2 3 4 5 5 4 3 2 2 2 3 4 5 5 4 3 3 3 3 3 4 5 5 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 代码如下: #!/usr/bin/python #--coding: utf-8-- #author: selfimpr #blog: http://blog.csdn.net/lgg201 #mail: lgg860911@yahoo.com.cn def f(n): #纵坐标 y = 0 while y < 2 * n - 1: #本行主输出数字 pri_num = abs(y + 1 - n) + 1 #行首尾辅助数字个数 oth_count = n - pri_num #主数字输出个数 pri_count = 2 * pri_num - 1 #横坐标 x = 0 while x < 2 * n - 1: print "%3d" % ((n - x) if x < oth_count else (pri_num if x < oth_count + pri_count else (x + 2 - n))), x += 1 y += 1 print print f(5)