13.11 Weitere Aspekte der Syntax 

Das Thema dieses Abschnitts sollen kleinere Aspekte der Python-Syntax sein, die bisher vernachlässigt wurden. Allgemein gilt, dass die hier besprochenen Notationen keineswegs notwendig oder unumgänglich sind. Entscheiden Sie ganz nach Ihren Vorlieben, ob und in welchem Umfang Sie diese einsetzen möchten.
13.11.1 Umbrechen langer Zeilen 

Sicherlich haben Sie bereits einige eigene Python-Programme geschrieben und dabei ist die ein oder andere recht lange Quellcodezeile entstanden. Viele Programmierer beschränken die Länge ihrer Quellcodezeilen, damit beispielsweise mehrere Quellcodedateien nebeneinander auf den Bildschirm passen oder der Code auch auf Geräten mit einer festen Zeichenbreite angenehm zu lesen ist. Eine geläufige maximale Zeilenlänge ist 80 Zeichen. Doch welche Möglichkeiten bietet Python, überlange Zeilen umzubrechen, sodass eine maximale Zeilenlänge eingehalten werden kann?
Sie wissen bereits, dass Sie Ihren Quellcode innerhalb von Klammern beliebig umbrechen dürfen, doch an vielen anderen Stellen sind Sie an die strengen syntaktischen Regeln von Python gebunden. Durch Einsatz der Backslash-Notation ist es möglich, Quellcode an nahezu beliebigen Stellen in eine neue Zeile umzubrechen:
>>> var \ ... = \ ... 10 >>> var 10
Grundsätzlich kann ein Backslash überall da stehen, wo auch ein Leerzeichen hätte stehen können. Somit ist auch ein Backslash innerhalb eines Strings möglich:
>>> "Hallo \ ... Welt" 'Hallo Welt'
Beachten Sie dabei aber, dass eine Einrückung des umgebrochenen Teils des Strings Leerzeichen in den String schreibt. Aus diesem Grund sollten Sie folgende Variante, um einen String in mehrere Zeilen zu schreiben, vorziehen:
>>> "Hallo " \ ... "Welt" 'Hallo Welt'
Allgemein kann die Backslash-Notation die Lesbarkeit des Quellcodes sowohl vermindern als auch, beispielsweise bei sehr langen Strings, erhöhen. Grundsätzlich sollten Sie nach Möglichkeit versuchen, lesbaren Code zu erzeugen, was unter anderem bedeutet, den Backslash nicht im Übermaß zu verwenden.
13.11.2 Zusammenfügen mehrerer Zeilen 

Genau so, wie Sie eine einzeilige Anweisung mithilfe des Backslashs auf mehrere Zeilen umbrechen können, können Sie mehrere einzeilige Anweisungen in eine Zeile zusammenfassen. Dazu werden die Anweisungen durch ein Semikolon voneinander getrennt:
>>> print "Hallo"; print "Welt" Hallo Welt
Anweisungen, die aus einem Anweisungskopf und einem Anweisungskörper bestehen, können auch ohne Einsatz eines Semikolons in eine Zeile gefasst werden, sofern der Anweisungskörper selbst aus nicht mehr als einer Zeile besteht:
>>> x = True >>> if x: print "Hallo Welt" ... Hallo Welt
Sollte der Anweisungskörper mehrere Zeilen lang sein, so können diese selbstverständlich durch ein Semikolon zusammengefasst werden:
>>> x = True >>> if x: print "Hallo"; print "Welt" ... Hallo Welt
Alle durch ein Semikolon zusammengefügten Anweisungen werden so behandelt, als wären sie gleich weit eingerückt. Allein ein Doppelpunkt vermag die Einrückungstiefe zu vergrößern. Aus diesem Grund gibt es im obigen Beispiel keine Möglichkeit, in derselben Zeile eine Anweisung zu schreiben, die nicht mehr im Körper der if-Anweisung steht.
Beachten Sie, dass beim Einsatz des Backslashs und vor allem des Semikolons schnell unleserlicher Code geschrieben wird. Verwenden Sie beide Notationen daher nur, wenn Sie meinen, dass es der Lesbarkeit und Übersichtlichkeit dienlich ist.
13.11.3 String conversions 

Python unterstützt eine spezielle Syntax, die es ermöglicht, eine String-Repräsentation des Wertes einer beliebigen Instanz zu erzeugen. Dazu wird ein entsprechendes Literal oder eine Referenz innerhalb von »umgekehrten Anführungszeichen« geschrieben. Diese Notation wird string conversions genannt.
>>> `12` '12' >>> `"Hallo Welt"` "'Hallo Welt'" >>> `[1,2,3]` '[1, 2, 3]'
String conversions haben den gleichen Zweck wie die Built-in Function repr und werden in heutigen Programmen so gut wie nie verwendet. Der Grund besteht darin, dass das »umgekehrte Anführungszeichen« auf vielen Tastaturen, unter anderem der deutschen, eine Akzenttaste ist oder gar ganz fehlt. Aus diesem Grund sollten Sie stets die Built-in Functions repr bzw. str verwenden, wenn Sie eine Instanz in einen String konvertieren wollen.




bestellen





