How to Display a 1D and 2D Multiplication Table in Python?

Rate this post

Python Multiplication Table For Loop

To calculate the multiplication table for a given number, iterate over all values i=0, 1, ..., limit in a for loop and use the following statement as a loop body: print(number, 'x', i, '=', number * i). This prints all equations, line by line, in the form i x j = k.

The following code prints the multiplication table for 11, i.e., 0x11, 1x11, ..., 9x11 to an upper limit of 10 (excluded):

# Calculate Multiplication Table

# all multiples of this number
number = 11

# up to this number, excluded
limit = 10  

for i in range(limit):
    print(number, 'x', i, '=', number * i)

The output is as follows:

11 x 0 = 0
11 x 1 = 11
11 x 2 = 22
11 x 3 = 33
11 x 4 = 44
11 x 5 = 55
11 x 6 = 66
11 x 7 = 77
11 x 8 = 88
11 x 9 = 99

The code performs the following steps:

  • Set number=11 for which the multiplication table should be calculated.
  • Set limit=10 to restrict the number of consecutive factors to 0, 1, …, 9.
  • Iterate over all factors 0, 1, …, 9 using a for loop.
  • In the loop body, print the multiplication equation and its result using a comma-separated list in the print() statement.

But what if you’re required to use a while loop to print the multiplication table? Let’s modify our program accordingly!

Python Multiplication Table While Loop

To calculate the multiplication table for a given number, iterate over all values i=0, 1, ..., limit in a while loop and use the following statement as a loop body: print(number, 'x', i, '=', number * i). This prints all equations, line by line, in the form i x j = k.

The following code prints the multiplication table for 11, i.e., 0x11, 1x11, ..., 9x11 to an upper limit of 10 (excluded):

# Calculate Multiplication Table

# all multiples of this number
number = 11

# up to this number, excluded
limit = 10  

# set loop variable
i = 0

while i<limit:
    print(number, 'x', i, '=', number * i)
    i += 1

Again, the output is as follows:

11 x 0 = 0
11 x 1 = 11
11 x 2 = 22
11 x 3 = 33
11 x 4 = 44
11 x 5 = 55
11 x 6 = 66
11 x 7 = 77
11 x 8 = 88
11 x 9 = 99

The code performs the following steps:

  • Set number=11 for which the multiplication table should be calculated.
  • Set limit=10 to restrict the number of consecutive factors to 0, 1, …, 9.
  • Iterate over all factors 0, 1, …, 9 using a while loop by explicitly defining a loop variable i.
  • In the loop body, print the multiplication equation and its result using a comma-separated list in the print() statement. Then increase the loop variable using the inline addition operator i += 1.

Python Multiplication Table Nested For Loop

You can create a full multiplication table where cell (i,j) corresponds to the product i*j by using a nested for loop as follows:

number = 10

for i in range(number):
    print()
    for j in range(number):
        print(i*j, end='\t')

The output is the full multiplication table:

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

Explanation: The code iterates in a nested for loop over each cell. Cell (i,j) in this table corresponds to the product i*j. After each cell, we add a tabular character '\t' as the end argument of the print() function. After each line, we print an empty line using the empty print() function.

Python Multiplication Table List Comprehension

You can create a full multiplication table where cell (i,j) corresponds to the product i*j by using a nested for loop, or better yet, a list comprehension statement as follows:

number = 10

for i in range(number):
    print(*[j*i for j in range(number)], sep='\t')

The output is the full multiplication table:

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

Cell (i,j) in this table corresponds to the product i*j.

Explanation: The code iterates in a for loop over each line. It then generates the multiplication results line-wise in the list comprehension expression [j*i for j in range(number)]. This list is unpacked into the print() function using the asterisk prefix *. All values are separated using a tabular character '\t' in the separator argument of the print() function.