Fehr | Let’s code Python | E-Book | sack.de
E-Book

E-Book, Deutsch, 360 Seiten

Reihe: Rheinwerk Computing

Fehr Let’s code Python


2. Auflage 2022
ISBN: 978-3-8362-8656-5
Verlag: Rheinwerk
Format: EPUB
Kopierschutz: 0 - No protection

E-Book, Deutsch, 360 Seiten

Reihe: Rheinwerk Computing

ISBN: 978-3-8362-8656-5
Verlag: Rheinwerk
Format: EPUB
Kopierschutz: 0 - No protection



Python macht Spaß! Steige einfach in die Programmierung ein: Mit eigenen kleinen Programmen und Spielen, selbst gebauten Kreaturen, Grafik und mehreren Leveln. Mit der Entwicklungsumgebung TigerJython ist es besonders einfach, zügig loszulegen. Sie bietet viele Hilfen eigens für Anfänger und für den Fall, dass du mal einen Fehler finden musst. Ohne Vorkenntnisse lernst du Python in überschaubaren Projekten kennen. Neue Sprachelemente werden ausführlich vorgestellt, mit farbigen Hervorhebungen und Erklärungen direkt am Code.

Aus dem Inhalt:

  • Installation und erste Schritte
  • Quiz, Vokabeltrainer, Würfel-Poker
  • Fehler finden leicht gemacht
  • Ein Grafik-Framework benutzen
  • Ein Roboter, der zeichnen kann
  • Dateien bearbeiten und speichern
  • Mathematische Graphen und Diagramme
  • Spiele nachprogrammieren: Breakout, Tic Tac Toe und mehr
  • Selbst gebaute Kreaturen
  • Multi-Level-Spiele


Hauke Fehr programmiert seit 30 Jahren in verschiedenen Sprachen. Mit wachsender Begeisterung entwickelt er mit LiveCode kommerzielle Apps im Auftrag seiner Kunden und als eigene Produkte. Die Anwendungsgebiete reichen vom Sprachenlernen bis zur Auftragsverwaltung für KMUs. Als Linguist und Hochschuldozent hat er ein besonderes Gespür fürs Lernen und Lehren. Seine Programmierkenntnisse und Ideen gibt er gern an Kunden, Kursteilnehmer und natürlich seine Leser weiter.
Fehr Let’s code Python jetzt bestellen!

Autoren/Hrsg.


Weitere Infos & Material


Liebe Leserin, lieber Leser, ... 2  Materialien zum Buch ... 13  1.  Programme schreiben -- wie geht das? ... 15  2.  Wie funktionieren Computer überhaupt? ... 19  Innenleben eines PCs ... 19  Eingabe, Verarbeitung, Ausgabe ... 20  Bits und Bytes ... 22  Prozessortakt -- wie schnell läuft mein PC? ... 24  3.  Python -- die Programmiersprache ... 25  Maschinensprache -- die Muttersprache des Prozessors ... 25  Interpreter und Compiler ... 26  Python -- einfach und universell ... 27  Jython -- was ist das? ... 28  TigerJython -- deine Lernumgebung ... 29  4.  TigerJython installieren -- einfacher geht's nicht ... 31  Installation unter Windows ... 31  Installation auf dem Mac ... 33  Installation unter Linux ... 35  5.  Die ersten Schritte -- Python im Dialog ... 37  Direkte Befehle -- die Konsole ... 38  Ausgabe mit Zahlen ... 38  Die Syntax muss stimmen ... 43  Zeichenketten statt Zahlen ... 44  6.  Variablen -- jetzt wird es flexibel ... 47  Variablennamen ... 49  Der »input«-Befehl -- Eingaben zum Verarbeiten ... 51  7.  Programme schreiben -- es geht los! ... 55  Ein Programm in TigerJython eingeben ... 55  Das allererste Programm: Ein Zahlenzaubertrick ... 56  Zweites Programm: Ein Umrechner ... 58  Programme speichern ... 60  Eingabe, Verarbeitung, Ausgabe -- diesmal mit Text ... 61  Rechner mit Rest ... 62  Das magische Quadrat ... 64  Variation: Magisches Quadrat mit fester Summe ... 67  8.  Bedingungen -- was passiert, wenn ...? ... 71  »if«-Abfragen in Python ... 72  »if« mit »else« ... 75  Mehrere Bedingungen verknüpfen ... 77  »elif« -- »else if« ... 78  »if« -- »else« im Überblick ... 80  Wahr und falsch beim Verknüpfen ... 82  Programm: Eintrittsprüfung ... 83  9.  Befehle und Module ... 85  Was sind Module? ... 85  Das Modul »math« ... 86  Das Modul »random« ... 90  Roulette ... 91  Programm: Entscheidungshilfe ... 92

