Python 如何正确打印:

Python 如何正确打印:,python,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

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

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

您可以这样做

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
这应该做到:

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 

这有什么问题吗?

好吧,这是给你的,布兰登·肖克利:)

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

希望这有帮助:)

单循环,在Python2.x中(不能在每次打印后删除空格)


使用
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中):


谢谢,这和我想的差不多。我总是觉得在我问完我自己的问题后,我会回答它。谢谢大家!都是很好的答案。然而,我确实需要在中间打印一个空白行,这是最好的方法吗?它有效吗?我更好奇的是,如果我通过循环递增或其他原因打破了任何最佳实践,这不是最佳答案。
c = 1
j = 0
for i in range(10, 55):
  print str(i) + ',',
  j += 1
  if j == c:
    print
    c += 1
    j = 0
start = 10
for i in range(1, 10):
    print(' '.join(map(str, range(start, start + i))))
    start += i
print('\n'.join(' '.join(map(str, 
    range(10 + i * (i+1) / 2, 10 + (i+1) * (i+2) / 2))) for i in range(9)))
j = 9
for i in range(10):
    for j in range(j + 1, j + i + 1):
        print j, 
    print