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) ?

10voto

susan097 Punkte 2870

Im Allgemeinen gibt es zwei Möglichkeiten, dies zu tun:

Drucken ohne Zeilenumbruch in Python 3.x

Fügen Sie nach der Druckanweisung nichts an und entfernen Sie ' \n ' durch Verwendung von end='' , als:

>>> print('hello')
hello  # Appending '\n' automatically
>>> print('world')
world # With previous '\n' world comes down

# The solution is:
>>> print('hello', end='');print(' world'); # End with anything like end='-' or end=" ", but not '\n'
hello world # It seems to be the correct output

Ein weiteres Beispiel in der Schleife :

for i in range(1,10):
    print(i, end='.')

Drucken ohne Zeilenumbruch in Python 2.x

Ein nachgestelltes Komma bedeutet: nach dem Druck, ignorieren \n .

>>> print "hello",; print" world"
hello world

Ein weiteres Beispiel in der Schleife :

for i in range(1,10):
    print "{} .".format(i),

Sie können diese Seite besuchen リンク .

0 Stimmen

Wie sieht es mit dem Platz aus?

0 Stimmen

Utilice end=" " z.B.: print('hallo', end='' ");print('Welt')

0 Stimmen

Ihre 2.7-Lösung beseitigt das Leerzeichen nicht.

9voto

alvas Punkte 104216

Sie können es versuchen:

import sys
import time
# Keeps the initial message in buffer.
sys.stdout.write("\rfoobar bar black sheep")
sys.stdout.flush()
# Wait 2 seconds
time.sleep(2)
# Replace the message with a new one.
sys.stdout.write("\r"+'hahahahaaa             ')
sys.stdout.flush()
# Finalize the new message by printing a return carriage.
sys.stdout.write('\n')

9voto

Ender Dangered Punkte 13

Verwenden Sie einfach end=''

for i in range(5):
  print('a',end='')

# aaaaa

8voto

LunaticXXD10 Punkte 276

Verwenden Sie einfach die end ="" oder sep =""

>>> for i in range(10):
        print('.', end = "")

Ausgabe:

.........

0 Stimmen

Damit ist die Frage noch nicht beantwortet. Sobald Sie über genügend Ruf werden Sie in der Lage sein Kommentar zu einem beliebigen Beitrag ; stattdessen, Antworten geben, die keine Klärung durch den Fragesteller erfordern . - Aus der Rezension

0 Stimmen

Ich bin neu bei Stack Over Flow! Danke für die Aufklärung

0 Stimmen

Ich habe die Antwort bearbeitet und viel mehr Informationen bereitgestellt

7voto

ssgam Punkte 117

Ich hatte kürzlich das gleiche Problem...

Ich habe das Problem durch Handeln gelöst:

import sys, os

# Reopen standard output with "newline=None".
# in this mode,
# Input:  accepts any newline character, outputs as '\n'
# Output: '\n' converts to os.linesep

sys.stdout = os.fdopen(sys.stdout.fileno(), "w", newline=None)

for i in range(1,10):
    print(i)

Dies funktioniert sowohl unter Unix als auch unter Windows, aber ich habe es nicht unter Mac OS X getestet.

2 Stimmen

Pausen sys.__stdout__

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