我需要输出这个
1
22
333
4444
55555
666666
7777777
88888888
999999999
到目前为止我只有:
def main():
for i in range(10):
for n in range(i):
print(i)
return
main()
我得到了所有正确的数字,它的格式不正确。如果你们可以用我的方式提出一些提示,我会很感激。
答案 0 :(得分:13)
简单地乘以字符串版本:
for i in range(10):
print(str(i) * i)
输出:
>>> for i in range(10):
... print(str(i) * i)
...
1
22
333
4444
55555
666666
7777777
88888888
999999999
如果 使用嵌套循环,请告诉print()
函数不要在内部循环中打印换行符,方法是将end
选项设置为空字符串;外循环中的空print()
调用足以添加必要的换行符:
for i in range(10):
for n in range(i):
print(i, end='')
print()
答案 1 :(得分:2)
上面说的每个答案都使用字符串来解决这个问题。还有另一种方法,通过使用公式a_n = n *((10 ^ n - 1)/ 9)对n <= 9应用简单数学,更容易。请参阅下面的代码段(使用Python 3)
for i in range(1,n)
print i*(((pow(10,i)-1) // 9)
n = 4
输出
1
22
333
4444
答案 2 :(得分:1)
def main():
for i in range(10):
for n in range(i):
print(i, end='')
print()
main()
答案 3 :(得分:0)
def main(n):
for x in range(n):
if x>0:
print(str(x)*x+'\n')
main(n)
答案 4 :(得分:0)
一行,不要使用str:
print((10**(i)//9)*i)