如何实现数字按自身数值次数重复打印的图案
解决方法
你原来的代码有两个问题:
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
相关产品推荐
相关产品推荐

