114

I want to print the looped output to the screen on the same line.

How do I this in the simplest way for Python 3.x

I know this question has been asked for Python 2.7 by using a comma at the end of the line i.e. print I, but I can't find a solution for Python 3.x.

i = 0 
while i <10:
     i += 1 
     ## print (i) # python 2.7 would be print i,
     print (i) # python 2.7 would be 'print i,'

Screen output.

1
2
3
4
5
6
7
8
9
10

What I want to print is:

12345678910

New readers visit this link aswell http://docs.python.org/release/3.0.1/whatsnew/3.0.html

Bhargav Rao
  • 50,140
  • 28
  • 121
  • 140
onxx
  • 1,435
  • 3
  • 13
  • 22

7 Answers7

213

From help(print):

Help on built-in function print in module builtins:

print(...)
    print(value, ..., sep=' ', end='\n', file=sys.stdout)

    Prints the values to a stream, or to sys.stdout by default.
    Optional keyword arguments:
    file: a file-like object (stream); defaults to the current sys.stdout.
    sep:  string inserted between values, default a space.
    end:  string appended after the last value, default a newline.

You can use the end keyword:

>>> for i in range(1, 11):
...     print(i, end='')
... 
12345678910>>> 

Note that you'll have to print() the final newline yourself. BTW, you won't get "12345678910" in Python 2 with the trailing comma, you'll get 1 2 3 4 5 6 7 8 9 10 instead.

DSM
  • 342,061
  • 65
  • 592
  • 494
  • Thanks. Yes very true that print i, will have an inserted space. What would the code be for it behaving like python 2 with comma? – onxx Aug 20 '12 at 04:25
  • 2
    Same thing but with `end = ' '`. Instead of ending every print "line" with nothing, you end it with a space. – DSM Aug 20 '12 at 04:29
  • Thanks for the quick response and update. That makes so much more sense now. I read the help function a dozen times and wasn't obviously paying attention. :) – onxx Aug 20 '12 at 04:39
  • Thanks, quick and easy. – Chandan Kumar Oct 29 '19 at 13:54
38

* for python 2.x *

Use a trailing comma to avoid a newline.

print "Hey Guys!",
print "This is how we print on the same line."

The output for the above code snippet would be,

Hey Guys! This is how we print on the same line.

* for python 3.x *

for i in range(10):
    print(i, end="<separator>") # <separator> = \n, <space> etc.

The output for the above code snippet would be (when <separator> = " "),

0 1 2 3 4 5 6 7 8 9
Sourav Badami
  • 769
  • 7
  • 13
14

Similar to what has been suggested, you can do:

print(i, end=',')

Output: 0,1,2,3,

chair_person
  • 11
  • 1
  • 4
Crane Huang
  • 151
  • 1
  • 6
7
print("single",end=" ")
print("line")

this will give output

single line

for the question asked use

i = 0 
while i <10:
     i += 1 
     print (i,end="")
5

You can do something such as:

>>> print(''.join(map(str,range(1,11))))
12345678910
Avichal Badaya
  • 3,423
  • 1
  • 21
  • 23
2
>>> for i in range(1, 11):
...     print(i, end=' ')
...     if i==len(range(1, 11)): print()
... 
1 2 3 4 5 6 7 8 9 10 
>>> 

This is how to do it so that the printing does not run behind the prompt on the next line.

J_B_M
  • 47
  • 7
1

Lets take an example where you want to print numbers from 0 to n in the same line. You can do this with the help of following code.

n=int(raw_input())
i=0
while(i<n):
    print i,
    i = i+1

At input, n = 5

Output : 0 1 2 3 4 
shivam gupta
  • 471
  • 5
  • 10
  • 3
    This answer turned up in the low quality review queue, presumably because you don't provide any explanation of the code. If this code answers the question, consider adding adding some text explaining the code in your answer. This way, you are far more likely to get more upvotes — and help the questioner learn something new. – lmo Aug 25 '16 at 22:03
  • @imo Actually his code doesn't answer the question, as the question explicitly asks for Python 3.x. Code provided .. print i, ..only works in Python 2 – onxx Jul 14 '20 at 21:49