Kennwortargumente in Python (Kennwortargumente in Python), Lektion, Seite 723966
https://www.purl.org/stefan_ram/pub/kennwortargumente_python (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
Python-Kurs

Mehr über Kennwortargumente in Python 

Aufgrund einer Umstellung des Kurses im März 2020 kann diese Lektion noch Mängel bei Formulierungen aufweisen.

Beim aufrufbaren Objekt »(print)« sind beispielsweise ›sep‹ und ›endreine Kennwortparameter, da sie auf »« folgen. Das heißt, Werte für diese Parameter können nur  mit der Kennwortschreibweise angegeben werden.

Protokoll
help( print )
Help on built-in function print in module builtins:

print(...)
print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)

Prints the values to a stream, or to sys.stdout by default.
Optional keyword arguments:
file: a file-like object (stream); defaults to the current sys.stdout.
sep: string inserted between values, default a space.
end: string appended after the last value, default a newline.
flush: whether to forcibly flush the stream.

»end=« – Abschluß der Ausgabe

Normalerweise schließt jeder Aufruf von ›print‹ eine Zeile der Ausgabe ab.

Protokoll
print( 2 ); print( 3 )
2
3

Durch ein mit »end=« gekennzeichnetes Argument kann dies verhindert werden.

Protokoll
print( 2, end='' ); print( 3 )
23

Das end-Argument (das Argument mit dem Kennwort »end«) gibt die Zeichenfolge an, mit welcher die gesamte Ausgabe beendet  werden soll.

Falls die leere Zeichenfolge  als Wert des end-Arguments angegeben wird, so wird der Ausgabe gar nichts weiter  nachgestellt.

Falls – wie bisher – kein  end-Argument angegeben wird, so wird die Ausgabe mit einem Zeilenende  beendet.

Protokoll
print( 2, end=', ' ); print( 3 )
2, 3

Ein print-Aufruf ohne Argument  gibt entsprechend nur ein Zeilenende  aus.

Protokoll
print( 2 ); print( 3 ); print(); print( 4 );
2
3

4

Der Fehlwert von »end« ist «'\n'» (Zeilenende).

Protokoll
print( 2 )
2
print( 2, end='\n' )
2

Eine Abkürzung Wir hatten oben das Zeichen »2« ohne Zeilenende ausgegeben, indem wir »print( 2, end='' )« verwendet hatten. Dies läßt sich noch etwas abkürzen.

Protokoll
print( end='2' ); print( 3 )
23

Die Angabe eines Kennwortarguments mit einem Gleichheitszeichen ist nicht  mit einer Bindungsanweisung  zu verwechseln, obwohl es auch beim Aufruf eines Objektes zu Bindungen kommen kann: Nämlich Bindungen von Argumentwerten an Parameternamen. Jedoch würde solch eine Bindung beim Aufruf »str( 2 )« auch ohne »object=« erfolgen.

Protokoll
print( 2, 2, sep=' ', end='\n' )
2 2

Übungsfragen ⃖

Bei der Beantwortung der folgenden Übungsfragen soll in der Antwort jedes  ausgegebene Zeichen einzeln genannt werden.

?   Übungsfrage ⃖

Welche Ausgabe erzeugt die Ausführung der folgenden Anweisung?

Anweisung
print( '', end='' )

?   Übungsfrage ⃖

Welche Ausgabe erzeugt die Ausführung der folgenden beiden Anweisungen?

Anweisung
print( ', ', end='' ); print( ',' )

?   Übungsfrage ⃖

Welche Ausgabe erzeugt die Ausführung der folgenden beiden Anweisungen?

Anweisung
print( end='123' ); print( ',' )

?   Übungsfrage ⃖

Welche Ausgabe erzeugt die folgende Anweisung?

Anweisung
print( 'Det', 'ina', end='tum', sep='erm' )

Übungsaufgaben

/   Übungsaufgabe

Geben Sie mit einem Aufruf von ›print‹ die Werte der beiden Zeichenfolgenliterale »'a'« und »'b'« aus, so daß diese direkt hintereinander stehen. Hierbei soll das erste Argument das Zeichenfolgenliteral »'a'« sein, das zweite Argument soll das Zeichenfolgenliteral »'b'« sein.

/   Übungsaufgabe

Geben Sie mit einem Aufruf von ›print‹ den Buchstaben »a« aus.

Geben Sie mit einem weiteren Aufruf von ›print‹ den Buchstaben »b« und ein Zeilenende aus.

(Der Buchstabe »b« sollte hierbei also direkt hinter  dem Buchstaben »a« erscheinen.)

»flush=« – Sofortige Erledigung der Ausgabe ⃗

Durch »flush=True« wird sichergestellt, daß die Ausgabe nicht erst zwischengespeichert und später ausgegeben, sondern sofort ausgegeben wird.

Nach Ausgabe eines Zeilenendes und vor Ausführung von eines Aufrufs von »input« wird immer ausgegeben.

Das folgende Beispiel zeigt jedoch, daß das »a« ohne  »flush=True« erst zum Ende des Skripts (nach fünf Sekunden) ausgegeben wird, obwohl der print-Aufruf vor dem sleep-Aufruf ausgeführt wird.

Protokoll
from time import sleep; print( 'a', end='' ); sleep( 5 )
(fünf Sekunden Pause)
a

Bei Verwendung von »flush=True« erscheint die Ausgabe sofort.

Protokoll
from time import sleep; print( 'a', end='', flush=True ); sleep( 5 )
a
(fünf Sekunden Pause)

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram723966 stefan_ram:723966 Kennwortargumente in Python Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd723966, slrprddef723966, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/kennwortargumente_python