Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

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,
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
370 views
Welcome To Ask or Share your Answers For Others

1 Answer

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_function

for 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("
".join([" ".join(map(str,range(10-row))) for row in range(10)]))

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...