Executa várias instruções em uma linha no Python 3.2.3 [em espera]

1

Existe uma maneira de executar vários statemens ao executá-los em uma linha, como esta:

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

... Então a saída deve ser:

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

* Espera 0,5 segundos

    
por Marco Scannadinari 16.07.2012 / 15:46

4 respostas

3

No Python 2, a instrução print adiciona automaticamente um feed de linha, então você precisa usar sys.stdout.write (). Você também terá que importar sys. O código que você escreveu deve ficar assim:

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(".")

No Python 3, print é uma função que aceita argumentos de palavras-chave. Você pode usar o argumento da palavra-chave end para especificar o que deve ser colocado após sua sequência. Por padrão, é um novo caractere de linha, mas você pode alterá-lo para uma string vazia:

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='')

Além disso, lembre-se de que os fluxos são armazenados em buffer, por isso, é melhor liberá-los:

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()
    
por Kalle Elmér 16.07.2012 / 17:38
3

Você deve conseguir fazer isso com a sintaxe end="" também.

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

retornará

this will continue on the same line
but this wont

para que o seguinte também funcione.

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
    
por Jobi Carter 16.07.2012 / 21:17
0

Isto não é mais simples ?:

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
    
por jobin 29.12.2012 / 10:22
0

Isso também pode ser feito com entradas?

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")

Esta saída parece assim ...

THIS IS A TEST AREA

TETST OF SAME LINE INTERATION
X:  
     STAR
>>> 
    
por Joe Massey 07.05.2013 / 20:20