Python Language
Die Druckfunktion
Suche…
Grundlagen zum Drucken
In Python 3 und höher ist print
eher eine Funktion als ein Schlüsselwort.
print('hello world!')
# out: hello world!
foo = 1
bar = 'bar'
baz = 3.14
print(foo)
# out: 1
print(bar)
# out: bar
print(baz)
# out: 3.14
Sie können auch eine Reihe von Parametern zum print
:
print(foo, bar, baz)
# out: 1 bar 3.14
Eine andere Möglichkeit zum print
mehrerer Parameter besteht in der Verwendung von +
print(str(foo) + " " + bar + " " + str(baz))
# out: 1 bar 3.14
Bei der Verwendung von +
zum Drucken mehrerer Parameter sollten Sie jedoch aufpassen, dass der Typ der Parameter identisch ist. Wenn Sie versuchen, das obige Beispiel ohne die Umwandlung in eine string
zuerst zu drucken, würde dies zu einem Fehler führen, da versucht würde, der Zeichenfolge "bar"
die Zahl 1
und die Zahl 3.14
hinzuzufügen.
# Wrong:
# type:int str float
print(foo + bar + baz)
# will result in an error
Dies liegt daran, dass der Inhalt des print
zuerst ausgewertet wird:
print(4 + 5)
# out: 9
print("4" + "5")
# out: 45
print([4] + [5])
# out: [4, 5]
Andernfalls kann die Verwendung von +
für einen Benutzer sehr hilfreich sein, um die Ausgabe von Variablen zu lesen. Im folgenden Beispiel ist die Ausgabe sehr einfach zu lesen!
Das folgende Skript veranschaulicht dies
import random
#telling python to include a function to create random numbers
randnum = random.randint(0, 12)
#make a random number between 0 and 12 and assign it to a variable
print("The randomly generated number was - " + str(randnum))
Sie können verhindern, dass die print
automatisch einen Zeilenvorschub druckt, indem Sie den Parameter end
:
print("this has no newline at the end of it... ", end="")
print("see?")
# out: this has no newline at the end of it... see?
Wenn Sie in eine Datei schreiben möchten, können Sie es als Parameter übergeben file
:
with open('my_file.txt', 'w+') as my_file:
print("this goes to the file!", file=my_file)
das geht in die Datei!
Parameter drucken
Sie können mehr als nur Text drucken. print
hat auch einige Parameter, die Ihnen helfen.
Argument sep
: Platziert eine Zeichenfolge zwischen den Argumenten.
Müssen Sie eine Liste von Wörtern drucken, die durch ein Komma oder eine andere Zeichenfolge getrennt sind?
>>> print('apples','bannas', 'cherries', sep=', ')
apple, bannas, cherries
>>> print('apple','banna', 'cherries', sep=', ')
apple, banna, cherries
>>>
Argument end
: Verwenden Sie am Ende etwas anderes als eine neue Zeile
Ohne das end
Argument schreiben alle print()
Funktionen eine Zeile und gehen dann zum Anfang der nächsten Zeile. Sie können es ändern, um nichts zu tun (verwenden Sie eine leere Zeichenfolge von '') oder doppelten Abstand zwischen Absätzen, indem Sie zwei Zeilenumbrüche verwenden.
>>> print("<a", end=''); print(" class='jidn'" if 1 else "", end=''); print("/>")
<a class='jidn'/>
>>> print("paragraph1", end="\n\n"); print("paragraph2")
paragraph1
paragraph2
>>>
Argument file
: Ausgabe irgendwo anders als sys.stdout senden.
Jetzt können Sie Ihren Text entweder an stdout, an eine Datei oder an StringIO senden, ohne sich darum zu kümmern, was Ihnen gegeben wird. Wenn es wie eine Datei quittiert, funktioniert es wie eine Datei.
>>> def sendit(out, *values, sep=' ', end='\n'):
... print(*values, sep=sep, end=end, file=out)
...
>>> sendit(sys.stdout, 'apples', 'bannas', 'cherries', sep='\t')
apples bannas cherries
>>> with open("delete-me.txt", "w+") as f:
... sendit(f, 'apples', 'bannas', 'cherries', sep=' ', end='\n')
...
>>> with open("delete-me.txt", "rt") as f:
... print(f.read())
...
apples bannas cherries
>>>
Es gibt einen vierten Parameter flush
der den Stream zwangsweise löscht.