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

如何实现数字按自身数值次数重复打印的图案

解决方法

你原来的代码有两个问题:

  • range(number) 生成的是0到number-1的序列,但你需要的是从1到number的数字
  • i * i 是计算平方,不是重复打印数字

正确实现可以这么写:

def print_numbers(number):
    for i in range(1, number + 1):
        print(' '.join([str(i)] * i))

简单解释:

  • range(1, number + 1):让循环变量i从1开始,到number结束(包含number)
  • [str(i)] * i:生成一个包含i个字符串版i的列表,比如i=3时就是['3', '3', '3']
  • ' '.join(...):用空格把列表元素连起来,得到"3 3 3"
  • 最后打印这个字符串,自动换行

也可以用字符串乘法简化写法:

def print_numbers(number):
    for i in range(1, number + 1):
        print((str(i) + ' ') * i).rstrip()

这里(str(i) + ' ') * i会生成带末尾空格的字符串,rstrip()用来去掉结尾多余的空格。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 21:40:22