2421 Stimmen

Wie drucke ich ohne Zeilenumbruch oder Leerzeichen?

Beispiel in C:

for (int i = 0; i < 4; i++)
    printf(".");

出力します。

....

In Python:

>>> for i in range(4): print('.')
.
.
.
.
>>> print('.', '.', '.', '.')
. . . .

In Python, print wird eine \n oder Raum. Wie kann ich das vermeiden? Ich würde gerne wissen, wie man Zeichenketten "anhängen" kann stdout .

8 Stimmen

Für diejenigen, die die Dokumentation zur String-Formatierung von Python durchsuchen: docs.python.org/library/stdtypes.html#string-formatting

1 Stimmen

Es sieht so aus, als ob eine ähnliche Frage schon einmal gestellt worden wäre: https://stackoverflow.com/q/255147/9325817

1 Stimmen

Etwas spät zur Party, aber warum nicht print("." * 10) ?

42voto

SilentGhost Punkte 285785

El print Funktion in Python 3.x hat eine optionale end Parameter, mit dem Sie das Endzeichen ändern können:

print("HELLO", end="")
print("HELLO")

Ausgabe:

HELLOHELLO

Außerdem gibt es sep für Abscheider:

print("HELLO", "HELLO", "HELLO", sep="")

Ausgabe:

HALLO, HALLO, HALLO

Wenn Sie dies in Python 2.x verwenden möchten, fügen Sie dies einfach in der Start Ihrer Datei:

from __future__ import print_function

2 Stimmen

Was bewirkt "sep"?

2 Stimmen

@McPeppr Ich weiß, dass diese Frage alt ist, aber ich habe die Antwort trotzdem bearbeitet, um mehr Klarheit zu schaffen. Prüfen Sie es jetzt.

0 Stimmen

Danke für die Bearbeitung. sep wird sich als nützlich erweisen. Bisher habe ich sep.join(list) verwendet, um Elemente einer Liste mit einem Trennzeichen dazwischen zu verketten - perfekt für das Schreiben von Csv-Dateien

24voto

sohail288 Punkte 433

使用方法 functools.partial um eine neue Funktion namens printf :

>>> import functools

>>> printf = functools.partial(print, end="")

>>> printf("Hello world\n")
Hello world

Dies ist eine einfache Möglichkeit, eine Funktion mit Standardparametern zu umhüllen.

1 Stimmen

Früher wollte ich das tun, konnte es aber nicht, weil otherfunction = function(1) würde einfach das Ergebnis von function(1) , nicht drehen otherfunction in einen Umschlag. Danke!

20voto

Yaelle Punkte 401

In Python 3+, print ist eine Funktion. Wenn Sie

print('Hello, World!')

Python übersetzt es in

print('Hello, World!', end='\n')

Sie können ändern end was immer Sie wollen.

print('Hello, World!', end='')
print('Hello, World!', end=' ')

14voto

user3763437 Punkte 359

In Python 2.x können Sie einfach hinzufügen , am Ende der print Funktion, damit sie nicht in eine neue Zeile gedruckt wird.

3 Stimmen

// , Dadurch wurde tatsächlich nichts ausgedruckt. Müssen wir dann nicht eine weitere print-Anweisung ohne Argument am Ende hinzufügen, wie in stackoverflow.com/a/493500/2146138 ? Wären Sie bereit, diese Antwort mit einem wirklich kurzen zwei- oder dreizeiligen Beispiel zu bearbeiten?

5 Stimmen

Der OP möchte kein Leerzeichen anhängen

4 Stimmen

Er hat die Frage nicht beantwortet. Keine Leerzeichen.

13voto

n611x007 Punkte 8422

Python 3 :

print('.', end='')

Python 2.6+ :

from __future__ import print_function # needs to be first statement in file
print('.', end='')

Python <=2.5 :

import sys
sys.stdout.write('.')

Wenn ein zusätzliches Leerzeichen nach jedem Druck OK ist, in Python 2:

print '.',

Irreführend in Python 2 - vermeiden :

print('.'), # Avoid this if you want to remain sane
# This makes it look like print is a function, but it is not.
# This is the `,` creating a tuple and the parentheses enclose an expression.
# To see the problem, try:
print('.', 'x'), # This will print `('.', 'x') `

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X