I'm asked to write a loop system that prints the following:
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8
0 1 2 3 4 5 6 7
0 1 2 3 4 5 6
0 1 2 3 4 5
0 1 2 3 4
0 1 2 3
0 1 2
0 1
0
However, my script prints this:
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6
# ... and so on
The code to be fixed is:
for row in range(10):for column in range(row):print ''for column in range(10-row):print column,
You have too many loops, you only need two:
for row in range(10):for column in range(10-row):print column,print("")0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8
0 1 2 3 4 5 6 7
0 1 2 3 4 5 6
0 1 2 3 4 5
0 1 2 3 4
0 1 2 3
0 1 2
0 1
0
Or importing print from future which will work for python2.7 and 3:
from __future__ import print_functionfor row in range(10):for column in range(10-row):print(column,end=" ")print()
If you want a one liner you can use join:
print("\n".join([" ".join(map(str,range(10-row))) for row in range(10)]))