====== Erste Schritte in Python ====== Für den Einstieg in die Programmierung mit [[schule:Python]] bietet sich die Seite **[[http://cscircles.cemc.uwaterloo.ca/de|Computer Science Circles]]** an.((Die deutsche Version der Seite wird vom Bundeswettbewerb Informatik betreut.)) Sie enthält ein schönes deutsches Tutorial mit interaktiven Übungen zum Erlernen der Programmiersprache. Ein [[http://cscircles.cemc.uwaterloo.ca/cheatsheet-de/|Spickzettel zum Ausdrucken]] hilft bei den Übungen. Die Aufgaben können direkt auf der Seite in einem interaktiven Interpreter erledigt werden. - Registriere dich auf der Webseite mit einem eigenen Konto und notiere die Zugangsdaten. - Füge mich (Benutzername //bakera//) in den Profil-Einstellungen als "guru" hinzu. So bleibe ich über deinen Fortschritt bei den Übungen auf dem Laufenden und kann ggf. frühzeitig weiterhelfen. - Bearbeite die Kapitel und mache die Übungen. - Hausaufgabe: - Drucke den Spickzettel aus, damit du immer eine kleine Hilfe an der Hand hast. - Installiere Python 3 oder bringe die Installationsdatei auf einem USB-Stick mit. ===== Gliederung ===== ==== Sitzung 1 (Grundlagen) ==== ^ Kapitel ^ Inhalt ^ Anmerkungen ^ | 0 | Hallo Welt | Grundsätzliche Nutzung des Online-Python-Interpreters, ''print'' | | 1 | Variablen | | | 1E | Fehler | Syntaxfehler, Logische Fehler, Laufzeitfehler | | | | **Übung:** Beschreibe in eigenen Worten: "Syntaxfehler", "Laufzeitfehler", "logischer Fehler". | | 2 | Funktionen | Argumente/Parameter, Rückgabewert, Beispiele: ''print, min, max'', Verketten von Funktionsaufrufen, z.B. min(max(13, 7), 9) | | 2X | Zusätzliche Übungen (optional) | keine neuen Inhalte, sondern komplexere Übungen | ==== Sitzung 2 (Grundlagen) ==== ^ Kapitel ^ Inhalt ^ Anmerkungen ^ | 3 | Kommentare und Anführungszeichen | Kommentare: #, Anführungszeichen alternativ einfaches oder doppeltes Hochkomma, Maskierung von Anführungszeichen durch \' oder \" | | 4 | Typen | Datentypen ''str, int, float'', ''*''-Operator für Zeichenketten, z.B. "MA" * 2, Typumwandlung mit ''int(..), float(..), str(..)'' | | 5 | Eingabe | ''input'', Rückgabetyp der Input Funktion ist "str" | ==== Sitzung 3 (Kontrollstrukturen) ==== ^ Kapitel ^ Inhalt ^ Anmerkungen ^ | 6 |if | if-Anweisungen, Einrücken von Blöcken, Vergleichsoperatoren ''<, <='', Datentyp bool, Konstanten True und False, Logische Operatoren != und == | | 6D | Design, Debugging und Donuts | Entwurf und Testen von Algorithmen | ==== Sitzung 4 (Kontrollstrukturen) ==== ^ Kapitel ^ Inhalt ^ Anmerkungen ^ | 7A | Zeichenketten bzw. Strings | Länge einer Zeichenkette: ''len(s)'', Zugriff auf einzelne Zeichen über index, z.B.: ''s[0]'', Teilstrings mit ''s[start:ende]'', Zeichenketten verbinden mit + und Vervielfachen mit *, Zeichen <-> Unicode-Position mit ord() und chr() | | 7B | Mathematik | Operatoren **, //, %, Modul math, Funktionen sqrt(), exp(), log(), sin(), cos(), tan(), pi | | 7C | Schleifen | while-Schleifen, for-Schleifen, break, continue (break und continue sollten sehr sparsam eingesetzt werden, da sie den Code meist unübersichtlicher machen.) | ==== Sitzung 5 (Kontrollstrukturen) ==== Achtung! Reihenfolge geändert. ^ Kapitel ^ Inhalt ^ Anmerkungen ^ | 9 | Fälle & Logik | else, elif, and, or, not | | 8 | Remix (optional) | keine neuen Inhalte, sondern Übungen (teilw. schwierig) | ==== Sitzung 6 (Funktionen) ==== ^ Kapitel ^ Inhalt ^ Anmerkungen ^ | 10 | def | Funktionen definieren und aufrufen, Rückgabewerte, mehrere Parameter | | 11A | Kleinbuchstaben | Übung zum Umwandeln von Zeichenketten mit selbst definierten Funktionen | | 11B | Geltungsbereich von Variablen | In einer Funktion darf man nie lesend oder schreibend auf eine Variable außerhalb der Funktion zugreifen. Dafür werden Parameter und Rückgabewerte genutzt. globale / lokale Variablen | ==== Sitzung 7 (Listen) ==== ^ Kapitel ^ Inhalt ^ Anmerkungen ^ | 13 | Listen (Arrays) | Erzeugung von Listen durch [element1, ..., elementn], Zugriff auf Elemente über deren Index, z.B. liste[0], len(liste), Verketten und Vervielfachen von Listen durch + bzw. *, Negative Indizes für Zugriff vom Ende der Liste aus, max(liste) und sum(liste), for element in liste: ... | | 14 | Methoden | Achtung: Die Übung "Exact Postage" geht von einer Postleitzahl mit genau 6 Stellen aus (bis auf Leerzeichen), Listenmethoden wie z.B. index(x), count(x), append(x), insert(i, x), extend(liste), remove(x), pop(x), pop(), reverse(), sort(), x in liste zum Überprüfen, ob Element in Liste vorhanden ist, "Slices" mit [start:ende:step] analog zu Zeichenketten |