Python kinderleicht!

Einfach programmieren lernen – nicht nur für Kids

2., korrigierte und aktualisierte Auflage

Übersetzung aus dem Amerikanischen von Volker Haxsen

Jason Briggs

Lektorat: Dr. Michael Barabas

Übersetzung und Aktualisierungen: Volker Haxsen, Heidelberg

Copy-Editing: Friederike Daenecke, Zülpich

Herstellung: Nadine Thiele

Illustrationen: Miran Lipovača

Umschlaggestaltung: Helmut Kraus, www.exclam.de

Druck und Bindung: M.P. Media-Print Informationstechnologie GmbH, 33100 Paderborn

Bibliografische Information der Deutschen Nationalbibliothek

Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de abrufbar.

ISBN:

Buch 978-3-86490-344-1

PDF 978-3-86491-904-6

ePub 978-3-86491-905-3

mobi 978-3-86491-906-0

2., korrigierte und aktualisierte Auflage 2016

Translation Copyright für die deutschsprachige Ausgabe

dpunkt.verlag GmbH

Wieblinger Weg 17

69123 Heidelberg

Copyright der amerikanischen Originalausgabe

© 2013 by Jason R. Briggs

Titel der Originalausgabe: Python For Kids – A Playful Introduction To Programming

No Starch Press, Inc. · 38 Ringold Street, San Francisco, CA 94103 · http://www.nostarch.com/

ISBN 978-1-59327-407-8

Die vorliegende Publikation ist urheberrechtlich geschützt. Alle Rechte vorbehalten. Die Verwendung der Texte und Abbildungen, auch auszugsweise, ist ohne die schriftliche Zustimmung des Verlags urheberrechtswidrig und daher strafbar. Dies gilt insbesondere für die Vervielfältigung, Übersetzung oder die Verwendung in elektronischen Systemen.

Es wird darauf hingewiesen, dass die im Buch verwendeten Soft- und Hardware-Bezeichnungen sowie Markennamen und Produktbezeichnungen der jeweiligen Firmen im Allgemeinen warenzeichen-, marken- oder patentrechtlichem Schutz unterliegen. Alle Angaben und Programme in diesem Buch wurden mit größter Sorgfalt kontrolliert. Weder Autor noch Verlag können jedoch für Schäden haftbar gemacht werden, die in Zusammenhang mit der Verwendung dieses Buches stehen.

5 4 3 2 1 0

Vorwort

Über den Autor

Jason R. Briggs ist seit dem Alter von acht Jahren Programmierer und hat als erste Programmiersprache BASIC auf einem Radio Shack TRS-80 erlernt. Er hat als Entwickler und Systemarchitekt professionell Software programmiert und als Autor für das Java Developers’s Journal gearbeitet. Seine Artikel sind in JavaWorld, ONJava und ONLamp erschienen. Python kinderleicht ist sein erstes Buch.

Du kannst mit Jason über seine Homepage http://jasonrbriggs.com/ oder per E-Mail mail@jasonrbriggs.com Kontakt aufnehmen.

Über die Fachkorrektoren

Der 15-jährige Josh Pollock ist frischgebackener Absolvent der The Nueva School und jetzt neu auf der Lick-Wilmerding High School in San Francisco. Er fing im Alter von neun Jahren mit dem Programmieren in Scratch an, begann in der sechsten Klasse mit TI-BASIC, ging dann in der siebten Klasse zu Java und Python über und machte in der achten Klasse mit UnityScript weiter. Neben dem Programmieren spielt er Trompete, entwickelt Computerspiele und unterrichtet Leute in MINT-Fächern.

Maria Fernandez hat einen Masterabschluss in angewandter Linguistik und interessiert sich schon seit über 20 Jahren für Computer und Technik. Sie hat jungen Flüchtlingsfrauen im Global-Village-Projekt in Georgia (USA) Englisch beigebracht, lebt zurzeit in Nord-Kalifornien und arbeitet für den ETS (Educational Testing Service).

Danksagungen

So ungefähr muss es sein, wenn man beim Empfang einer Ehrung die Bühne betritt und dann feststellt, dass man die Liste der Personen zu Hause hat liegen lassen, die man bei seiner Danksagung berücksichtigen will: Man vergisst garantiert jemanden, und die Musik setzt ganz schnell ein, um einen von der Bühne herunterzukomplimentieren.

Deswegen kommt jetzt eine (zweifelsohne) unvollständige Liste von Leuten, denen ich zu tiefem Dank verpflichtet bin, da sie mir geholfen haben, das Buch so gut werden zu lassen, wie es jetzt ist.

Ich möchte dem Team von No Starch danken, vor allem Bill Pollock, für seine bei der Bearbeitung immer wieder gestellte Frage, was denn ein Kind von alldem halten würde.

Wenn man schon sehr lange programmiert, vergisst man nur allzu leicht, wie schwer diese Dinge für Anfänger sind, und Bill war eine wertvolle Hilfe, weil er mich auf diese oft übersehenen und überkomplizierten Passagen aufmerksam machte. Mein Dank gilt auch Serena Yang, der exzellenten Produktionsmanagerin. Ich hoffe, dass sie sich nicht allzu sehr die Haare gerauft hat, als sie die richtige Farbgebung des Codes auf über 300 Seiten überprüfen musste.