10.  Schleifen -- Wiederholungen machen Programme stark ... 95  Die Zählschleife mit »repeat« ... 96  Würfeln ohne Ende ... 98  Schleifen verschachteln ... 102  Die »while«-Schleife ... 103  Würfelpoker ... 105  Klassisches Zahlenraten ... 107  Das kleine Einmaleins ... 111  Mehr Möglichkeiten für »while«-Schleifen ... 116  Primzahlentester ... 118  Das Probeverfahren ... 118  Das Schachrätsel ... 123  Zins und Zinseszins ... 125

11.  Listig -- mit Listen arbeiten ... 127  Zeichenketten sind Listen ... 127  Listen in Python ... 130  Wochentag nachschlagen ... 132  Listen per Programm erzeugen ... 133  Die »for«-Schleife mit einer Liste ... 134  Mehr Befehle, Methoden und Funktionen für Listen ... 137  Ein Lottozahlen-Tipp ... 140  Das Lottospiel: Selbst tippen und gewinnen ... 144  Mehrdimensionale Listen ... 148  Zusammenfassung: Listen ... 151

12.  Die Schildkröte -- ein grafischer Roboter ... 153  Die Schildkröte steuern ... 154  Weitere Turtle-Befehle ... 161  Grafik mit Koordinaten ... 165  Funktionsgraphen programmieren ... 167  Zufallsbilder erstellen ... 169  Variationen: Zufallsmuster ... 171  Eingebaute Funktionen nutzen ... 173

13.  Funktionen selber schreiben ... 175  Was sind Funktionen noch mal genau? ... 175  Eigene Funktionen schreiben ... 176  Eigene Funktion »zahlwort« ... 180  Ein eigenes Modul erstellen ... 184  Zeichnen mit Funktionen ... 186  Rekursive Funktionen ... 188

14.  Sound programmieren ... 193  Sound in Python abspielen ... 193  Was sind denn eigentlich Klangdateien? ... 193  WAV-Dateien abspielen ... 195  MP3-Dateien abspielen ... 196  Eigene Musik machen ... 196  Sprachsynthese -- lass den Computer sprechen! ... 198

15.  Objekte programmieren ... 201  Was sind Objekte? ... 202  Objekte in Python ... 202  Klassen und Instanzen ... 205  Objekte für alles ... 210

16.  Eigene Objekte definieren ... 213  Die Funktion »__init__« ... 214  Eigene Methoden definieren ... 217  Die Funktion »__str__« ... 218  Ableitung und Vererbung -- ein Supertoaster ... 221

17.  gamegrid -- Spiele bauen mit Objekten ... 225  Ein Spielfeld erzeugen ... 226  Actor -- jetzt kommen die Figuren ins Spiel ... 230  Der Fisch soll leben ... 232  Spielfiguren mit Eigenleben ... 234  Das Spielfeld kontrolliert den Takt ... 237  Die Steuerungsleiste in gamegrid ... 242

18.  Steuerung und Ereignisse in gamegrid ... 245  Erweiterung der Spielidee ... 249  Kollision -- Interaktion zwischen Spielfiguren ... 251  Klang hinzufügen ... 256  Ein Spiel braucht Gegner ... 257

19.  Breakball -- ein neues Spiel ... 265  Das Spielprinzip ... 265  Elemente des Programms ... 266  Erster Schritt: Spielfeld und Ball ... 266  Zweiter Schritt: Das Brett ... 271  Dritter Schritt: Die Blöcke ... 275  Die Spielsteuerung ... 280

20.  Space Attack -- ein Klassiker ... 287  Das Spielprinzip ... 287  Technik: Was brauchen wir? ... 287  Das Spielfeld ... 288  Das Raumschiff ... 288  Jetzt wird geschossen ... 290  Die Aliens ... 294  Erweiterungen ... 304  Weiterer Ausbau: Deine Aufgabe ... 307

21.  Flappy Ball -- geschicktes Hüpfen ... 309  Die Spielidee ... 309  Benötigte Elemente ... 309  Das Spielfeld ... 310  Der Ball ... 310  Die Ballsteuerung mit der Maus ... 312  Die Balken als Spielgegner ... 315  Das Spiel erweitern und verbessern ... 321  Weitere Ideen ... 323

22.  Tic Tac Toe -- Brettspiele mit gamegrid ... 325  Das Spielprinzip ... 325  Welche Elemente werden benötigt? ... 326  Das Spielfeld ... 326  Auf die Maus reagieren ... 328  Die Spielverwaltung ... 331  Ein Objekt für die Spieldaten ... 332  Erweiterungen von Tic Tac Toe ... 340  Der Computer als Gegner ... 340  Am einfachsten: Die Zufallsmethode ... 341  Cleverer: Die doppelte Prüfmethode ... 345  Echte KI: Die Minimax-Methode ... 349

