You need to enable JavaScript to run this app. 如何使用Python打印逐行幂次递增的三角数字图案
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python打印逐行幂次递增的三角数字图案

原代码问题定位
  • 内层循环中直接把循环变量columns赋值为rows**rows,既覆盖了原本代表列位置的索引值,计算逻辑也完全偏离图案规则:固定用行号做底数、行号做指数,同一行的所有位置都会输出同一个数,根本不会随列位置变化。
  • 按当前代码运行的实际输出,第3行会打印27 27 27,和目标中的3 9 27完全不符。
目标图案的数值生成规律

逐行拆解目标输出的核心规则:

  • 第n行(n从1开始计数)共有n个数字
  • 该行第k个位置的数字,是n的k次方,即n ** k
    • 例如第5行,k从1遍历到5,依次计算51、52、53、54、5^5,正好对应目标中的5 25 125 625 3125
正确实现逻辑与代码

基础可运行版本:

for rows in range(1, 6):
    for col_idx in range(1, rows + 1):
        current_num = rows ** col_idx
        print(current_num, end=' ')
    print()

如果需要消除每行末尾残留的多余空格,可以用列表拼接的方式优化输出:

for rows in range(1, 6):
    row_content = [str(rows ** col_idx) for col_idx in range(1, rows + 1)]
    print(' '.join(row_content))
代码核心调整点
  • 不再覆盖循环变量的原始语义,把列位置的遍历值单独作为幂次计算依据,不再固定用行号当指数
  • 幂次的取值跟着当前列的位置走,每行的数字从1次方开始逐步计算到与当前行号相等的次方,完全匹配图案规则

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.23 09:24:03