A questão está no título.
I'gostaria de fazer isso em [tag:Python]. O que I'gostaria de fazer neste exemplo em [tag:C]:
Em C:
#include <stdio.h>
int main() {
int i;
for (i=0; i<10; i++) printf(".");
return 0;
}
Saída:
..........
Em Python:
>>> for i in xrange(0,10): print '.'
.
.
.
.
.
.
.
.
.
.
>>> for i in xrange(0,10): print '.',
. . . . . . . . . .
Em Python impressão
vai adicionar um \n
ou espaço, como eu posso evitar isso? Agora, it'é apenas um exemplo. Don'não me diga que eu posso primeiro construir uma string e depois imprimi-la. I'gostaria de saber como "append" strings para stdout
.
import sys
sys.stdout.write('.')
Você também pode precisar ligar para
sys.stdout.flush()
para garantir que o "stdout" seja lavado imediatamente.
A partir de Python 2.6 você pode importar a função "imprimir" a partir de Python 3:
from __future__ import print_function
Isto permite que você use a solução Python 3 abaixo.
Em Python 3, a declaração print
foi alterada para uma função. Em Python 3, você pode, em vez disso, fazer:
print('.', end='')
Isto também funciona em Python 2, desde que você tenha utilizado de __futuro__ import print_function
.
Se você estiver tendo problemas com o buffer, você pode nivelar a saída adicionando flush=True
argumento de palavra-chave:
print('.', end='', flush=True)
Entretanto, note que a palavra-chave flush' não está disponível na versão da função
print' importada de __future__' em Python 2; ela só funciona em Python 3, mais especificamente em 3.3 e posteriores. Em versões anteriores, você ainda precisará fazer o flush manualmente com uma chamada para
sys.stdout.flush()`.
Nota: O título desta pergunta costumava ser algo como "Como imprimir em pitão?".
Como as pessoas podem vir aqui à procura dele com base no título, Python também suporta a substituição do estilo printf:
>>> strings = [ "one", "two", "three" ]
>>>
>>> for i in xrange(3):
... print "Item %d: %s" % (i, strings[i])
...
Item 0: one
Item 1: two
Item 2: three
E, você pode multiplicar com facilidade os valores das cordas:
>>> print "." * 10
..........
A nova função (a partir do Python 3.0) print
tem um parâmetro opcional end
que lhe permite modificar o caractere final. Há também o sep
para separador.