23.  Wie geht es weiter? ... 351  Mit TigerJython weitermachen ... 352  Andere Python-Systeme ... 354  Andere Programmiersprachen? ... 355  Index ... 357


6    Variablen – jetzt wird es flexibel


Jeder Computer hat nicht nur sein Rechenwerk, sondern er braucht vor allem auch einen Speicher, in dem er Daten zwischenlagern kann. Beim Programmieren nutzen wir diesen Speicher konkret mithilfe von Variablen. Erst damit kann man wirklich sinnvoll Daten verarbeiten, denn sonst wären jeder Wert und jedes Ergebnis in einem Programm ja vorherbestimmt.

Erinnerst du dich an die Vorstellung vom Computer als Bearbeiter, der an seinem Schreibtisch sitzt und ständig Daten aus kleinen Schubladen holt, die er bearbeitet und dann wieder in diese Schubladen hineinsteckt? Diese Schubladen werden wir jetzt auch verwenden. Es sind die sogenannten Variablen, die in jeder Programmiersprache eine außerordentlich wichtige Rolle spielen.

Variabel heißt »veränderlich« – eine Variable ist ein Platzhalter für eine veränderliche Zahl, eine Zeichenkette oder einen anderen Datenwert. Die Variable ist also wie die Schublade, in die man einen Wert hineinstecken kann. Diese Schublade hat eine Beschriftung, damit man immer weiß, was wo drin ist. Die Beschriftung ist der Variablenname, mit dem man auf ihren Inhalt zugreifen kann.

Aber genug der Theorie. Wie sieht das in der Praxis aus? Wir bleiben noch in der Konsole und geben mal folgenden Befehl ein:

(¢)-Taste … und …? Im Ausgabefenster passiert nichts, denn wir haben ja keinen Ausgabebefehl gegeben. Der Befehl a = 25 sagt Python Folgendes:

Speichere die Zahl 25 in einer Variablen mit dem Namen a.

Merke

Wenn wir einen Variablennamen angeben, dahinter ein Gleichheitszeichen und dann einen Zahlausdruck oder eine Zeichenkette stellen, wird dieser Wert in die Variable geschrieben. Wenn die Variable noch nicht existiert, wird sie dabei automatisch erzeugt.

Jetzt gibt es also so etwas wie eine Schublade, die die Aufschrift a trägt, und in der Schublade liegt die Zahl 25.

Python bestätigt das im Dialogfenster mit der Meldung a: 25. Das heißt also: a steht fortan für die Zahl 25.

Gib jetzt Folgendes in der Konsole ein:

Ergebnis:

25

Immer wenn wir jetzt den Namen a in einem Kommando verwenden, weiß Python, dass wir den Wert meinen, der in der Variablen a drinsteckt.

Du kannst mit der Variablen jetzt genauso rechnen wie mit dem Wert 25 selbst.

print(a + 10)

ergibt:

35
Variablen und ihre Werte

Variablen werden erst in dem Moment angelegt, in dem du ihnen einen Wert gibst. Wenn ich a = 1 schreibe, dann habe ich eine Variable a angelegt, die als Inhalt den Wert 1 hat. Wenn ich der Variablen später einen anderen Wert gebe, zum Beispiel a = 12.5, dann ändert sich der Wert dieser vorhandenen Variablen a, und es wird keine neue Variable angelegt.

Du kannst in Programmen nur Variablen zum Rechnen verwenden oder ausgeben, die du vorher auch angelegt hast und denen du einen Wert gegeben hast. Variablen, denen du nie einen Wert gegeben hast, existieren nicht. Das kannst du in der Konsole leicht ausprobieren. Gib mal ein:

print(b)

Das Ergebnis ist eine Fehlermeldung:

Der Name 'b' ist nicht definiert oder falsch geschrieben.

Es existiert also keine Variable oder Funktion mit diesem Namen.

b kann nicht ausgegeben werden, weil b nicht existiert. Logisch, oder?

Erst wenn du b = 125 (oder etwas anderes) schreibst, dann existiert auch die Variable b, und dann kannst du sie auch für Berechnungen verwenden oder ausgeben.

Variablennamen


Natürlich dürfen Variablen nicht nur a, b oder c heißen. Sie können alle möglichen Namen wie eingabezahl oder geschwindigkeit oder meinErgebnis haben. Namen, die einen Hinweis darauf geben, wofür die Variable verwendet wird, helfen sehr beim Programmieren.

