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

如何用单个for循环和if-else语句实现Python正倒三角星号图案?

单个for循环实现对称星号图案

完全可以用单个for循环加if-else语句实现这个对称星号图案,下面基于你写的代码修改并说明逻辑:

目标图案:

*
**
***
****
*****
****
***
**
*

你目前的代码:

stars = "*"
for i in range (0,10):
    if i <5:
        print(stars)
        stars = stars + "*"
   # else:

你现有代码的问题是:当i=4的循环结束后,stars会变成"******"(因为每次打印完都额外追加了一个星号),所以进入else分支时需要调整星号的减少逻辑。

修改后的完整代码(基于你的原有逻辑)

stars = "*"
for i in range(10):
    if i < 5:
        print(stars)
        stars += "*"
    else:
        # 第一次进入else时,先抵消掉i=4时多追加的那个星号,之后每次循环减一个
        stars = stars[:-2] if i == 5 else stars[:-1]
        print(stars)

更简洁的优化写法

如果调整正三角部分的逻辑,先追加星号再打印,代码会更清爽:

stars = ""
for i in range(10):
    if i < 5:
        stars += "*"
        print(stars)
    else:
        stars = stars[:-1]
        print(stars)

逻辑说明

  • 前5次循环(i从0到4):每次给stars加一个星号再打印,依次输出1到5个星,形成正三角。
  • 后5次循环(i从5到9):每次去掉stars的最后一个星号再打印,依次输出4到1个星,形成倒三角,两者拼接就是你要的对称图案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 22:23:26