Ein großes Dankeschön geht an Miran Lipovaca für ihre überaus gelungenen Illustrationen. Sie sind viel mehr als nur gelungen. Nein ehrlich! Wenn ich das gemacht hätte, könnte man von Glück sagen, wenn man ab und zu eine hingeschmierte Figur erkennen könnte. Ist es ein Bär? Ist es ein Hund? Nein, warte ... soll das ein Baum sein?

Vielen Dank den Korrektoren! Ich muss mich dafür entschuldigen, dass nicht alle Vorschläge am Ende berücksichtigt wurden. Wahrscheinlich hattet Ihr recht, und ich kann nur eine schlechte Charaktereigenschaft von mir dafür verantwortlich machen, falls noch Fehler enthalten sind. Besonderer Dank geht an Josh für einige wirklich tolle Vorschläge und Ideen. Mein Bedauern gilt Maria, weil sie sich mit zum Teil uneinheitlich formatiertem Code herumschlagen musste.

Ich danke meiner Frau und meiner Tochter dafür, dass sie sich mit einem Mann und Vater abfinden mussten, der sich noch mehr als sonst hinter dem Computerbildschirm versteckt hat.

Meiner Mutter danke ich für all die unermüdliche Aufmunterung über all die Jahre.

Und zu guter Letzt danke ich meinem Vater dafür, dass er sich damals in den 1970er-Jahren einen Computer gekauft hat und es ertragen hat, dass ich diesen genauso oft nutzen wollte wie er. Nichts von alledem wäre ohne ihn möglich gewesen.

Inhaltsübersicht

1     Einleitung

Teil I        Programmieren lernen

2     Nicht alle Schlangen schlängeln sich

3     Berechnungen und Variablen

4     Strings, Listen, Tupeln und Maps

5     Malen mit Turtles

6     Fragen mit if und else stellen

7     Schleifen drehen

8     Wiederverwertung Deines Codes mit Funktionen und Modulen

9     Wie man Klassen und Objekte benutzt

10   Pythons eingebaute Funktionen

11   Nützliche Python-Module

12   Noch mehr Grafik mit turtle

13   Bessere Grafiken mit tkinter

Teil II       BOUNCE!

14   Der Anfang Deines ersten Spiels: BOUNCE!

15   Dein erstes Spiel vollenden: BOUNCE!

Teil III      Herr Strichmann rennt zum Ausgang

16   Wir erstellen Grafiken für das Strichmännchenspiel

17   Entwicklung des Strichmännchenspiels

18   Herrn Strichmann erschaffen

19   Abschluss des Spiels mit Herrn Strichmann

20   Wie geht es jetzt weiter?

Anhang

Python-Schlüsselwörter

Glossar

Index

Inhaltsverzeichnis

1        Einleitung

1.1      Warum Python?

1.2      Wie man das Programmieren lernt

1.3      Wer dieses Buch lesen sollte

1.4      Was in diesem Buch steht

1.5      Die Website zum Buch

1.6      Viel Vergnügen!

Teil I        Programmieren lernen

2        Nicht alle Schlangen schlängeln sich

2.1      Ein paar Bemerkungen zum Thema Sprache

2.2      Python installieren

Python unter Windows installieren

Python in MacOSX installieren

Python in Ubuntu installieren

2.3      Wenn Du Python installiert hast

2.4      Deine Python-Programme sichern

2.5      Was Du gelernt hast

3        Berechnungen und Variablen

3.1      Mit Python rechnen

Operatoren in Python

Die Rangfolge der Operationen

3.2      Variablen sind wie Bezeichnungen

3.3      Variablen benutzen

3.4      Was Du gelernt hast

4        Strings, Listen, Tupeln und Maps

4.1      Strings

Strings erzeugen

Wie man Probleme mit Strings meistert

Werte in Strings einbetten

Strings multiplizieren

4.2      Listen können mehr als Strings

Einer Liste Elemente hinzufügen

Elemente aus einer Liste entfernen

Mit Listen rechnen

4.3      Tupeln

4.4      Maps in Python weisen Dir nicht den Weg

4.5      Was Du gelernt hast

4.6      Programmier-Puzzles

#1: Lieblingssachen

#2: Kämpfer zählen

#3: Grüße!

5        Malen mit Turtles

5.1      Wie man Pythons Modul turtle benutzt

Eine Leinwand erzeugen

Die Schildkröte bewegen

5.2      Was Du gelernt hast

5.3      Programmier-Puzzles

#1: Ein Rechteck

#2: Ein Dreieck

#3: Eine Kiste ohne Ecken

6        Fragen mit if und else stellen

6.1      if-Anweisungen

Ein Anweisungsblock enthält mehrere Anweisungen

Mit Bedingungen können wir Dinge vergleichen

6.2      If-Then-Else-Anweisungen

