You need to enable JavaScript to run this app. 如何解决Python星号三角形图案重复打印问题 且不使用break?
优惠活动
大模型
产品
解决方案
定价
更多

如何解决Python星号三角形图案重复打印问题 且不使用break?

重复打印问题的根源

你现在的代码多套了一层完全没用的外层循环,这是图案重复的核心原因:

  • 你要的逐行递减星号的倒三角,本质上只要从星号满值的长度,逐行减1打到星号长度为1就行,单循环就够实现
  • 你写的两层循环里,内层遍历i的循环本身就已经能走完一整个倒三角的全部行打印,外层遍历j的for j in range(random_num):没有绑定任何和打印内容相关的逻辑,只是把内层“打印一整个三角”的动作原封不动重复了random_num次——所以随机数取4的时候,整个三角就被完整打印了4遍,和你实际跑出来的结果完全对得上。
修正方法

直接删掉多余的外层j循环就行,全程用不到break语句,完全满足你提的作业约束,修正后的代码片段:

if random_num > 0:
    for i in range(random_num):
        print("*" * (random_num - i))
    print()

random_num取4时的运行效果:

****
***
**
*

补充:你原来代码的缩进把整套三角打印逻辑全放到了外层j循环的管辖范围内,才会出现把单个三角重复打N次的问题,把打印逻辑提到最外层的判断块里、去掉多余的循环就好。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.01 01:15:02