0

我正在尝试使用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

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

4

7 回答 7

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 
于 2013-11-14T06:09:37.053 回答
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
于 2013-11-14T06:09:27.580 回答
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(" ")
于 2013-11-14T06:14:39.407 回答
1

好吧,这又是给你的 Brandon Shockley :)

代码:

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  

希望这可以帮助 :)

于 2013-11-14T06:16:29.513 回答
0
inc = 10

for j in range(10):

    for i in range(j):

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


    print()

    print("")

这有什么问题吗?

于 2013-11-14T06:11:09.807 回答
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
于 2013-11-14T21:34:23.407 回答
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
于 2013-11-15T01:08:35.973 回答