6.3      if- und elif-Anweisungen

6.4      Bedingungen kombinieren

6.5      Variablen ohne Wert – None

6.6      Der Unterschied zwischen Strings und Zahlen

6.7      Was Du gelernt hast

6.8      Programmier-Puzzles

#1: Bist Du reich?

#2: Kekse!

#3: Einfach die richtige Zahl

#4: Ich kann die Ninjas bezwingen

7        Schleifen drehen

7.1      Wie man for-Schleifen benutzt

7.2      Wo wir gerade von Schleifen sprechen...

7.3      Was Du gelernt hast

7.4      Programmier-Puzzles

#1: Die Hallo-Schleife

#2: Gerade Zahlen

#3: Meine fünf Lieblingszutaten

#4 Wie viel wiegst Du auf dem Mond?

8        Wiederverwertung Deines Codes mit Funktionen und Modulen

8.1      Funktionen benutzen

Teile einer Funktion

8.2      Variablen und ihr Gültigkeitsbereich

8.3      Einsatz von Modulen

8.4      Was Du gelernt hast

8.5      Programmier-Puzzles

#1: Einfache Funktion für Dein Gewicht auf dem Mond

#2: Was wiegst Du auf dem Mond nach x Jahren?

#3: Ein Programm für Dein Gewicht auf dem Mond

9        Wie man Klassen und Objekte benutzt

9.1      Dinge in Klassen aufteilen

Kinder und Eltern

9.2      Klassen Objekte hinzufügen

9.3      Funktionen von Klassen definieren

Klasseneigenschaften als Funktionen hinzufügen

9.4      Wozu braucht man Klassen und Objekte?

9.5      Objekte und Klassen bei Bildern

9.6      Weitere nützliche Eigenschaften von Objekten und Klassen

9.7      Geerbte Funktionen

9.8      Funktionen, die andere Funktionen aufrufen

9.9      Ein Objekt initialisieren

9.10    Was Du gelernt hast

9.11    Programmier-Puzzles

#1: Der Giraffen-Schiebetanz

#2: Schildkröten-Heugabel

10      Pythons eingebaute Funktionen

10.1    Eingebaute Funktionen verwenden

Die abs-Funktion

Die boolesche Funktion

Die Funktion dir

Die Funktion eval

Die Funktion exec

Die Funktion float

Die Funktion int

Die Funktion len

Die Funktionen max und min

Die Funktion range

Die Funktion sum

10.2    Umgang mit Dateien

Erzeugen einer Test-Datei

Eine Datei in Python öffnen

In Dateien schreiben

10.3    Was Du gelernt hast

10.4    Programmier-Puzzles

#1: Geheimnisvoller Code

#2: Eine versteckte Botschaft

#3: Eine Datei kopieren

11      Nützliche Python-Module

11.1    Mit dem Modul copy Kopien erstellen

11.2    Mit dem Modul keyword einen Überblick über die Schlüsselwörter erhalten

11.3    Wie man mit dem Modul random Zufallszahlen bekommt

Mit randint eine Zufallszahl bestimmen lassen

Mit choice ein zufälliges Element aus einer Liste auswählen

Mit shuffle eine Liste mischen

11.4    Die Shell mit dem Modul sys steuern

Die Shell mit der Funktion exit verlassen

In dem Objekt stdin lesen

Mit dem Objekt stdout schreiben

Welche Python-Version benutze ich?

11.5    Mit dem Modul time arbeiten

Mit asctime ein Datum umwandeln

Mit localtime Datum und Uhrzeit bekommen

Mit sleep eine Pause machen

11.6    Mit dem Modul pickle Informationen speichern

11.7    Was Du gelernt hast

11.8    Programmier-Puzzles

#1: Kopierte Autos

#2: Favoriten in pickle

12      Noch mehr Grafik mit turtle

12.1    Fangen wir mit einem einfachen Quadrat an

12.2    Sterne zeichnen

12.3    Ein Auto zeichnen

12.4    Dinge einfärben

Eine Funktion zum Zeichnen eines ausgefüllten Kreises

Reines Schwarz und Weiß erzeugen

Eine Funktion zum Quadratezeichnen

12.5    Ausgefüllte Quadrate zeichnen

12.6    Ausgefüllte Sterne zeichnen

12.7    Was Du gelernt hast

12.8    Programmier-Puzzles

#1: Ein Oktagon zeichnen

#2: Ein ausgefülltes Oktagon zeichnen

#3: Noch eine Funktion zum Sterne Zeichnen

13      Bessere Grafiken mit tkinter

13.1    Einen klickbaren Button erzeugen

13.2    Einsatz von benannten Parametern

13.3    Eine Leinwand zum Zeichnen erzeugen

13.4    Linien zeichnen

13.5    Kästchen zeichnen

Ganz viele Rechtecke zeichnen

Die Farbe bestimmen

13.6    Bögen zeichnen

13.7    Polygone zeichnen

13.8    Darstellung von Text

13.9    Bilder anzeigen

13.10  Eine einfache Animation erzeugen

