1 votes

Exécuter plusieurs instructions dans une ligne en Python 3.2.3

Existe-t-il un moyen d'exécuter plusieurs états tout en les réalisant en une seule ligne, comme ceci :

import time
print ("Ok, I know how to write programs in Python now.")
time.sleep(0.5)
print (".") # This should print on the same line as the previous print statement.
time.sleep(0.5)
print (".") # ... As should this one

... Donc la sortie devrait être :

Ok, I know how to write programs in Python now.*.*.

*Attendez 0,5 seconde

3voto

user70219 Points 21

Dans Python 2, l'option print ajoute automatiquement un saut de ligne, vous devez donc utiliser sys.stdout.write() à la place. Vous devrez également importer sys. Le code que vous avez écrit devrait ressembler à ceci :

import time
import sys
sys.stdout.write("Ok, I know how to write programs in Python now.")
time.sleep(0.5)
sys.stdout.write(".")
time.sleep(0.5)
sys.stdout.write(".")

Dans Python 3, print est une fonction acceptant des arguments sous forme de mots-clés. Vous pouvez utiliser la fonction end pour spécifier ce qui doit être placé après votre chaîne. Par défaut, c'est un caractère de nouvelle ligne, mais vous pouvez le changer en une chaîne vide :

import time
print("Ok, I know how to write programs in Python now.", end='')
time.sleep(0.5)
print(".", end='')
time.sleep(0.5)
print(".", end='')

N'oubliez pas non plus que les flux sont mis en mémoire tampon, il est donc préférable de les purger :

import time
import sys
print("Ok, I know how to write programs in Python now.", end='')
sys.stdout.flush()
time.sleep(0.5)
print(".", end='')
sys.stdout.flush()
time.sleep(0.5)
print(".", end='')
sys.stdout.flush()

3voto

Jobi Carter Points 539

Vous devriez être en mesure de le faire avec le end="" syntaxe également.

print("this ",end="")
print("will continue on the same line")
print("but this wont")

Reviendra

this will continue on the same line
but this wont

donc ce qui suit fonctionnerait aussi bien.

import time
print ("Ok, I know how to write programs in Python now.",end="")
time.sleep(0.5)
print (".",end="") # This should print on the same line as the previous print statement.
time.sleep(0.5)
print (".") # ... As should this one

0voto

jobin Points 25504

N'est-ce pas plus simple ?

import time
print ("Ok, I know how to write programs in Python now."),
time.sleep(0.5)
print ("."), # This should print on the same line as the previous print statement.
time.sleep(0.5)
print (".") # ... As should this one

0voto

Joe Massey Points 1

Cela peut-il également être fait avec des entrées ?

print("THIS IS A TEST AREA")
print()
print("TETST OF SAME LINE INTERACTION")
print("X:  ", end="") #This works Fine
input("")
time.sleep(0.5)  #This however dew to python3 wont?
print("     STAR")

Cette sortie ressemble à ceci...

THIS IS A TEST AREA

TETST OF SAME LINE INTERATION
X:  
     STAR
>>>

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X