嵌套循环数输出

时间:2013-10-17 21:49:30

标签: python loops for-loop

我需要输出这个

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()

我得到了所有正确的数字,它的格式不正确。如果你们可以用我的方式提出一些提示,我会很感激。

5 个答案:

答案 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)