13.11  Ein Objekt auf etwas reagieren lassen

13.12  Weitere Anwendungen für die ID-Nummer

13.13  Was Du gelernt hast

13.14  Programmier-Puzzles

#1: Fülle die Leinwand mit Dreiecken

#2: Das sich bewegende Dreieck

#3: Das sich bewegende Foto

Teil II       BOUNCE!

14      Der Anfang Deines ersten Spiels: BOUNCE!

14.1    Schlag den hüpfenden Ball

14.2    Erzeugen einer Spiele-Leinwand

14.3    Erzeugen der Ball-Klasse

14.4    In Bewegung kommen

Den Ball in Bewegung setzen

Den Ball springen lassen

Die Startposition des Balls ändern

14.5    Was Du gelernt hast

15      Dein erstes Spiel vollenden: BOUNCE!

15.1    Einen Schläger hinzufügen

Den Schläger in Bewegung setzen

15.2    Merken, dass der Ball auf den Schläger trifft

15.3    Dem Spiel etwas Zufall hinzufügen

15.4    Was Du gelernt hast

15.5    Programmier-Puzzles

#1: Verzögere den Spielstart

#2: Ein richtiges »Game Over«

#3: Beschleunige den Ball

#4: Zeichne den Punktestand auf

Teil III      Herr Strichmann rennt zum Ausgang

16      Wir erstellen Grafiken für das Strichmännchenspiel

16.1    Der Strichmännchen-Spielplan

16.2    GIMP installieren

16.3    Erzeugen der Spielelemente

Ein transparentes Bild erstellen

Herrn Strichmann zeichnen

Herr Strichmann rennt nach rechts

Herr Strichmann rennt nach links

Ebenen zeichnen

Die Tür zeichnen

Den Hintergrund zeichnen

Transparenz

16.4    Was Du gelernt hast

17      Entwicklung des Strichmännchenspiels

17.1    Erzeugen der Spiel-Klasse

17.2    Den Fenstertitel bestimmen und die Leinwand erzeugen

Abschluss der _ _init_ _-Funktion

Erzeugen der Hauptschleifen-Funktion

17.3    Erstellen der Klasse Koordinaten

17.4    Zusammenstöße erkennen

Sprites stoßen horizontal zusammen

Sprites stoßen vertikal zusammen

Alles zusammenfügen: Unserer endgültiger Code zur Erkennung von Zusammenstößen

17.5    Erzeugen der Sprite-Klasse

17.6    Die Ebenen hinzufügen

Ein Ebenen-Objekt hinzufügen

Einen ganzen Haufen Ebenen hinzufügen

17.7    Was Du gelernt hast

17.8    Programmier-Puzzles

#1: Schachbrett

#2: Zwei-Bilder-Schachbrett

#3: Regal und Lampe

18      Herrn Strichmann erschaffen

18.1    Das Strichmännchen initialisieren

Die Strichmännchen-Bilder laden

Variablen einrichten

Bindung an die Tasten

18.2    Das Strichmännchen nach links und rechts bewegen

18.3    Das Strichmännchen springen lassen

18.4    Was wir bis jetzt erreicht haben

18.5    Was Du gelernt hast

19      Abschluss des Spiels mit Herrn Strichmann

19.1    Animation des Strichmännchens

Die Funktion animieren erstellen

Das Strichmännchen in Bewegung versetzen

19.2    Testen unseres Strichmännchen-Sprites

19.3    Die Tür!

Die Klasse TürSprite erzeugen

Die Tür erkennen

Das Tür-Objekt hinzufügen

19.4    Das fertige Spiel

19.5    Was Du gelernt hast

19.6    Programmier-Puzzles

#1: »Du hast gewonnen!«

#2: Animation der Tür

#3: Sich bewegende Ebenen

20      Wie geht es jetzt weiter?

20.1    Spiele- und Grafikprogrammierung

20.2    PyGame

20.3    Programmiersprachen

Java

C/C++

C#

PHP

Objective-C

PERL

Ruby

JavaScript

20.4    Abschließende Worte

Anhang

Python-Schlüsselwörter

Glossar

Index

1
Einleitung

Warum soll man das Programmieren erlernen?

Programmieren fördert die Kreativität, das logische Denken und die Fähigkeit, Probleme zu lösen. Programmierer und Programmiererinnen haben die Möglichkeit, etwas aus dem Nichts zu erschaffen. Mithilfe der Logik bringen sie Programmstrukturen in eine Form, sodass ein Computer damit funktioniert. Und wenn die Dinge nicht ganz so gut funktionieren wie erwartet, können sie durch die Fähigkeit zur Problemlösung herausfinden, was schiefgelaufen ist. Programmieren macht Spaß, ist manchmal schwierig (gelegentlich frustrierend), und die Fähigkeiten, die man dabei erwirbt, können sowohl in der Schule als auch bei der Arbeit nützlich sein – selbst wenn Dein Berufsleben später nichts mit Computern zu tun haben sollte.

Außerdem ist das Programmieren ein prima Zeitvertreib bei miesem Wetter.

1.1 Warum Python?

