Sie sind hier
E-Book

Programmieren lernen mit Python

AutorAllen B. Downey
VerlagO'Reilly Verlag
Erscheinungsjahr2014
Seitenanzahl320 Seiten
ISBN9783955618070
FormatPDF/ePUB
Kopierschutzkein Kopierschutz/DRM
GerätePC/MAC/eReader/Tablet
Preis19,99 EUR
Python ist eine moderne, interpretierte, interaktive und objektorientierte Skriptsprache, vielseitig einsetzbar und sehr beliebt. Mit mathematischen Vorkenntnissen ist Python leicht erlernbar und daher die ideale Sprache für den Einstieg in die Welt des Programmierens. Das Buch führt Sie Schritt für Schritt durch die Sprache, beginnend mit grundlegenden Programmierkonzepten, über Funktionen, Syntax und Semantik, Rekursion und Datenstrukturen bis hin zum objektorientierten Design. Zur aktualisierten Auflage: Diese Auflage behandelt Python 3, geht dabei aber auch auf Unterschiede zu Python 2 ein. Außerdem wurde das Buch um die Themen Unicode, List und Dictionary Comprehensions, den Mengen-Typ Set, die String-Format-Methode und print als Funktion ergänzt. Jenseits reiner Theorie: Jedes Kapitel enthält passende Übungen und Fallstudien, kurze Verständnistests und kleinere Projekte, an denen Sie die neu erlernten Programmierkonzepte gleich ausprobieren und festigen können. Auf diese Weise können Sie das Gelernte direkt anwenden und die jeweiligen Programmierkonzepte nachvollziehen. Lernen Sie Debugging-Techniken kennen: Am Ende jedes Kapitels finden Sie einen Abschnitt zum Thema Debugging, der Techniken zum Aufspüren und Vermeiden von Bugs sowie Warnungen vor entsprechenden Stolpersteinen in Python enthält.

Allen B. Downey ist Juniorprofessor für Informatik am Olin College of Engineering. Er hat am Wellesley-College, am Colby-College und an der Universität von Berkeley Informatik unterrichtet. Aus Berkeley hat er einen Doktortitel in Informatik, seine Master- und Bachelor-Abschlüsse hat er am MIT erworben.

Kaufen Sie hier:

Horizontale Tabs

Leseprobe

Es wird Sie nicht überraschen, dass Strings zum Typ str und Integer zum Typ int gehören. Dass Zahlen mit einen Dezimalpunkt zum Typ float gehören, ist da schon weniger überraschend. Der Name dieses Typs kommt daher, dass Dezimalbrüche als Fließkommazahlen (engl. floating-point) dargestellt werden.

>>> type(3.2) builtins.float

Was ist mit Werten wie '17' und '3.2'? Sie sehen aus wie Zahlen, stehen aber in Apostrophen, genau wie Strings.

>>> type('17') builtins.str >>> type('3.2') builtins.str

Es sind Strings.

Wenn Sie große Zahlen eintippen, können Sie der Versuchung vielleicht nicht widerstehen, einen Punkt als Tausendertrennzeichen sowie ein Komma für die Dezimalstellen einzugeben, z. B. 1.000,00. In Python ist das zwar keine Zahl, aber trotzdem zulässig:

>>> 1.000,00 (1.0, 0)

Das ist natürlich etwas völlig anderes als das, was wir erwartet haben! Python interpretiert 1.000,00 als kommaseparierte Folge von Zahlen. Dies ist also unser erstes Beispiel für einen semantischen Fehler: Der Code wird ohne Fehlermeldung ausgeführt, macht aber nicht das »Richtige«.

In diesem Beispiel erfolgen drei Zuweisungen. In der ersten wird einer neuen Variablen mit dem Namen meldung ein String zugewiesen. In der zweiten wird der Integer 17 an n übergeben. Und in der dritten Zuweisung wird der (ungefähre) Wert von der Variablen pi zugewiesen.

Eine gebräuchliche Form, Variablen auf Papier darzustellen, besteht darin, den Namen aufzuschreiben und mit einem Pfeil auf den Wert der Variablen zu zeigen. Eine solche Darstellung bezeichnet man als Zustandsdiagramm, weil darin der Zustand der jeweiligen Variablen dargestellt wird (quasi die »Gemütsverfassung« der Variablen). Abbildung 2.1 zeigt das Ergebnis des vorherigen Beispiels.

Abbildung 2.1 Zustandsdiagramm

Der Typ der Variablen richtet sich dabei nach dem Typ des Werts, auf den sie sich bezieht.

>>> type(meldung) builtins.str >>> type(n) builtins.int >>> type(pi) builtins.float

Wenn Sie in Python 2 einen Integer mit einer führenden Null eingeben, erhalten Sie einen merkwürdigen Fehler:

