Die Frage steht im Titel.
Ich würde es gerne in [tag:Python] machen. Was ich in diesem Beispiel in [tag:C] machen möchte:
In C:
#include <stdio.h>
int main() {
int i;
for (i=0; i<10; i++) printf(".");
return 0;
}
Ausgabe:
..........
In Python:
>>> for i in xrange(0,10): print '.'
.
.
.
.
.
.
.
.
.
.
>>> for i in xrange(0,10): print '.',
. . . . . . . . . .
In Python fügt print
ein n
oder ein Leerzeichen hinzu, wie kann ich das vermeiden? Nun, das ist nur ein Beispiel. Sagen Sie mir nicht, dass ich erst eine Zeichenkette erstellen und sie dann drucken kann. Ich würde gerne wissen, wie man Zeichenketten an stdout
anhängt.
import sys
sys.stdout.write('.')
Möglicherweise müssen Sie auch anrufen
sys.stdout.flush()
aufrufen, um sicherzustellen, dass stdout
sofort gespült wird.
Ab Python 2.6 können Sie die Funktion print
aus Python 3 importieren:
from __future__ import print_function
Damit können Sie die folgende Python 3-Lösung verwenden.
In Python 3 wurde die Anweisung print
in eine Funktion umgewandelt. In Python 3 können Sie stattdessen tun:
print('.', end='')
Das funktioniert auch in Python 2, vorausgesetzt, Sie haben from __future__ import print_function
verwendet.
Wenn Sie Probleme mit der Pufferung haben, können Sie die Ausgabe spülen, indem Sie das Schlüsselwort flush=True
als Argument hinzufügen:
print('.', end='', flush=True)
Beachten Sie jedoch, dass das Schlüsselwort flush
in der Version der Funktion print
, die von __future__
in Python 2 importiert wurde, nicht verfügbar ist; es funktioniert nur in Python 3, genauer gesagt 3.3 und später. In früheren Versionen müssen Sie immer noch manuell mit einem Aufruf von sys.stdout.flush()
flushen.
Hinweis: Der Titel dieser Frage lautete früher "Wie druckt man in Python?".
Da die Leute aufgrund des Titels vielleicht hierher kommen und danach suchen, unterstützt Python auch die printf-Ersetzung:
>>> 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
Und Sie können String-Werte ganz einfach multiplizieren:
>>> print "." * 10
..........
Die neue (ab Python 3.0) Funktion print
hat einen optionalen Parameter end
, mit dem Sie das Endzeichen ändern können. Es gibt auch sep
für Trennzeichen.