Python ist eine leicht zu erlernende Programmiersprache, die für den Programmieranfänger einige nützliche Eigenschaften hat. Der Code ist im Vergleich zu anderen Programmiersprachen recht einfach zu lesen, und es gibt eine interaktive Shell, in die man seine Programme eingeben und sehen kann, wie sie laufen. Zusätzlich zu seiner einfachen Programmstruktur und seiner interaktiven Shell hat Python einige Merkmale, die den Lernvorgang sehr bereichern und mit denen Du einfache Animationen zum Erstellen Deiner eigenen Spiele zusammenbauen kannst. Eines davon ist das Modul turtle, das von Turtle Graphics inspiriert wurde (das in den 1960er-Jahren von der Programmiersprache Logo verwendet wurde) und für Lernzwecke geschaffen wurde. Ein weiteres Modul ist tkinter, mit dem man auf das Tk GUI Toolkit zugreifen kann, um damit ziemlich einfach ein bisschen anspruchsvollere Grafiken und Animationen zu erstellen.

1.2 Wie man das Programmieren lernt

Wie bei allem, was man zum ersten Mal probiert, ist es am besten, mit den Grundlagen anzufangen. Beginne daher mit den ersten Kapiteln, und blättere nicht voller Ungeduld zu den Kapiteln weiter hinten. Niemand kann beim ersten Mal, wenn er ein Musikinstrument in die Hand nimmt, im Sinfonieorchester mitspielen. Flugschüler fliegen auch nicht, bevor sie die grundlegenden Steuerelemente verstanden haben, und Turner kriegen (normalerweise) beim ersten Versuch keinen Salto rückwärts hin. Wenn Du zu Anfang zu ungeduldig bist, haben die grundlegenden Prinzipien keine Zeit, sich richtig in Deinem Kopf festzusetzen. Dir wird dann der Inhalt der Kapitel weiter hinten viel komplizierter vorkommen, als er in Wirklichkeit ist.

Während Du dieses Buch durchliest, solltest Du jedes Beispiel selbst ausprobieren, um zu sehen, wie es funktioniert. Am Ende der meisten Kapitel gibt es auch Programmier-Puzzles, die Du lösen kannst. Sie werden Deine Programmierfähigkeiten fördern. Denke immer daran: Je besser Du die Grundlagen verstanden hast, desto leichter werden Dir die komplizierteren Konzepte später vorkommen.

Wenn Dich etwas frustriert oder Dir zu schwierig vorkommt, hier ein paar Ratschläge, die ich sehr hilfreich finde:

1.3 Wer dieses Buch lesen sollte

Dieses Buch ist für jeden geschrieben, der sich für das Programmieren interessiert, ganz egal, ob man nun Kind oder Erwachsener ist, wenn man zum ersten Mal programmiert. Wenn man lernen will, wie man seine eigene Software schreibt, anstatt nur von anderen entwickelte Programme zu nutzen, ist Python kinderleicht ein toller Einstieg.

In den folgenden Kapiteln erfährst Du, wie man Python installiert, die Python-Shell startet, einfache Berechnungen anstellt, Text auf den Bildschirm bekommt und Listen erstellt. Du lernst, wie man einfache Fallunterscheidungen mit if-Anweisungen und for-Schleifen durchführt. (Und natürlich erfährst Du, was if-Anweisungen und for-Schleifen eigentlich sind!) Du erfährst, wie man Code mit Funktionen wiederverwendet. Du lernst die Grundlagen von Klassen und Objekten kennen und bekommst Beschreibungen der vielen in Python eingebauten Funktionen und Module.

Es gibt Kapitel über einfache und fortgeschrittene Turtle-Grafiken und über die Benutzung des Moduls tkinter, um auf dem Computerbildschirm zu zeichnen. Am Ende vieler Kapitel gibt es Programmier-Puzzles mit unterschiedlichen Schwierigkeitsgraden, die dabei helfen, das gerade Gelernte zu verfestigen. Sie bieten Dir auch die Möglichkeit, selbst kleine Programme zu schreiben.

Wenn Du Dir die Grundlagen des Programmierens angeeignet hast, wirst Du lernen, wie Du Deine eigenen Spiele schreiben kannst. Du wirst zwei grafische Spiele entwickeln und etwas über Kollisionsdetektion, Events und diverse Animationstechniken erfahren.

Die meisten Beispiele in diesem Buch benutzen die IDLE-Shell (Integrated DeveLopment Environment; integrierte Entwicklungsumgebung) von Python. IDLE bietet Syntax-Markierung, eine Kopieren- und Einfügen-Funktionalität (so, wie Du es von anderen Anwendungen kennst) und ein Editor-Fenster, in dem Du Deinen Code für den späteren Gebrauch speichern kannst. IDLE ist daher eine Entwicklungsumgebung zum Experimentieren und hat auch ein bisschen was von einem Text-Editor. Die Beispiele funktionieren genauso gut in der Standard-Konsole und in einem üblichen Text-Editor, aber die Syntax-Markierung und die benutzerfreundlichere Umgebung von IDLE helfen Dir, den Code schneller zu verstehen. Deshalb wird im ersten Kapitel erklärt, wie man IDLE einrichtet.

