Python练习题 018:打印星号菱形

【Python练习题 018】 打印出如下图案(菱形):

   *
  ***
 *****
*******
 *****
  ***
   *

----------------------------------------------

这题简单啊,只要知道Python的内置方法 str.center(width [, fillchar]) 就能轻而易举打印出来:str即是数量不等的星号,width即是最大宽度(7个空格),默认填充字符fillchar就是空格。两个for循环搞定!代码如下:

s = '*'
for i in range(1, 8, 2):
    print((s*i).center(7))
for i in reversed(range(1, 6, 2)):
    print((s*i).center(7))

输出结果见题目。

【2016-10-17 更新】--------------------------------------------

当然,如果不用 str.center() 这题也不难解,无非是明确把空格的数量计算出来而已。代码如下:

s = '*'
for i in range(1,8,2):
    t = (7-i)//2
    print(' '*t + s*i + ' '*t)
for i in reversed(range(1,6,2)):
    t = (7-i)//2
    print(' '*t + s*i + ' '*t)

 

++++++++++++++++++++++++++++++++++++++

题目出处:编程语言入门经典100例【Python版】

原文地址:https://www.cnblogs.com/iderek/p/5969092.html