Python基础练习题:画菱形

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

    *

   ***

  *****

 *******

  *****

   ***

    *

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

'''
学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
a = input("请输入菱形的高度:")
h = int((int(a)+1)/2)
for i in range(1,int(a)+1):
    if i <=h:
        for j in range(h-i):
            print(" ",end="")
        for k in range(2*i-1):
            print("*",end="")
    if i>h:
        for j in range(i-h):
            print(" ",end="")
        for k in range(2*(2*h-i)-1):
            print("*",end="")
    print()

答案:

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

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

posted @ 2022-10-07 20:26  I'm_江河湖海  阅读(37)  评论(0编辑  收藏  举报