Die Zeichenfolgenverbindung in Python (Die Zeichenfolgenverbindung in Python), Lektion, Seite 723877
https://www.purl.org/stefan_ram/pub/zeichenfolgenverbindung_python (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
Python-Kurs

Die Zeichenfolgenverbindung »…+…« in Python 

Einführendes Beispiel

Zwei Zeichenfolgen können durch den Operator »+« zu einer einzigen Zeichenfolge verbunden (verkettet) werden.

Eingabe eines Ausdrucks und Ausgabe einer Textdarstellung seines Wertes
'ab' + 'cde'
'abcde'

Die Zeichenfolgenverbindung verdeutlicht auch noch einmal, daß die Zeichenfolge »'cde'« nicht  mit einem Apostroph beginnt und endet. Dieser wird erst bei der Ausgabe zur Verdeutlichung hinzugefügt.

Eingabe eines Ausdrucks und Ausgabe einer Textdarstellung seines Wertes
'12' + '3'
'123'

Wir bezeichnen diese Operation als Zeichenfolgenverbindung  oder Zeichenfolgenverkettung.

Syntax

Für die Syntax dieses Operators gilt das schon zuvor bei der Behandlung des numerischen Additionsoperators »+« Gesagte.

Typanforderungen

Beide Operanden des Operators »+« müssen die Klasse »str« als Typ haben, wenn sie auf diese Weise als Zeichenfolgen verbunden werden sollen.

(Der Fall, in dem beide Operanden numerisch sind, wurde schon früher behandelt.)

Semantik (Wert)

Typsemantik

Das Ergebnis einer Zeichenfolgenverbindung hat die Klasse »str« als Typ.

Wertsemantik

Der Wert eines Additionsausdrucks mit zwei Zeichenfolge als Operanden ist die Verbindung (Verkettung, Hintereinanderschreibung) der Zeichenfolgen (Zeichenketten) der beiden Operanden.

Operatorüberladung

An diesem Operator kann man die Bedeutung des Wortes Polymorphie  besonders gut erklären, weil hier offensichtlich zwei ganz verschiedene Operationen in Abhängigkeit von der Klasse der Operanden ausgeführt werden: die arithmetische Summierung und die Zeichenfolgenverkettung.

Arithmetische Summierung
123 + 456
Zeichenfolgenverbindung
'123' + '456'

Ohne  Polymorphie würde man für die Zeichenfolgenverkettung einen anderen  Operator verwenden (wie beispielsweise »&«, »~« oder ».«).

Mit  Polymorphie legt man durch die Klasse  der Operanden fest, was genau passieren soll.

Diese Art von Polymorphie eines Operators nennt man auch Operatorüberladung. Der Operator »+« ist mit verschiedenen Bedeutungen überladen.

Kombination mit der Zeichenfolgenvervielfachung

Die Zeichenfolgenverbindung kann mir der Zeichenfolgenvervielfachung kombiniert werden, um Zeichenfolgen auf intuitiv verständliche Weise (also ähnlich wie mit gesprochener deutscher Sprache) zu beschreiben/aufzubauen.

Eingabe eines Ausdrucks und Ausgabe einer Textdarstellung seines Wertes
3 * 'a' + 'b'
'aaab'
auf deutsch
drei „a“ und ein „b“
Eingabe eines Ausdrucks und Ausgabe einer Textdarstellung seines Wertes
'(' + 7 * 'b' + ')'
'(bbbbbbb)'
auf deutsch
Klammer auf, sieben „b“ und Klammer zu

Aufteilung langer Zeichenfolgenliterale

Eine sehr langes Zeichenfolgenliteral kann mit Hilfe des Operators »+« und der Klammern »(« und »)« auf mehrere Zeilen aufgeteilt werden.

Eingabe eines Ausdrucks und Ausgabe einer Textdarstellung seines Wertes
( 'Grundstuecksverkehrsgenehmigungs' +
'zustaendigkeitsuebertragungsverordnung' )
'Grundstuecksverkehrsgenehmigungszustaendigkeitsuebertragungsverordnung'

Das neutrale Element ⃗

Das folgende Programmbeispiel zeigt, daß die Addition der leeren Zeichenfolge »''« einen Text nicht  verändert, so wie die Addition von »0« eine Zahl nicht verändert.

Eingabe eines Ausdrucks und Ausgabe einer Textdarstellung seines Wertes
'>' + '' + '<'
'><'
Eingabe eines Ausdrucks und Ausgabe einer Textdarstellung seines Wertes
1 + 0 + 1
2

Entsprechend sagt man auch, daß die Zahl »0« das neutrale Element der Addition und die Zeichenfolge »''« das neutrale Element der Zeichenfolgenverbindung sei.

Diskussion der Polymorphie von »+« *

Die Polymorphie ist in Falle der Verwendung des Operators »+« sowohl zur arithmetischen Addition als auch zur Zeichenfolgenverbindung umstritten, da man es in Frage stellen kann, ob man das Verketten von Zeichenketten als eine Art von „Addition“ ansehen darf. Falls dem nicht  so wäre, dann wäre es falsch oder schlechter Stil, das Additionszeichen »+« dafür mitzuverwenden. Jedoch könnte man dies dann nur den Gestaltern der Programmiersprache vorwerfen, nicht  aber ihren Benutzern (also den Programmierern). Deswegen sollte sich der Leser durch diese Bedenken nicht  davon abhalten lassen, die Verkettung mit dem Pluszeichen »+« jederzeit zu verwenden, wenn sie ihm als nützlich erscheint.

Die Kritiker sehen in dem mathematischen Symbol »+« ein Zeichen, das für eine kommutative  Operation steht, eine Operation also, bei der die Reihenfolge der Operanden auch vertauscht werden kann, ohne das Ergebnis (die Summe) zu ändern. Sie sagen, daß das Summenzeichen nicht  für die Zeichenfolgenverbindung verwendet werden sollte, weil diese nicht  kommutativ ist. Dabei übersehen sie aber, daß man das Symbol »+« auch in der Mathematik manchmal für nicht-kommutative  Operationen (in Monoiden) verwendet. (Obwohl es Stimmen gibt, die sagen, daß dann ein Multiplikationszeichen bevorzugt wird.) Außerdem ist die Polymorphie mit ihrer „metaphorischen Verwendung“ von Verben ein wichtige Eckpfeiler der objektorientierten Programmierung (wie später im Kurs behandelt werden wird), und daher paßt es zu einer objektorientierten Programmiersprache, diese auch bei Operatoren zu verwenden. Schließlich gibt es in der Praxis keine Probleme mit dieser Überladung des +-Operators.

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 stefanram723877 stefan_ram:723877 Die Zeichenfolgenverbindung in Python Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd723877, slrprddef723877, 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/zeichenfolgenverbindung_python