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

三角形与倒三角形图案打印逻辑错误排查求助

三角形与倒三角形打印问题修复

我尝试通过多层循环(先打印空格再打印星号)实现三角形和倒三角形图案,三角形打印正常,但倒三角形逻辑存在一处错误,无法定位问题。原代码如下:

for i in range(1,6):
    for j in range(10,15-i):
        print(" ",end=" ")
        
    for z in range(10,2*i+9):
        print("*",end=" ")
    print()

for i in range(1,6):
    for j in range(10,i+10):
        print(" ",end=" ")

    for k in range(10,21-2*i):
        print("*",end=" ")
    print()

问题定位与修复

倒三角形的错误出在空格循环的次数计算上:

  • 原三角形的空格次数是5-i次(i从1到5时,依次为4、3、2、1、0次),实现了从多到少的空格,让星号向左对齐形成正三角。
  • 倒三角形需要空格次数从0递增到4次(对应i从1到5),但原代码中range(10,i+10)的循环次数是i次(i=1时1次,i=2时2次...),比实际需要多1次,导致每行星号都向右偏移了一组空格。

修复后的代码:

# 正三角形(保留逻辑并简化写法)
for i in range(1,6):
    for j in range(5-i):
        print(" ",end=" ")
    for z in range(2*i-1):
        print("*",end=" ")
    print()

# 修复后的倒三角形
for i in range(1,6):
    for j in range(i-1):
        print(" ",end=" ")
    for k in range(9-2*(i-1)):
        print("*",end=" ")
    print()

说明

  • 简化了原代码中不必要的range(10, x)写法,直接用循环次数控制空格和星号数量,逻辑更清晰;
  • 倒三角形的空格循环range(i-1):i=1时循环0次(无空格),i=5时循环4次(4组空格),与正三角形的空格分布完全对称;
  • 星号循环range(9-2*(i-1)):保证每行星号数依次为9、7、5、3、1,和正三角形成镜像。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 23:42:14