Search code examples
pythonfor-loop

How to print a 10*10 times table as a grid?


I am trying to print a 10x10 times table using for loops.

Here's my attempt:

for x in range (1, 11):
    for y in range (1, 11):
        print (x*y)
    print()

The output is a vertical line of numbers. I need it like the square table kind.


Solution

  • What you need to do is leverage the end argument:

    for x in range (1, 11):
        for y in range (1, 11):
            print ('{:3}'.format(x*y), end=' ')
        print()
    

    Also, note the way the row entries are formatted. By using '{:3}'.format(x*y), the expression is padded with spaces out to three digits. For more details on formatting, consult the documentation.

    Sample output:

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