print

Einführung

Es gibt eigentlich keine Computer-Programme und natürlich auch keine Python-Programme, die nicht in irgendeiner Weise mit der Außenwelt kommunizieren. Vor allen Dingen muss ein Programm immer Ergebnisse ausgeben. Eine Form der Ausgabe von Ergebnisse geht direkt in die Standardausgabe und dies erfolgt in Python mittels der print-Anweisung.1
>>> print "Hallo Benutzer"
Hallo Benutzer
>>> antwort = 42
>>> print "Die Antwort lautet: " + str(antwort)
Die Antwort lautet: 42
>>> 
Ab Python3 ist print keine Anweisung mehr, sondern eine Funktion. Deshalb müssen die Argumente in Klammern geschrieben werden. Auch in Python2 kann man print mit Klammern schreiben:
>>> print("Hallo")
Hallo
>>> print("Hallo","Python")
('Hallo', 'Python')
>>> print "Hallo","Python"
Hallo Python
>>> 
Wir können erkennen, dass es dann ein geändertes Ausgabeverhalten gibt. Aber was noch schwerwiegender ist. Das Ausgabeverhalten mit runden Klammern in Python 2.x ist auch anders als das der Python-Funktion von Version 3.x, wie wir im Folgenden sehen können:
$ python3
Python 3.2.3 (default, Apr 10 2013, 05:03:36) 
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> print("Hallo")
Hallo
>>> print("Hallo","Python")
Hallo Python
>>> 
Möchte man das gleiche Ausgabeverhalten wie von 3.x auch in Version 2.x haben, empfehlt sich ein Import aus der Zukunft:

Import aus der Zukunft: print_function

In manchen Python2-Programmen findet sich die folgende Import-Zeile:
from __future__ import print_function
Dies ist auf den ersten Blick missverständlich. Es sieht so aus, als habe man eine Funktion namens "print_function" importiert. Es wurde aber nur ein Flag, eine Instanz "print_function" gesetzt. Dadurch wird in Python2 die print-Funktion von Python3 eingeführt. Das bedeutet, dass dann der Interpreter nur noch die Python3-Syntax der Print-Funktion akzeptiert. Das Programm verhält sich damit, zumindest was die print-Funktion betrifft, kompatibel zu Python3.

Wenn Sie Programme in Python 2.6 oder Python 2.7 erstellen wollen, empfehlen wir Ihnen, diese immer mit obigem Import zu versehen. Dadurch ist sichergestellt, dass Ihre Ausgaben kompatibel zu Python 3 sind. An dieser Stelle verweisen wir deshalb auf die Einführung in die print-Funktion unter Python3 von unserem Tutorial.


Anmerkungen:
1 In Python3 ist print keine Anweisung mehr, sondern eine Funktion.