>>> plz = 02492 ^ SyntaxError: invalid token

Andere Zahlen scheinen zu funktionieren, aber die Ergebnisse sind eher seltsam:

>>> plz = 02132 >>> plz 1114

Können Sie erkennen, was hier geschieht? Tipp: Geben Sie die Werte 01, 010, 0100 und 01000 ein. Den gleichen Effekt haben Sie in Python 3, wenn Sie die führende Null durch 00 ersetzen.

Listing 2.1

Wenn Sie übrigens in einem Terminal im interaktiven Python-Interpreter arabische Schriftzeichen in Variablennamen bei einer Zuweisung verwenden, dann seien Sie auf eine kleine Überraschung gefasst, denn dann wird von rechts nach links geschrieben! Falls Sie dasselbe in einem Code-Editor ausprobieren, könnte diese Überraschung kleiner ausfallen, sofern der Editor das nicht richtig unterstützt.

Wählen Sie für eine Variable einen nicht zulässigen Namen, so erhalten Sie einen Syntaxfehler:

>>> 76posaunen = 'Große Parade' SyntaxError: invalid syntax >>> mehr@ = 1000000 SyntaxError: invalid syntax >>> else = 'Fortschrittliche Theoretische Zymologie' SyntaxError: invalid syntax

76posaunen ist nicht zulässig, weil der Name nicht mit einem Buchstaben beginnt. mehr@ ist nicht zulässig, weil das Zeichen @ für Variablennamen nicht zulässig ist. Aber was stimmt mit else nicht?

Wie Sie feststellen werden, ist else eines der reservierten Schlüsselwörter von Python. Der Interpreter verwendet Schlüsselwörter, um die Struktur des Programms zu erkennen. Deshalb dürfen Sie sie nicht als Variablennamen verwenden.

In Python 3 gibt es 30 Schlüsselwörter:

and del global not with as elif if or yield assert else import pass break except in raise class finally is return continue for lambda try def from nonlocal while

In Python 2 gibt es noch die Schlüsselwörter exec und print, aber kein nonlocal.

Vielleicht sollten Sie diese Liste immer zur Hand haben. Wenn der Interpreter sich über einen Ihrer Variablennamen beschwert und Sie partout nicht wissen, warum, sehen Sie einfach auf der Liste nach.

In einigen anderen Sprachen wird ^ für den Exponenten verwendet, aber in Python steht dieses Zeichen für den bitweisen Operator XOR. Ich werde in diesem Buch nicht auf bitweise Operatoren eingehen, aber unter http://wiki.python.org/moin/BitwiseOperators können Sie alles darüber nachlesen.

In Python 2 macht der Divisionsoperator unter Umständen nicht das, was Sie erwarten:

>>> minute = 59 >>> minute/60 0

Der Wert von minute ist 59, und in der konventionellen Arithmetik ergibt 59 dividiert durch 60 den Wert 0,98333 – nicht 0. Der Grund für diese Diskrepanz liegt darin, dass Python eine Division ohne Rest durchführt. Wenn beide Operanden ganze Zahlen sind, erhalten Sie als Ergebnis ebenfalls eine ganze Zahl. Die Stellen nach dem Komma werden einfach abgeschnitten. In unserem Beispiel wird das Ergebnis also auf null abgerundet.

In Python 3 ist das Ergebnis dieser Division eine Fließkommazahl vom Typ float. Für die Division ohne Rest kommt der neue Operator // zum Einsatz.

Wenn beide Operanden eine Fließkommazahl sind, führt Python eine Fließkommadivision durch, und das Ergebnis ist ein float:

>>> minute/60.0 0.98333333333333328

Eine Anweisung ist ein Codeteil, den der Python-Interpreter ausführen kann. Wir kennen bisher zwei Arten von Anweisungen: Zuweisungen und in Python 2 auch print.

Technisch gesehen, ist ein Ausdruck ebenfalls eine Anweisung. Aber wahrscheinlich ist es einfacher, sich die beiden als zwei verschiedene Dinge vorzustellen. Der wichtigste Unterschied ist, dass ein Ausdruck einen Wert hat, eine Anweisung dagegen nicht.

In der ersten Zeile wird meilen ein Wert zugewiesen, was aber keinen sichtbaren Effekt hat. Die zweite Zeile ist ein Ausdruck, deshalb wertet der Interpreter ihn aus und zeigt das Ergebnis an. Dabei finden wir heraus, dass ein Marathon ungefähr 42 Kilometer lang ist.

Wenn Sie aber denselben Code in ein Skript eingeben und ausführen, erhalten Sie überhaupt keine Ausgabe. Im Skriptmodus hat ein Ausdruck allein keinen sichtbaren Effekt. Python wertet den Auszug aus, zeigt den Wert aber nicht an, es sei denn, Sie weisen den Interpreter dazu an:

