如何翻转倒金字塔?求助用单参数函数实现星号沙漏
搞定星号沙漏图形的小技巧
嘿,我来帮你解决这个沙漏图形的问题!首先,你完全可以在这里用代码块展示你的现有代码——只需要把代码用三个反引号(```)包裹起来,比如这样:
# 把你的现有代码放在这里就行
先聊聊正三角形的常见问题:一般都是空格和星号的数量计算没到位。假设你的函数参数是n(代表沙漏的“高度”,也就是正三角的层数),正三角每一行的空格数应该从n-1递减到0,星号数则从1递增到2n-1(每次加2),这样才能让三角形居中显示。
至于倒三角的翻转,其实就是把正三角的逻辑反过来就行:
- 空格数从1递增到
n-1 - 星号数从
2n-3递减到1(每次减2) - 注意倒三角要比正三角少一层,不然中间的星号行会重复哦
我给你写了个完整的示例代码,运行后就是你要的沙漏效果:
def print_hourglass(n): # 打印上半部分正三角形 for i in range(n): # 打印前置空格,实现居中 print(' ' * (n - 1 - i), end='') # 打印对应数量的星号 print('*' * (2 * i + 1)) # 打印下半部分倒三角形(从n-2开始,避免中间重复) for i in range(n-2, -1, -1): print(' ' * (n - 1 - i), end='') print('*' * (2 * i + 1)) # 测试示例,比如传入参数5 print_hourglass(5)
你可以把你现有的代码贴出来,我帮你排查下正三角的问题,或者调整倒三角的实现细节~
内容的提问来源于stack exchange,提问作者Angel Baby
相关产品推荐
相关产品推荐

