tara bah
tara bah

Reputation: 13

Formating Print in Python

Hi everyone I have this code :

n=int(input())
for i in range(1,n+1): 
    for j in range(1,n+1):
       print(i*j)

the output is this:

1
2
3
4
5
2
4
6
8
10
3
6
...

but I want to get output like this :

1 2 3 4 5
2 4 6 8 10
3 6 9 12 15
4 8 12 16 20
5 10 15 20 25

I Don't know what to do for print like this.

Upvotes: 0

Views: 73

Answers (3)

pcsutar
pcsutar

Reputation: 1821

Python 2.x:

n=int(input())
for i in range(1, n + 1):
    val = '';
    for j in range(1, n + 1):
        sep = '' if(j == 5) else ' '
        val += (str) (i * j) +  sep
    print(val)

Python 3.x:

n=int(input())
for i in range(1, n + 1):
    for j in range(1, n + 1):
        print(i*j, end = ' ')
    print()

Output:

5
1 2 3 4 5
2 4 6 8 10
3 6 9 12 15
4 8 12 16 20
5 10 15 20 25

Upvotes: 0

Rubel Biswas
Rubel Biswas

Reputation: 1434

Pythons print function automatically print a newline each time the function is called. but you can set what it will print at the end of the line, with adding end='' for nothing or for space end=' '. In you case you can try this bellow:

n=int(input())

for i in range(1,n+1):
    for j in range(1,n+1):
        print(i*j, end = ' ')
    print() 

And the print at the end will print a newline after each completion of the first loop. Finally you output will be like this:

5
1 2 3 4 5 
2 4 6 8 10 
3 6 9 12 15 
4 8 12 16 20 
5 10 15 20 25

Upvotes: 2

Marivishnu
Marivishnu

Reputation: 80

n = int(input())
for i in range(1,n + 1):
    count = 0
    for j in range(1, n + 1):
        print(i * j, end = ' ')
        count += 1
        if count % (n) == 0:
            count = 0
            print()

I initialized a counter variable and if count mod n is 0, then I assigned the counter to 0 and print a new line. This is the output

5
1 2 3 4 5 
2 4 6 8 10 
3 6 9 12 15 
4 8 12 16 20 
5 10 15 20 25

Upvotes: 0

Related Questions