meilen = 26.2 print(meilen * 1.61)

Im ersten Moment kann dieses Verhalten verwirrend sein.

Ein Skript enthält üblicherweise eine Folge von Anweisungen. Wenn es mehr als eine Anweisung gibt, erscheinen die Ergebnisse nacheinander in der Reihenfolge der Anweisungen.

Das Skript

print(1) x = 2 print(x)

erzeugt beispielsweise die folgende Ausgabe:

1 2

Für die Zuweisungsanweisung wird dabei nichts ausgegeben.

Tippen Sie die folgenden Anweisungen in den Python-Interpreter, um herauszufinden, was sie machen:

5 x = 5 x + 1

Schreiben Sie nun dieselben Anweisungen in ein Skript, und führen Sie es aus. Welche Ausgabe erhalten Sie? Machen Sie anschließend aus jedem Ausdruck eine print-Anweisung, und führen Sie das Skript erneut aus.

Listing 2.2

Der Operator + funktioniert mit Strings, macht aber nicht das, was Sie sich...

Blick ins Buch

Weitere E-Books zum Thema: Programmiersprachen - Softwareentwicklung

Apps effektiv managen und vermarkten

E-Book Apps effektiv managen und vermarkten
Die eigene App erfolgreich veröffentlichen: Von der Konzeption bis zur Vermarktung Format: PDF

Lernen Sie Ihre App effektiv, strukturiert und begeisternd weltweit zu vermarkten. In diesem praxisorientierten Buch erhalten Sie einen prägnanten Überblick von der Idee und Konzeption einer App,…

Management von IT-Projekten

E-Book Management von IT-Projekten
Von der Planung zur Realisierung Format: PDF

Kenntnisse des Projektmanagements und seine Anwendungsmöglichkeiten sind für IT-Manager und IT-Entwickler unentbehrlich. In diesem Buch werden die wichtigsten Verfahren und Methoden für das…

Informatik

E-Book Informatik
Anwendungsorientierte Einführung in die allgemeine Wirtschaftsinformatik Format: PDF

Das einführende Informatik-Lehrbuch wendet sich nicht nur an Informatik-Studenten, sondern sogar in erster Linie an Studierende und Praktiker solcher Disziplinen, in denen Informatik zur…

Profikurs ABAP®

E-Book Profikurs ABAP®
Konkrete, praxisorientierte Lösungen - Tipps, Tricks und jede Menge Erfahrung Format: PDF

Professionelle und sichere Anwendungsentwicklung unter SAP R/3® ist kein Zufall, sondern eine Sache der Erfahrung. Das Resultat: Tricks und Kniffe, von denen auch Sie als ABAP® Professional…

Management von IT-Projekten

E-Book Management von IT-Projekten
Von der Planung zur Realisierung Format: PDF

Kenntnisse des Projektmanagements und seine Anwendungsmöglichkeiten sind für IT-Manager und IT-Entwickler unentbehrlich. In diesem Buch werden die wichtigsten Verfahren und Methoden für das…

Dynaxity

E-Book Dynaxity
Management von Dynamik und Komplexität im Softwarebau Format: PDF

Das Buch wendet sich an IT-Entwickler, Projektmanager und CIO's. Hauptthema ist die gezielte Entwicklung von Fähigkeiten (Skills) jenseits der klassischen 'IT-Denke'. Fakt ist, dass laut…

Weitere Zeitschriften

ARCH+.

ARCH+.

ARCH+ ist eine unabhängige, konzeptuelle Zeitschrift für Architektur und Urbanismus. Der Name ist zugleich Programm: mehr als Architektur. Jedes vierteljährlich erscheinende Heft beleuchtet ...

Correo

Correo

 La Revista de Bayer CropScience para la Agricultura ModernaPflanzenschutzmagazin für den Landwirt, landwirtschaftlichen Berater, Händler und am Thema Interessierten mit umfassender ...

Das Hauseigentum

Das Hauseigentum

Das Hauseigentum. Organ des Landesverbandes Haus & Grund Brandenburg. Speziell für die neuen Bundesländer, mit regionalem Schwerpunkt Brandenburg. Systematische Grundlagenvermittlung, viele ...

Eishockey NEWS

Eishockey NEWS

Eishockey NEWS bringt alles über die DEL, die DEL2, die Oberliga sowie die Regionalligen und Informationen über die NHL. Dazu ausführliche Statistiken, Hintergrundberichte, Personalities ...

FileMaker Magazin

FileMaker Magazin

Das unabhängige Magazin für Anwender und Entwickler, die mit dem Datenbankprogramm FileMaker Pro arbeiten. In jeder Ausgabe finden Sie praxiserprobte Tipps & Tricks, die Ihnen sofort die ...