web-dev-qa-db-fra.com

Imprimer une nouvelle sortie sur la même ligne

Je veux imprimer la sortie en boucle à l'écran sur la même ligne.

Comment puis-je cela de la manière la plus simple pour Python 3.x

Je sais que cette question a été posée pour Python 2.7 en utilisant une virgule à la fin de la ligne, c’est-à-dire print I, mais je ne trouve pas de solution pour 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,'

Sortie d'écran.

1
2
3
4
5
6
7
8
9
10

Ce que je veux imprimer, c'est:

12345678910

Les nouveaux lecteurs visitent également ce lien http://docs.python.org/release/3.0.1/whatsnew/3.0.html

94
onxx

De 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.

Vous pouvez utiliser le mot clé end:

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

Notez que vous devrez print() la nouvelle ligne vous-même. En passant, vous n'obtiendrez pas "12345678910" dans Python 2 avec la virgule, mais vous obtiendrez 1 2 3 4 5 6 7 8 9 10.

158
DSM

* pour python 2.x *

Utilisez une virgule de fin pour éviter une nouvelle ligne.

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

La sortie de l'extrait de code ci-dessus serait,

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

* pour python 3.x *

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

La sortie de l’extrait de code ci-dessus serait (lorsque <separator> = " "),

0 1 2 3 4 5 6 7 8 9
28
Sourav Badami

Semblable à ce qui a été suggéré, vous pouvez faire:

print(i,end=',')

Sortie: 0, 1, 2, 3,

8
Crane Huang

Vous pouvez faire quelque chose comme:

>>> print(''.join(map(str,range(1,11))))
12345678910
4
Avichal Badaya
print("single",end=" ")
print("line")

cela donnera une sortie

single line

pour la question posée

i = 0 
while i <10:
     i += 1 
     print (i,end="")
4
Sidharth Menon
>>> 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 
>>> 

Voici comment procéder afin que l'impression ne soit pas dépassée par l'invite de la ligne suivante.

2
J_B_M

Prenons un exemple où vous souhaitez imprimer des nombres de 0 à n sur la même ligne. Vous pouvez le faire à l'aide du code suivant.

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

En entrée, n = 5

Output : 0 1 2 3 4 
2
shivam gupta