You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python实现指定星形图案遇空格布局问题求助

Python 对称星形图案实现方案

你要实现的是对称菱形星形图案:上半部分从1个星开始,每行递增1个星直到n个星;下半部分从n-1个星开始,每行递减1个星直到1个星,所有行的星号都居中对齐。

你的现有代码问题:

  • 上半部分仅输出星号,无前置空格,导致左对齐而非居中
  • 下半部分print("","*",end="")的写法会让星号间多出空格,且前置空格逻辑错误

修正后的代码:

def shape(n):
    # 上半部分:1个星 → n个星
    for i in range(n):
        print(" " * (n - i - 1), end="")
        print("*" * (i + 1))
    # 下半部分:n-1个星 → 1个星
    for i in range(n-1, 0, -1):
        print(" " * (n - i), end="")
        print("*" * i)

shape(10)

代码逻辑说明:

  • 用字符串乘法"" * 数量快速生成指定长度的空格/星号,比嵌套循环更简洁高效
  • 上半部分:每行前置空格数随行数增加递减,星号数随行数增加递增,保证星号居中
  • 下半部分:每行前置空格数随行数减少递增,星号数随行数减少递减,与上半部分完全对称

内容的提问来源于stack exchange,提问作者Edward Phillips

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 20:51:20