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方法返回一个指定宽度的字符串,默认已空格填充,理解起来颇有点费劲,看来递归有时确实好用。
本文来自博客园,作者:I'm_江河湖海,转载请注明原文链接:https://www.cnblogs.com/jhhh/p/16760707.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通