<- Back to the chapter.

Answer to Problem 10

Question:

Write code that will print the following (Getting the alignment is hard, at least get the numbers):

  1   2   3   4   5   6   7   8   9
  2   4   6   8  10  12  14  16  18
  3   6   9  12  15  18  21  24  27
  4   8  12  16  20  24  28  32  36
  5  10  15  20  25  30  35  40  45
  6  12  18  24  30  36  42  48  54
  7  14  21  28  35  42  49  56  63
  8  16  24  32  40  48  56  64  72
  9  18  27  36  45  54  63  72  81

Tip: Start by adjusting the code in problem 1 to print:

 0  0  0  0  0  0  0  0  0  0
 0  1  2  3  4  5  6  7  8  9
 0  2  4  6  8  10  12  14  16  18
 0  3  6  9  12  15  18  21  24  27
 0  4  8  12  16  20  24  28  32  36
 0  5  10  15  20  25  30  35  40  45
 0  6  12  18  24  30  36  42  48  54
 0  7  14  21  28  35  42  49  56  63
 0  8  16  24  32  40  48  56  64  72
 0  9  18  27  36  45  54  63  72  81

Then adjust the code to print:

 1  2  3  4  5  6  7  8  9
 2  4  6  8  10  12  14  16  18
 3  6  9  12  15  18  21  24  27
 4  8  12  16  20  24  28  32  36
 5  10  15  20  25  30  35  40  45
 6  12  18  24  30  36  42  48  54
 7  14  21  28  35  42  49  56  63
 8  16  24  32  40  48  56  64  72
 9  18  27  36  45  54  63  72  81

Finally, use an if to print spaces if the number being printed is less than 10.

Answer:

for i in range(1,10):
    for j in range(1,10):
        # Extra space?
        if i*j < 10:
            print (" ",end="")

        print (i*j,end=" " )

    # Move down to the next row
    print()
Variables:
i=
j=
Output:
  1   2   3   4   5   6   7   8   9
  2   4   6   8  10  12  14  16  18
  3   6   9  12  15  18  21  24  27
  4   8  12  16  20  24  28  32  36
  5  10  15  20  25  30  35  40  45
  6  12  18  24  30  36  42  48  54
  7  14  21  28  35  42  49  56  63
  8  16  24  32  40  48  56  64  72
  9  18  27  36  45  54  63  72  81

To make it clear where spaces are, you can turn underlines on or off.

Explanation:

Video: Answer to Problem 10