1.4 Was in diesem Buch steht

Hier ist ein kurzer Überblick, was Dich in den einzelnen Kapiteln erwartet:

1.5 Die Website zum Buch

Wenn Du meinst, dass Du während des Lesens Hilfe brauchst, kannst Du die Website www.dpunkt.de/python aufsuchen, wo Du Downloads für alle Beispiele in diesem Buch und noch mehr Programmier-Puzzles findest. Du findest dort auch die Lösungen für alle Programmier-Puzzles in diesem Buch, falls Du nicht mehr weiter weißt oder Deine Programme überprüfen möchtest.

1.6 Viel Vergnügen!

Vergiss beim Durcharbeiten dieses Buches nie, dass Programmieren Spaß machen kann. Sieh es nicht als Arbeit an: Das Programmieren ist eine Möglichkeit, lustige Spiele oder Anwendungen zu erzeugen, die Du mit Deinen Freunden oder anderen teilen kannst.

Programmieren zu lernen ist ein tolles Training fürs Gehirn, und die Ergebnisse können sehr bereichernd sein. Aber vor allem gilt: Egal was Du tust, hab Spaß dabei!

Teil I
Programmieren lernen

2
Nicht alle Schlangen schlängeln sich

Ein Computerprogramm ist eine Gruppe von Anweisungen, die einen Computer dazu bringen, irgendetwas Bestimmtes zu machen. Es geht uns hier nicht um die physischen Bestandteile eines Computers, also die Drähte, Mikrochips, Karten, die Festplatte usw., sondern um die verborgenen Dinge, die auf dieser Hardware laufen. Ein Computerprogramm, das ich meist einfach nur Programm nenne, ist diese Gruppe von Befehlen, die der dummen Hardware sagt, was sie zu tun hat. Die Software ist eine Sammlung von Computerprogrammen.

Ohne Computerprogramme würde fast jedes Gerät, das wir täglich nutzen, entweder gar nicht funktionieren oder wäre weit weniger nützlich. In der einen oder anderen Form steuern Computerprogramme nicht nur Deinen Computer, sondern auch Videospiele, Mobiltelefone und Navigationsgeräte in Autos. Auch bei weniger offensichtlichen Dingen wie Flachbild-Fernsehern und deren Fernbedienungen sowie modernen Radios, DVD-Playern, Herden und einigen Kühlschränken übernimmt eine Software die Steuerung. Sogar Automotoren, Ampeln, die Straßenbeleuchtung, Zugsignale, elektronische Anzeigetafeln und Aufzüge werden von Programmen geregelt.

Programme sind ein bisschen wie Gedanken. Wenn Du keine Gedanken hättest, würdest Du wahrscheinlich nur auf dem Boden sitzen und auf Dein T-Shirt sabbern. Dein Gedanke »Stehe auf!« ist eine Anweisung, die Deinem Körper sagt, dass er aufstehen soll. Genauso sagen Computerprogramme dem Computer, was er zu tun hat.

Wenn Du weißt, wie man Computerprogramme schreibt, kannst Du allerlei nützliche Dinge anstellen. Sicherlich kannst Du dann nicht direkt Programme schreiben, die Autos, Ampeln oder Deinen Kühlschrank steuern, aber Du kannst damit Webseiten erzeugen, Deine eigenen Spiele programmieren oder Dir ein Programm schreiben, das Dir bei den Hausaufgaben hilft.

2.1 Ein paar Bemerkungen zum Thema Sprache

Wie wir Menschen auch benutzen Computer verschiedene Sprachen, um zu kommunizieren – nämlich Programmiersprachen. Eine Programmiersprache ist einfach eine bestimmte Art, mit dem Computer zu reden – eine Art, Anweisungen zu benutzen, die sowohl der Mensch als auch der Computer verstehen.

Es gibt Programmiersprachen, die nach Leuten benannt wurden (z.B. Ada und Pascal), solche, die Abkürzungen darstellen (z.B. BASIC und FORTRAN) und sogar solche, die wie Python nach Fernsehsendungen benannt wurden.

Ja, die Programmiersprache Python wurde nach der Sendung Monty Python’s Flying Circus benannt und nicht nach der Python-Schlange.

