Miryloth Miryloth - 5 months ago 27
Python Question

How to print multiplication table using nested for loops

I need some help printing multiplication table using nested for loop. My code right now is:

Answer

One of the simplest methods would be to start counting from 0 instead of 1:

for row in range(0, 10):
    for col in range(0, 10):
        num = row * col
        if num < 10:
            empty = "  "
        else:
            if num < 100: 
                empty  = " " 
        if col == 0:
            if row == 0:
                print("    ", end = '')
            else:
                print("  ", row, end='')
        elif row == 0:
            print("  ", col, end='')
        else:
            print(empty, num, end = '')
    print()

this will print

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

That being said, here is a one-liner version that results in the same output:

print("\n".join(("{:>4}"*10).format(*(i*j if i*j else i+j if i+j else "" for j in range(10))) for i in range(10)))