如何正确打印:

时间:2013-11-14 06:05:21

标签: python

我正在尝试使用interactivepython.org自学python。我遇到了一个我无法弄清楚的问题。我有斜率和间距正确。我需要它每次打印少一个数字。有人可以帮助新手吗?...

我的代码:

for j in range(11):

    for i in range(j):

        print(str(i), end=" ")

    print()

    print("")

输出:

0 

0 1 

0 1 2 

0 1 2 3 

0 1 2 3 4 

0 1 2 3 4 5 

0 1 2 3 4 5 6 

0 1 2 3 4 5 6 7 

0 1 2 3 4 5 6 7 8 

0 1 2 3 4 5 6 7 8 9 

期望的输出:

10

11 12

13 14 15

16 17 18 19

20 21 22 23 24

25 26 27 28 29 30

31 32 33 34 35 36 37

38 39 40 41 42 43 44 45

46 47 48 49 50 51 52 53 54

练习是关于嵌套循环...我知道还有其他方法可以做到这一点。

7 个答案:

答案 0 :(得分:3)

这应该这样做:

start = 10
width = 9
for i in range(1, width+1):
    for _ in range(i):
        print (start, end=" ")
        start += 1
    print('\n')

输出

10 

11 12 

13 14 15 

16 17 18 19 

20 21 22 23 24 

25 26 27 28 29 30 

31 32 33 34 35 36 37 

38 39 40 41 42 43 44 45 

46 47 48 49 50 51 52 53 54 

答案 1 :(得分:1)

你可以这样做

current, levels = 10, 9
for i in range(levels):
    for j in range(i + 1):
        print(current, end = " ")
        current += 1
    print("\n")

<强>输出

10

11 12

13 14 15

16 17 18 19

20 21 22 23 24

25 26 27 28 29 30

31 32 33 34 35 36 37

38 39 40 41 42 43 44 45

46 47 48 49 50 51 52 53 54

答案 2 :(得分:1)

>>> lst = list(range(54,9, -1))
>>> for j in range(11):
...     for i in range(j):
...         if len(lst):
...             print(lst.pop(), end=" ")
...     print(" ")

答案 3 :(得分:1)

再次为你布兰登肖克利这个:)

代码:

x = 9
lines = 10
for i in range(lines):
    for j in range(i):
       x+=1
       print x,
    print ''

输出:

10 
11 12 
13 14 15 
16 17 18 19 
20 21 22 23 24 
25 26 27 28 29 30 
31 32 33 34 35 36 37 
38 39 40 41 42 43 44 45 
46 47 48 49 50 51 52 53 5  

希望这有助于:)

答案 4 :(得分:0)

inc = 10

for j in range(10):

    for i in range(j):

        print(inc, end=" ")
        inc += 1


    print()

    print("")

这有什么不对吗?

答案 5 :(得分:0)

单循环,在Python 2.x中(每次打印后无法删除空格)

c = 1
j = 0
for i in range(10, 55):
  print str(i) + ',',
  j += 1
  if j == c:
    print
    c += 1
    j = 0

答案 6 :(得分:0)

使用join

start = 10
for i in range(1, 10):
    print(' '.join(map(str, range(start, start + i))))
    start += i

使用join和一些数学的无意义的紧凑版本:

print('\n'.join(' '.join(map(str, 
    range(10 + i * (i+1) / 2, 10 + (i+1) * (i+2) / 2))) for i in range(9)))

令人困惑的是,这也有效(在python 2中):

j = 9
for i in range(10):
    for j in range(j + 1, j + i + 1):
        print j, 
    print