Allerdings gibt es auch klare Regeln, wie man Variablen nennen darf und wie nicht, damit Python die Variablen immer eindeutig als solche erkennen kann:

  • Variablennamen dürfen aus Klein- und Großbuchstaben sowie aus Zahlen bestehen. Sie müssen aber immer mit einem Buchstaben beginnen. Beachte aber, dass Groß- und Kleinbuchstaben wirklich unterschieden werden und ein Name nicht mal groß und mal klein geschrieben werden kann. Dann wären es zwei verschiedene Namen.

  • In der Regel werden normale Variablennamen in Python immer mit kleinen Buchstaben geschrieben, Leerzeichen werden meist durch Unterstriche dargestellt. Das ist kein Muss, aber es ist in Python üblich, um Programme auch für andere gut lesbar zu halten.

  • Variablennamen dürfen keine Sonderzeichen, deutschen Umlaute oder Leerzeichen enthalten, sondern wirklich nur internationale Buchstaben und Zahlen – und den Unterstrich _ als Ausnahme.

  • Will man eine Variable mit einem Namen benennen, der aus zwei Wörtern besteht, dann kann man statt des Leerzeichens also den Unterstrich verwenden, das wird snake_case genannt – oder man arbeitet mit Großbuchstaben zur Trennung. Das heißt camelCase (kleiner Anfangsbuchstabe und großer Buchstabe für das nächste Wort) bzw. CapWords – das erste wie zweite Wort beginnt mit einem Großbuchstaben ohne Leerzeichen. In TigerJython wird häufig camelCase für Variablennamen verwendet, wir werden dies auch in einigen Fällen tun und halten uns ansonsten an die Python-Empfehlung snake_case.

Beispiele für Variablennamen:

x

erlaubt

Y

Großbuchstaben sind erlaubt (aber nicht üblich, außer für Konstanten).

hallo

erlaubt

wert3

erlaubt

5fach

verboten (beginnt mit einer Zahl)

länge

verboten (Sonderzeichen ä ist nicht erlaubt)

breite des rechtecks

verboten (Leerzeichen dürfen nicht im Namen vorkommen)

laenge_quadrat

erlaubt und erwünscht (der Unterstrich zur Worttrennung wird für Variablen- und Funktionsnamen in Python empfohlen, sogenannter snake_case)

tasteGedrueckt

erlaubt und in TigerJython öfter verwendet (camelCase)

GrafikObjekt

erlaubt (CapWords wirst du später für sogenannte Klassennamen verwenden)

Nun weißt du, wie man Variablen benennen kann. Jetzt geht es darum, wie man sie verwendet.

Variablen dürfen in Python Zahlen oder Strings enthalten, zum Beispiel:

vorname = "Erwin"

Gib anschließend ein:

print("Hallo "+vorname + "!")

Die Ausgabe ist:

Hallo Erwin!

Oder noch ein anderes Beispiel. Gib nacheinander die folgenden drei Zeilen ein:

wert = 21

doppelter_wert = wert * 2

print("Das Doppelte von",wert,"ist", doppelter_wert)

Nach der letzten Zeile bekommst du die Ausgabe:

Das Doppelte von 21 ist 42

Im ersten Befehl wurde die Zahl 21 in die Variable mit dem Namen wert gelegt. Danach wurde die Variable doppelter_wert mit dem Ausdruck wert * 2 belegt. Dadurch stand die Zahl 42 in der Variablen, denn Python...


Fehr, Hauke
Hauke Fehr programmiert seit 30 Jahren in verschiedenen Sprachen. Mit wachsender Begeisterung entwickelt er mit LiveCode kommerzielle Apps im Auftrag seiner Kunden und als eigene Produkte. Die Anwendungsgebiete reichen vom Sprachenlernen bis zur Auftragsverwaltung für KMUs. Als Linguist und Hochschuldozent hat er ein besonderes Gespür fürs Lernen und Lehren. Seine Programmierkenntnisse und Ideen gibt er gern an Kunden, Kursteilnehmer und natürlich seine Leser weiter.



Ihre Fragen, Wünsche oder Anmerkungen
Vorname*
Nachname*
Ihre E-Mail-Adresse*
Kundennr.
Ihre Nachricht*
Lediglich mit * gekennzeichnete Felder sind Pflichtfelder.
Wenn Sie die im Kontaktformular eingegebenen Daten durch Klick auf den nachfolgenden Button übersenden, erklären Sie sich damit einverstanden, dass wir Ihr Angaben für die Beantwortung Ihrer Anfrage verwenden. Selbstverständlich werden Ihre Daten vertraulich behandelt und nicht an Dritte weitergegeben. Sie können der Verwendung Ihrer Daten jederzeit widersprechen. Das Datenhandling bei Sack Fachmedien erklären wir Ihnen in unserer Datenschutzerklärung.