我正在尝试使用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
练习是关于嵌套循环...我知道还有其他方法可以做到这一点。
答案 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