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

如何用仅2个for循环在Python中生成指定数字金字塔并简化代码

简洁实现:仅用2个for循环生成数字金字塔

嘿,你当前的代码确实存在大量冗余——所有行都是硬编码打印的,完全没发挥循环的作用。其实我们可以利用数字金字塔的规律,只用两个for循环就轻松实现,而且代码简洁易维护:

实现代码

for x in range(1, 10):
    row = []
    for y in range(1, x + 1):
        row.append(str(x * y))
    print(' '.join(row))

或者更紧凑的写法(依然是两个for循环,只是把内层循环整合进了生成器表达式):

for x in range(1, 10):
    print(' '.join(str(x * y) for y in range(1, x + 1)))

代码逻辑说明

  • 外层循环for x in range(1, 10):控制金字塔的行数,从第1行到第9行(对应数字1到9)。
  • 内层循环for y in range(1, x + 1):控制每行的数字个数,第x行恰好有x个数字,每个数字是x * y(y从1到x)——这正好匹配你要的每行规律:第x行的第y个数字是x的y倍。
  • 用' '.join()把每行的数字字符串拼接成空格分隔的格式,最后打印整行。

这样的写法完全不需要硬编码任何一行内容,所有数字都通过逻辑生成,严格符合“仅用2个for循环”的要求,可读性和扩展性也强很多~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 06:49:11