Kurs
Python Print() Function
Wenn du gerade erst mit Python anfängst und mehr darüber erfahren möchtest, besuche den DataCamp-Kurs Einführung in die Datenwissenschaft in Python.

Viele von euch werden beim Lesen dieses Tutorials vielleicht denken, dass es nichts Unentdecktes an einer einfachen Python-Druckfunktion gibt, da ihr alle mit dem immergrünen Beispiel des Druckens Hello, World!
angefangen habt, Python zu lernen. Es stimmt auch, dass in Python oder in jeder anderen Programmiersprache die Druckfunktion der grundlegendste und kleinste Schritt ist, den du beim Erlernen einer bestimmten Sprache machst. Beim Erlernen einer Programmiersprache neigt man jedoch manchmal dazu, sich auf fortgeschrittenere Themen zu konzentrieren und vergisst dabei oft die Feinheiten oder Fähigkeiten einer einfachen Funktion, die man fast immer benutzen könnte.
Der Fokus des heutigen Tutorials liegt ganz auf der Print-Funktion von Python; du wirst die am meisten unterschätzte Funktion kennenlernen.
Beginnen wir diesen Lehrgang mit dem Ausdrucken des Hello, World!
Beispiels.
print("Hello, World!")
Hello, World!
Im Gegensatz zu Python2
, wo du keine Klammer setzen musst, ist die Klammer in Python3
ein Muss, da sonst ein Syntaxfehler auftritt (siehe unten).
print "Hello, World!"
File "", line 1
print "Hello, World!"
^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print("Hello, World!")?
Aus der obigen Ausgabe kannst du schließen, dass print()
in Python3 keine Anweisung, sondern eine Funktion ist.
Schauen wir uns also die Funktion type/class
der Funktion print()
an.
type(print)
builtin_function_or_method
Sie gibt builtin_function_or_method
zurück, was bedeutet, dass es sich um eine vordefinierte oder eine eingebaute Python Function
handelt.
Angenommen, du möchtest eine neue Zeile oder einen vertikalen Abstand zwischen den beiden unteren Ausgaben einfügen, dann kannst du einfach die Funktion print()
aufrufen, ohne ihr ein Argument zu übergeben.
print("Hello, World!");print("Hello, World!")
Hello, World!
Hello, World!
print("Hello, World!")
print()
print("Hello, World!")
Hello, World!
Hello, World!
Schauen wir uns die Syntax der Funktion print()
an. print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False) Wie du inzwischen weißt, druckt die Funktion print die Werte in einen Stream oder standardmäßig in sys.stdout. Die sys.stdout oder System-Standardausgabe bedeutet, dass die Druckfunktion die Ausgabe auf dem Bildschirm ausgibt, und sie kann sogar in stdin oder stderr geändert werden.
Optionale Schlüsselwortargumente:
-
sep
: Das kann eine Zeichenkette sein, die du zwischen den Werten einfügen möchtest. Standardmäßig ist das ein Leerzeichen.Wir fügen eine Liste von Wörtern in die Druckfunktion ein und trennen sie durch eine neue Zeile. Denke daran, dass das Trennzeichen standardmäßig zwischen jedem Wort ein Leerzeichen einfügt.
print('datacamp','tutorial','on','python','print','function')
datacamp tutorial on python print function
print('datacamp','tutorial','on','python','print','function',sep='\n') #`\n` will put each word in a new line
datacamp
tutorial
on
python
print
function
Du kannst sie auch mit einem Komma trennen, zwei \n
hinzufügen, die eine leere Zeile dazwischen einfügen, oder sogar ein Pluszeichen $(+)$ hinzufügen.
print('datacamp','tutorial','on','python','print','function',sep=',')
datacamp,tutorial,on,python,print,function
print('datacamp','tutorial','on','python','print','function',sep='\n\n')
datacamp
tutorial
on
python
print
function
print('datacamp','tutorial','on','python','print','function',sep=',+')
datacamp,+tutorial,+on,+python,+print,+function
Bevor du zum nächsten Argument übergehst, nämlich end
, denk daran, dass du der Druckfunktion auch eine Variable übergeben kannst. Um das zu verstehen, nehmen wir ein Beispiel, indem wir eine Liste von Ganzzahlen definieren und sie an die Druckfunktion übergeben. Du würdest erwarten, dass er die Liste der ganzen Zahlen ausgibt.
int_list = [1,2,3,4,5,6]
print(int_list)
[1, 2, 3, 4, 5, 6]
-
end
: Es ist eine Zeichenkette, die nach dem letzten Wert angehängt wird, standardmäßig ein Zeilenumbruch. Sie ermöglicht es dem Programmierer, für jeden Druckaufruf ein eigenes Endzeichen zu definieren, das sich von dem standardmäßigen Zeilenumbruch oder\n
unterscheidet.Angenommen, du hast zwei Zeichenketten und willst sie mit einem Leerzeichen verbinden. Dann musst du nur in der Druckfunktion der ersten Zeichenkette
str1
das Argumentend
mit Anführungszeichen hinzufügen, und du kannst erwarten, dass die beiden Zeichenketten durch ein Leerzeichen verbunden werden.
str1 = 'datacamp tutorial on'
str2 = 'python print function'
print(str1)
print(str2)
datacamp tutorial on
python print function
print(str1,end=' ')
print(str2)
datacamp tutorial on python print function
Nehmen wir ein anderes Beispiel: Du hast eine Funktion, deren Aufgabe es ist, alle Werte in einer Liste in dieselbe Zeile zu drucken. Du kannst dies mit dem Argument end
erreichen, wie unten gezeigt:
def value(items):
for item in items:
print(item, end=' ')
value([1,2,3,4])
1 2 3 4
-
file
: Ein dateiähnliches Objekt (Stream); der Standardwert ist die aktuelle sys.stdout. Hier kannst du die Datei angeben, in die du die Ausgabe der Druckfunktion schreiben oder anhängen möchtest.Mit dem Argument Datei kannst du die Ausgabe der Druckfunktion in einer Datei in verschiedenen Formaten wie
.csv
,.txt
usw. speichern. Um das zu verstehen, nehmen wir ein Beispiel, in dem du über jedes Element der Liste iterierst. Sie wird in einer Textdatei gespeichert. Dazu öffnest du zunächst eine Textdatei im Zustandappend
, in der du die Ausgabe der Druckanweisung speichern wirst. Als Nächstes definierst du die Funktion, deren Ausgabe an die Textdatei angehängt werden soll.
file = open('print.txt','a+')
def value(items):
for item in items:
print(item, file=file)
file.close() # close the file ones the function execution completes.
value([1,2,3,4,5,6,7,8,9,10])
Sobald die obige Funktion ausgeführt wurde, solltest du eine Datei namens print.txt
in deinem aktuellen Verzeichnis sehen. Öffnen wir ihn und sehen uns seinen Inhalt an.
Aus der obigen Ausgabe geht hervor, dass du die Ausgabe sogar in Dateien speichern und nicht nur auf dem Terminal oder im Notebook ausgeben kannst.
-
flush
: Sie bestimmt, ob der Stream zwangsweise gespült werden soll. In der Standardeinstellung ist sie auf False gesetzt.Normalerweise wird die Ausgabe in eine Datei oder auf die Konsole gepuffert, und zwar mindestens so lange, bis du einen Zeilenumbruch druckst(Quelle). Puffer bedeutet, dass die Ausgabe in einer Art Register gespeichert wird, in dem die Ausgabe verbleibt, bis sie gespeichert werden kann oder die Datei endgültig geschlossen wird. Die Aufgabe des Flush ist es, dafür zu sorgen, dass die Ausgabe, die gepuffert wird, sicher an das Ziel gelangt.
import time
print('Please enter your email-id : ', end=' ')
#print('Please enter your email-id : ', end=' ', flush=True) #run this to see the difference and comment out the above line of code.
time.sleep(5)
Please enter your email-id :
Wenn du die obigen Codezeilen im Terminal ausführst, wirst du feststellen, dass der Prompt-String erst erscheint, wenn der Sleep-Timer endet und das Programm beendet wird(Quelle). Wenn du jedoch flush=True
in der Druckfunktion hinzufügst, siehst du die Aufforderung und musst dann 5 Sekunden warten, bis das Programm fertig ist.
Irgendwie kümmert sich das Jupyter-Notebook oder das Jupyter-Lab darum und zeigt die Eingabeaufforderung vor dem 5-Sekunden-Timer an. Wenn du also diese Funktion von print testen willst, stelle sicher, dass du sie im Kommandozeilen-Terminal und nicht im Jupyter-Notebook ausführst.
Sehen wir uns nun an, wie du die Druckfunktion nutzen kannst, um Eingaben des Benutzers im Jupyter-Notebook entgegenzunehmen. Dazu verwendest du die in Python eingebaute Funktion input()
.
tutorial_topic = input()
print("The topic of today's tutorial is: ", end='')
print(tutorial_topic)
Print Function
The topic of today's tutorial is: Print Function
Sobald du die obige Zelle ausführst, solltest du eine Ausgabe wie unten gezeigt sehen:
Hier hast du ein optionales benanntes Argument end
definiert, das du zuvor gelernt hast und das die statische Anweisung innerhalb der print-Anweisung mit der Benutzereingabe verkettet.
Sehen wir uns ein paar coolere Möglichkeiten an, variable Werte innerhalb der Druckfunktion zu drucken.
- Um den Wert einer Variablen zusammen mit einer vordefinierten Zeichenkette anzuzeigen, musst du nur ein Komma zwischen die beiden setzen. Hier spielt die Position der vordefinierten Zeichenfolge und der Variablen keine Rolle.
a = 2
b = "Datacamp"
print(a,"is an integer while",b,"is a string.")
2 is an integer while Datacamp is a string.
-
Du kannst das Argument
format
verwenden, mit dem du so viele Variablen übergeben kannst, wie du drucken möchtest. Wenn du die Variablen in der Formatfunktion übergibst, musst du die Indexnummern (die Reihenfolge, in der sie im Formatargument stehen) in der vordefinierten Zeichenfolge angeben. Diese Druckfunktion dient nun als Vorlage für dich.Zu beachten ist auch, dass die Indexzahlen hier mit einer geschweiften Klammer
{}
dargestellt werden, die einen Platzhalter darstellt.Lass es uns anhand des folgenden Beispiels verstehen:
a = 2
b = "Datacamp"
print("{0} is an integer while {1} is a string.".format(a,b))
2 is an integer while Datacamp is a string.
Wenn du die Indexnummer der zweiten Variablen wie erwartet an beiden Stellen einträgst, werden die gleichen Werte gedruckt, in diesem Fall die Variable b
für beide.
print("{1} is an integer while {1} is a string.".format(a,b))
Datacamp is an integer while Datacamp is a string.
-
Ähnlich wie bei einem
format
Argument, bei dem deine Druckfunktion als Vorlage dient, hast du ein Prozentzeichen (%), das du verwenden kannst, um die Werte der Variablen zu drucken.Wie das Format-Argument hat auch dieses ein Konzept von Platzhaltern. Anders als bei der Funktion
format
, bei der du nur die Indexnummern übergibst, musst du in dieser Funktion auch den Datentyp angeben, den der Platzhalter erwarten soll.- %d wird als Platzhalter für numerische oder dezimale Werte verwendet.
- %s wird als Platzhalter für Zeichenketten verwendet.
a = 2
b = "Datacamp"
print("%d is an integer while %s is a string."%(a,b))
2 is an integer while Datacamp is a string.
Schauen wir uns an, was passiert, wenn du %s
für die Variable a
angibst, die eine ganze Zahl ist.
print("%s is an integer while %s is a string."%(a,b))
2 is an integer while Datacamp is a string.
Wie du im obigen Beispiel sehen kannst, funktioniert es trotzdem. Der Grund dafür ist, dass die Funktion Print
implizit typecasting
ausgeführt und die Ganzzahl in eine Zeichenkette umgewandelt hat. Das Gegenteil ist jedoch nicht der Fall. Die Konvertierung eines Strings in eine ganze Zahl schlägt fehl und führt zu TypeError
.
Lass es uns herausfinden.
print("%d is an integer while %d is a string."%(a,b))
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
in
----> 1 print("%d is an integer while %d is a string."%(a,b))
TypeError: %d format: a number is required, not str
Fazit
Herzlichen Glückwunsch zum Abschluss des Tutorials.
Dieses Tutorial war ein guter Startpunkt für Anfänger, die Python beherrschen wollen. Vielleicht möchtest du noch ein bisschen mit der Druckfunktion herumspielen und ein paar weitere Funktionen erkunden, die in diesem Lernprogramm vielleicht zu kurz gekommen sind.
Wenn du Fragen zu diesem Tutorial hast, kannst du sie gerne in den Kommentaren unten stellen.
Wenn du gerade erst mit Python anfängst und mehr erfahren möchtest, schau dir den DataCamp-Kurs Einführung in die Datenwissenschaft in Python und das Python-Funktionen-Tutorial an.
Python-Kurse
Kurs
Einführung in die Datenwissenschaft in Python
Kurs