代码改变世界

python基础练习题(题目 画菱形)

2021-07-06 00:06  第二个卿老师  阅读(237)  评论(0编辑  收藏  举报

day15

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

实例022:画菱形

题目 打印出如下图案(菱形):。

 

    *

   ***

  *****

 *******

  *****

   ***

    *

分析:一个循环控制高度,再分上下两部分输出,循环空格+*,代码如下,感觉有点多

 1 a = input("请输入菱形的高度:")
 2 h = int((int(a)+1)/2)
 3 for i in range(1,int(a)+1):
 4     if i <=h:
 5         for j in range(h-i):
 6             print(" ",end="")
 7         for k in range(2*i-1):
 8             print("*",end="")
 9     if i>h:
10         for j in range(i-h):
11             print(" ",end="")
12         for k in range(2*(2*h-i)-1):
13             print("*",end="")
14     print()

看看答案:

1 def draw(num):
2     a="*"*(2*(4-num)+1)
3     print(a.center(9,' '))
4     if num!=1:
5         draw(num-1)
6         print(a.center(9,' '))
7 draw(4)

很汗颜,center方法返回一个指定宽度的字符串,默认已空格填充,理解起来颇有点费劲,看来递归有时确实好用。