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

Python打印金字塔图案的实现方法验证及替代方案咨询

问题解答

现有实现思路判断

你的实现思路完全正确。
代码通过(5-row)*2计算每行开头的前置空格数保证图案整体对齐,再通过row * '* '生成对应数量带后缀空格的星号,运行后输出的效果和你给出的目标金字塔图案完全匹配,逻辑清晰简洁,如果仅需要实现当前需求不需要特意更换思路。

其他可选实现方法

如果想要学习更多实现逻辑,可以参考以下几种方案:

  • 方法1:使用str.join()拼接星号+str.center()居中对齐
    这种方法可以避免最后一个星号后多余的后缀空格,输出更严谨:
    n = 5
    # 以最后一行的长度作为居中基准宽度
    total_width = len('   '.join(['*'] * n))
    for row in range(1, n+1):
        current_line = '   '.join(['*'] * row)
        print(current_line.center(total_width))
    
  • 方法2:使用f-string右对齐实现
    用格式化字符串的右对齐语法自动补全前置空格,不需要手动计算空格数量:
    n = 5
    for row in range(1, n+1):
        star_part = '*   ' * row
        # 总宽度设置为最后一行的长度4*n
        print(f"{star_part:>{4*n}}")
    
  • 方法3:双层循环逐字符打印
    适合新手理解金字塔打印的底层逻辑,没有用到字符串乘法操作:
    n = 5
    for row in range(1, n+1):
        # 打印前置空格
        for _ in range(2*(n - row)):
            print(' ', end='')
        # 打印星号和间隔空格
        for _ in range(row):
            print('*', end='   ')
        # 每行结束换行
        print()
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 14:24:01