Properly formatted multiplication table

algorithm, formatting, python, python-3.x, string

Solution

Quick way (Probably too much horizontal space though):

n=int(input('Please enter a positive integer between 1 and 15: '))
for row in range(1,n+1):
    for col in range(1,n+1):
        print(row*col, end="\t")
    print()

Better way:

n=int(input('Please enter a positive integer between 1 and 15: '))
for row in range(1,n+1):
    print(*("{:3}".format(row*col) for col in range(1, n+1)))

And using f-strings (Python3.6+)

for row in range(1, n + 1):
    print(*(f"{row*col:3}" for col in range(1, n + 1)))

Problem

How would I make a multiplication table that's organized into a neat table? My current code is: ``` n=int(input('Please enter a positive integer between 1 and 15: ')) for row in range(1,n+1): for col in range(1,n+1): print(row*col) print() ``` This correctly multiplies everything but has it in list form. I know I need to nest it and space properly, but I'm not sure where that goes?

Original source