Eine ganze Reihe von Eigenschaften der Programmiersprache Python machen sie für Anfänger besonders geeignet. Die wichtigste Eigenschaft ist, dass Du mit Python ziemlich schnell einfache, aber wirkungsvolle Programme schreiben kannst. Python verwendet nicht viele dieser komplizierten Zeichen, wie geschweifte Klammern ({ }), Doppelkreuze (#) oder Dollarzeichen($), die andere Programmiersprachen viel schwerer zu lesen machen und daher auf Anfänger abschreckend wirken.

2.2 Python installieren

Die Installation von Python ist sehr unkompliziert. Wir gehen hier die Schritte der Installation in Windows, MacOSX und Ubuntu durch. Beim Installieren von Python legst Du Dir auch eine Verknüpfung zum Programm IDLE an. Das ist die integrierte Entwicklungsumgebung, in der Du später Deine Programme schreiben kannst.

Falls Python schon auf Deinem Computer installiert ist, kannst Du zu Abschnitt 2.3 weiterblättern.

Python unter Windows installieren

Um Python für Microsoft Windows zu installieren, gehst Du mit Deinem Browser auf http://www.python.org und lädst Dir den aktuellen Windows-Installer für Python 3 herunter.

Nachdem Du den Windows-Installer heruntergeladen hast, machst Du einen Doppelklick auf sein Icon und folgst dann den Anweisungen, um Python an seinem voreingestellten Speicherort wie folgt zu installieren:

  1. Wähle Install for all Users, und klicke unten auf Next.

  2. Lasse den eingestellten Pfad so, wie er ist, notiere Dir aber den Namen des Installationpfades (vermutlich C:\User\DeinBenutzername\AppData\Local\Python35-32). Klicke auf Next.

Am Ende dieses Vorgangs solltest Du einen Python-3-Eintrag in Deinem StartMenü haben:

Als Nächstes machst Du Folgendes, um Dir eine Verknüpfung auf dem Desktop anzulegen:

  1. Mache einen Rechtsklick auf Deinem Desktop, und wähle im Kontextmenü Neu Verknüpfung.

  2. Im nun folgenden Dialogfenster, wo es heißt Geben Sie den Speicherort des Elementes ein (achte darauf, dass der Pfad der gleiche ist, den Du vorher notiert hast) gibst Du Folgendes ein:

    C:\Users\DeinBenutzername\AppData\Local\Programs\Python\
              Python35-32\Lib\idlelib\idle.pyw

    Das Dialogfenster sollte jetzt so aussehen:

  3. Klicke auf Weiter, um zum nächsten Dialogfenster zu gelangen.

  4. Als Namen gibst Du IDLE ein und klickst auf Fertig stellen, um die Verknüpfung zu erstellen.

Jetzt kannst Du zu »Wenn Du Python installiert hast« auf Seite 14 weiterblättern.

Python in MacOSX installieren

Falls Du einen Mac benutzt, solltest Du bereits eine Version von Python vorfinden. Dabei handelt es sich aber wahrscheinlich um eine ältere Version. Um ganz sicherzugehen, dass Du die aktuelle Version hast, gehst Du mit Deinem Browser auf http://www.python.org/getit/ und lädst Dir den aktuellen Installer für Mac herunter.

Es gibt dort zwei verschiedene Installer. Welchen Du herunterladen solltest, hängt von der MacOSX-Version ab, die Du benutzt (um das herauszufinden, klickst Du in der obersten Menüleiste auf das Apple-Symbol und gehst auf Über diesen Mac.) Wähle dann wie folgt den Installer:

Sobald Du die Datei heruntergeladen hast (sie wird das Suffix .pkg haben), machst Du einen Doppelklick darauf. Danach siehst Du ein Fenster mit den Inhalten dieser Datei.

Anschließend folgst Du den Anweisungen beim Installieren der Software. Du wirst aufgefordert, Dein Administrator-Kennwort einzugeben, bevor sich Python installiert. (Du hast kein Administrator-Kennwort? Dann müssen es vielleicht Deine Eltern eingeben.)

Um Python schnell starten zu können, solltest Du dir das Icon von IDLE ins Dock legen:

  1. Klicke in einem offenen Fenster auf Programme.

  2. Gehe in der Liste der Programme bis zum Ordner Python 3.5 und öffne ihn mit einem Doppelklick.

  3. Klicke nun einmal auf das Icon »IDLE« und ziehe es mit gedrückter linker Maustaste (oder über das Trackpad) in Dein Dock. Hier ist es am unteren Bildschirmrand.

  4. Von nun an kannst Du die Python-Shell direkt durch Anklicken aus Deinem Dock starten.

Jetzt kannst Du zu Seite 14, »Wenn Du Python installiert hast«, gehen und mit Python loslegen.

Python in Ubuntu installieren

Python ist bei der Ubuntu-Distribution schon vorinstalliert, aber es könnte sich dabei um eine ältere Version handeln. Um Python 3 in Ubuntu 15.x zu installieren, führe folgende Schritte durch:

  1. Klicke in der Seitenleiste auf den Button für das Ubuntu-Software-Center. (Das ist das Icon, das wie eine orangefarbene Tasche aussieht – falls Du es nicht siehst, kannst Du auch auf den Dash-Startseite-Button klicken und in das Suchfeld Software eingeben.)

  2. Gib im Suchfeld ganz oben rechts im Software-Center Python ein.

  3. In der Liste der angebotenen Software wählst Du die aktuelle Version von IDLE, also in diesem Fall IDLE (using Python 3.5), aus.

  4. Klicke auf Installieren.

  5. Um die Software zu installieren, gibst Du Dein Administrator-Passwort ein und klickst dann auf Authentifizieren. (Du hast kein Administrator-Kennwort? Dann müssen es vielleicht Deine Eltern eingeben.)

Jetzt, da Du die aktuelle Version von Python installiert hast, wollen wir es einmal ausprobieren.

2.3 Wenn Du Python installiert hast

Jetzt solltest Du ein Icon auf Deinem Windows-oder MacOSX-Schreibtisch respektive Desktop haben, das mit IDLE beschriftet ist. Wenn Du Ubuntu nutzt, solltest Du auf der Dash-Startseite unter Anwendungen IDLE (using Python 3.5) (oder eine spätere Version) finden.

Mache einen Doppelklick auf das Icon, oder wähle die Menü-Option. Danach sollte dieses Fenster erscheinen:

Dies ist die Python-Shell, die zur integrierten Enwicklungsumgebung von Python gehört. Die drei Größer-als-Zeichen (>>>) nennt man den Prompt.

Lasst uns nun einige Befehle hinter dem Prompt eingeben. Wir fangen mit diesem hier an:

>>> print("Hallo Welt!")

Achte darauf, dass Du die beiden Anführungsstriche oben (" ") mit eingibst. Drücke dann auf die ENTER-Taste auf Deiner Tastatur. Wenn Du den Befehl korrekt eingegeben hast, solltest Du so etwas sehen:

>>> print("Hallo Welt!")
Hallo Welt!
>>>

Der Prompt sollte danach wieder erscheinen, damit Du weißt, dass Python wieder bereit ist, weitere Befehle zu empfangen.

Glückwunsch! Du hast soeben Dein erstes Python-Programm geschrieben. Das Wort print gehört zu der Gruppe von Python-Befehlen, die man Funktionen nennt. Die Funktion print gibt alles auf dem Bildschirm aus, was zwischen den Anführungsstrichen steht. Du hast also dem Computer gesagt, dass er die Worte »Hallo Welt!« anzeigen soll – eine Anweisung also, die Du genauso verstehst wie auch der Computer.

2.4 Deine Python-Programme sichern

Python-Programme wären nicht sehr nützlich, wenn man sie jedes Mal wieder neu schreiben müsste, wenn man sie benutzen möchte. Außerdem müsste man sie auch noch ausdrucken, um eine Vorlage fürs nächste Mal zu haben.

Natürlich ist es kein Problem, kleine Programme neu zu schreiben, aber große Programme, wie etwa eine Textverarbeitung, können Millionen von Programmzeilen enthalten. Wenn Du die ausdrucken würdest, hättest Du weit über 10.000 Seiten. Stell Dir nur einmal vor, Du willst diesen riesigen Papierstapel nach Hause tragen. Da kannst Du nur hoffen, dass kein heftiger Windstoß kommt.

Zum Glück können wir unsere Programme für den späteren Gebrauch speichern. Um ein neues Programm zu speichern, öffne IDLE und gehe auf File New File. Es öffnet sich dann ein neues Fenster, das über der Menüleiste mit *Untitled* (ohne Titel) bezeichnet ist.

Gib nun folgenden Code in das neue Shell-Fenster ein:

print("Hallo Welt!")

Jetzt gehst Du im Menü auf File Save. Sobald Du aufgefordert wirst, einen Dateinamen zu vergeben, gibst Du Hallo.py ein und speicherst die Datei auf Deinem Desktop. Dann gehst Du in diesem neuen Fenster im Menü auf Run Run Module. Mit etwas Glück läuft nun Dein gespeichertes Programm und sieht in etwa so aus:

Wenn Du nun das Shell-Fenster schließt, das mit Hallo.py beschriftete Fenster aber offen lässt und dort wieder auf Run Run Module gehst, sollte das Shell-Fenster wieder auftauchen. (Um die Python-Shell wieder zu öffnen, ohne dass das Programm läuft, gehe auf Run Python Shell.)

Nach der Ausführung des Codes wirst Du ein neues Icon auf Deinem Desktop finden, das Hallo.py heißt. Wenn Du darauf doppelklickst, erscheint ganz kurz ein schwarzes Fenster. Was ist da passiert?

Du siehst kurz die Python-Eingabeaufforderung (ähnlich wie die Shell). Sie gibt »Hallo Welt!« aus und wird sofort wieder geschlossen. Dies würdest Du sehen, wenn Du die Augen eines Superhelden hättest und im Fenster erkennen könntest, was darin zu sehen ist:

Zusätzlich zu den Menüs kannst Du auch Tastaturkürzel benutzen, um ein neues Shell-Fenster zu erzeugen, eine Datei zu speichern und um ein Programm laufen zu lassen:

  • Unter Windows und Ubuntu drückst Du Ctrl-N für ein neues Shell-Fenster, Ctrl-S zum Speichern Deiner Datei nach dem Bearbeiten und F5, um Dein Programm laufen zu lassen.

  • Unter MacOSX drückst Du -N für ein neues Shell-Fenster, -S zum Speichern Deiner Datei nach dem Bearbeiten und F5 (eventuell brauchst Du noch die Taste fn dazu), um Dein Programm laufen zu lassen.