Ich habe diesen Code:
>>> for i in xrange(20):
... print 'a',
...
a a a a a a a a a a a a a a a a a a a a
Ich möchte ausgeben 'a'
, ohne ' '
wie folgt:
aaaaaaaaaaaaaaaaaaaa
Ist es möglich?
python
string
printing
python-2.x
pythonFoo
quelle
quelle
"".join("a" for i in xrange(20))
. (Es ist viel flexibler als nur zu tun"a" * 20
, da ich davon ausgehe, dass es ein vereinfachtes Beispiel ist).Antworten:
Es gibt verschiedene Möglichkeiten, um Ihr Ergebnis zu erzielen. Wenn Sie nur eine Lösung für Ihren Fall suchen , verwenden Sie die Zeichenfolgenmultiplikation als @ Ant- Erwähnungen. Dies funktioniert nur, wenn jede Ihrer
print
Anweisungen dieselbe Zeichenfolge druckt. Beachten Sie, dass es für die Multiplikation einer beliebigen Zeichenfolge'foo' * 20
funktioniert (z . B. funktioniert).Wenn Sie dies im Allgemeinen tun möchten, bauen Sie eine Zeichenfolge auf und drucken Sie sie einmal aus. Dies verbraucht etwas Speicherplatz für die Zeichenfolge, ruft jedoch nur einen einzigen Aufruf auf
print
. Beachten Sie, dass die Verkettung+=
von Zeichenfolgen in der Größe der zu verkettenden Zeichenfolge jetzt linear ist, sodass dies schnell geht.Oder Sie können es direkter mit sys.stdout tun . write () , die
print
eine Hülle um ist. Dadurch wird nur die von Ihnen angegebene Rohzeichenfolge ohne Formatierung geschrieben. Beachten Sie, dass auch am Ende der 20a
s keine neue Zeile gedruckt wird .Python 3 ändert die
print
Anweisung in eine print () - Funktion , mit der Sie einenend
Parameter festlegen können . Sie können es in> = 2.6 verwenden, indem Sie aus importieren__future__
. Ich würde dies jedoch in jedem ernsthaften 2.x-Code vermeiden, da es für diejenigen, die 3.x noch nie verwendet haben, etwas verwirrend sein wird. Es sollte Ihnen jedoch einen Vorgeschmack auf einige der Vorteile geben, die 3.x mit sich bringt.quelle
"".join(...)
stattdessen.+=
in Python ist eine konstante Zeitoperation für die Verkettung eines einzelnen Zeichens.Ab PEP 3105: Drucken als Funktion im Dokument Was ist neu in Python 2.6 :
Offensichtlich funktioniert das nur mit Python 3.0 oder höher (oder 2.6+ mit einem
from __future__ import print_function
am Anfang). Dieprint
Anweisung wurde entfernt und wurdeprint()
standardmäßig zur Funktion in Python 3.0.quelle
Sie können das Leerzeichen unterdrücken, indem Sie eine leere Zeichenfolge zwischen den
print
Anweisungen drucken .Eine sauberere Lösung besteht jedoch darin, zuerst die gesamte Zeichenfolge zu erstellen, die Sie drucken möchten, und sie dann mit einer einzelnen
print
Anweisung auszugeben .quelle
sys.stdout.write()
ist in diesem Fall bequemer. Ich wollte jedoch zeigen, dass das Schreiben einer leeren Zeichenfolge in stdout den Abstand zwischen Elementen unterdrückt, die mit geschrieben wurdenprint
, was in ähnlichen Situationen nützlich sein kann.Sie können ein Rücktastezeichen (
'\b'
) drucken :Ergebnis:
quelle
Python 3.x:
Python 2.6 oder 2.7:
quelle
Wenn Sie möchten, dass sie einzeln angezeigt werden, können Sie Folgendes tun:
sys.stdout.flush()
ist erforderlich, um zu erzwingen, dass das Zeichen bei jedem Ausführen der Schleife geschrieben wird.quelle
Nur als Randnotiz:
Das Drucken ist O (1), aber das Erstellen einer Zeichenfolge und das Drucken ist O (n), wobei n die Gesamtzahl der Zeichen in der Zeichenfolge ist. Also ja, während das Erstellen des Strings "sauberer" ist, ist es nicht die effizienteste Methode, dies zu tun.
Ich würde es so machen:
Jetzt haben Sie eine "Druckfunktion", die jede Zeichenfolge druckt, die Sie ihr geben, ohne jedes Mal das neue Zeilenzeichen zurückzugeben.
Die Ausgabe lautet: Hallo Welt!
Wenn Sie jedoch Ganzzahlen, Gleitkommazahlen oder andere Nicht-Zeichenfolgenwerte drucken möchten, müssen Sie diese mit der Funktion str () in eine Zeichenfolge konvertieren.
Die Ausgabe ist: 2 4
quelle
Entweder was Ant sagt oder sich in einer Zeichenfolge ansammeln, dann einmal drucken:
quelle
ohne was? meinst du
?
quelle
das ist wirklich einfach
Für Python 3+ -Versionen müssen Sie nur die folgenden Codes schreiben
Konvertieren Sie einfach die Schleife in die folgenden Codes, Sie müssen sich nicht um andere Dinge kümmern
quelle
BEEINDRUCKEND!!!
Es ist ziemlich lange her
In Python 3.x wird es jetzt ziemlich einfach sein
Code:
Ausgabe:
Weitere Informationen zur Funktion print ()
Hier :
Sie können mehrere Werte mit Kommas drucken
3 Werte werden durch '-' getrennt
Sie können ein beliebiges Zeichen anstelle dieser geraden Zeichenfolge wie sep = '@' oder sep = 'good' verwenden.
Standardmäßig setzen Sie die Druckfunktion '\ n' am Ende der Ausgabe
Sie können jedoch ein beliebiges Zeichen oder eine beliebige Zeichenfolge verwenden, indem Sie den Wert end variale ändern
wie end = '$' oder end = '.' oder end = 'Hallo'
Dies ist ein Standardwert, Systemstandardausgabe
Mit diesem Argument können Sie einen Ausgabedateistream wie erstellen
Mit diesem Code erstellen Sie eine Datei mit dem Namen output.txt, in der Ihre Ausgabe als Programmierer gespeichert wird
Dies ist ein Standardwert mit flush = True. Sie können den Stream zwangsweise leeren
quelle
so einfach ist das
quelle