Eu gostaria de fazer várias declarações que dão saída padrão sem ver novas linhas entre as declarações.
Especificamente, suponhamos que sim:
for item in range(1,100):
print item
O resultado é:
1
2
3
4
.
.
.
Como fazer com que isto pareça:
1 2 3 4 5 ...
Melhor ainda, é possível imprimir o número único sobre o último número, então apenas um número está no ecrã de cada vez?
Alterar "item de impressão" para:
impressão(item, end=" ")
em Python 3Se você quiser imprimir os dados dinamicamente, use a seguinte sintaxe:
print(item, sep=' ', end='', flush=True)
em Python 3Utilize imprimir item,
para fazer a declaração de impressão omitir a nova linha.
Em Python 3, it's print(item, end=" ")
.
Se você quiser que todos os números sejam exibidos no mesmo lugar, use, por exemplo (Python 2.7):
to = 20
digits = len(str(to - 1))
delete = "\b" * (digits + 1)
for i in range(to):
print "{0}{1:{2}}".format(delete, i, digits),
Em Python 3, it'é um pouco mais complicado; aqui você precisa dar descarga sys.stdout
ou ele ganhou'não imprima nada até que o loop tenha terminado:
import sys
to = 20
digits = len(str(to - 1))
delete = "\b" * (digits)
for i in range(to):
print("{0}{1:{2}}".format(delete, i, digits), end="")
sys.stdout.flush()
In [9]: print?
Type: builtin_function_or_method
Base Class: <type 'builtin_function_or_method'>
String Form: <built-in function print>
Namespace: Python builtin
Docstring:
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.