我有
for i in range(0, 11): print i, "\n", i
我希望我的python程序以这种方式为每个for循环打印
第一圈:
1
1
第二循环:
1
2
2
1
第3次循环:
1
2
3
3
2
1
我尝试过使用\ r \ n或\ 033 [1A但它们只是覆盖了上一行。有没有办法可以“推”输出线,所以我不会覆盖它?
答案 0 :(得分:5)
一种方法,
def foo(x, limit):
if x < limit :
print x
foo(x + 1, limit)
print x
foo(1, 11)
答案 1 :(得分:1)
当你正在尝试时,不能在1 for循环中执行此操作。
正如我所说,你可以通过使用列表
这样做>>> l1 = []
>>> l2 = []
>>> for i in range(0, 11):
... l1.append(i)
... l2 = [i] + l2
>>> l1.extend(l2)
>>> for i in l1:
... print i
0
1
2
3
4
5
6
7
8
9
10
10
9
8
7
6
5
4
3
2
1
0
答案 2 :(得分:1)
两个列表生成器的连接。
>>> ladder = [x for x in range(5)] + [x for x in range(5,-1,-1)]
>>> ladder
[0, 1, 2, 3, 4, 5, 4, 3, 2, 1, 0]
>>> for x in ladder:
... print x
...
0
1
2
3
4
5
4
3
2
1
0
>>>
答案 3 :(得分:0)
解决此问题的方法之一
def two_side_print(start, end):
text = [str(i) for i in range(start,end)]
print '\n'.join(text), '\n', '\n'.join(reversed(text))
two_side_print(1, 11)
答案 4 :(得分:0)
另一种选择是将打印值保存在列表中,并在每次循环迭代中以相反的顺序打印该列表。
我的建议:
l = []
for i in range(1, 5):
print 'Loop '+str(i) # This is to ease seeing the printing results
for val in l:
print val
print i
l.insert(len(l),i)
for val in reversed(l):
print val
循环的输出从0
迭代到5
:
Loop 1
1
1
Loop 2
1
2
2
1
Loop 3
1
2
3
3
2
1
Loop 4
1
2
3
4
4
3
2
1
我希望这就是你要找的东西。
答案 5 :(得分:0)
您可以使用递归函数来帮助:
index do
... your code here ...
end
用法:
def print_both_ways(start, end):
print(start)
if start != end:
print_both_ways(start+1, end)
print(start)