Einfach Python: gleich richtig programmieren lernen
Gespeichert in:
1. Verfasser: | |
---|---|
Format: | Buch |
Sprache: | German |
Veröffentlicht: |
Heidelberg
dpunkt.verlag
2022
|
Ausgabe: | 1. Auflage |
Schlagworte: | |
Online-Zugang: | Inhaltstext Inhaltsverzeichnis |
Beschreibung: | xx, 331 Seiten Illustrationen 24 cm x 16.5 cm |
ISBN: | 9783864908750 |
Internformat
MARC
LEADER | 00000nam a2200000 c 4500 | ||
---|---|---|---|
001 | BV047556188 | ||
003 | DE-604 | ||
005 | 20221019 | ||
007 | t | ||
008 | 211022s2022 gw a||| |||| 00||| ger d | ||
015 | |a 21,N32 |2 dnb | ||
016 | 7 | |a 1238379508 |2 DE-101 | |
020 | |a 9783864908750 |c pbk.: EUR 22.90 (DE) |9 978-3-86490-875-0 | ||
024 | 3 | |a 9783864908750 | |
035 | |a (OCoLC)1277295719 | ||
035 | |a (DE-599)DNB1238379508 | ||
040 | |a DE-604 |b ger |e rda | ||
041 | 0 | |a ger | |
044 | |a gw |c XA-DE-BW | ||
049 | |a DE-860 |a DE-706 |a DE-1050 |a DE-739 |a DE-1051 |a DE-1043 |a DE-B768 |a DE-859 |a DE-703 |a DE-19 |a DE-1102 |a DE-634 |a DE-11 |a DE-898 | ||
082 | 0 | |a 005.133 |2 23/ger | |
084 | |a ST 250 |0 (DE-625)143626: |2 rvk | ||
084 | |8 1\p |a 004 |2 23sdnb | ||
100 | 1 | |a Inden, Michael |d 1971- |e Verfasser |0 (DE-588)143426753 |4 aut | |
245 | 1 | 0 | |a Einfach Python |b gleich richtig programmieren lernen |c Michael Inden |
250 | |a 1. Auflage | ||
264 | 1 | |a Heidelberg |b dpunkt.verlag |c 2022 | |
300 | |a xx, 331 Seiten |b Illustrationen |c 24 cm x 16.5 cm | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
650 | 0 | 7 | |a Python |g Programmiersprache |0 (DE-588)4434275-5 |2 gnd |9 rswk-swf |
653 | |a Pytest | ||
653 | |a Python 3 | ||
655 | 7 | |0 (DE-588)4123623-3 |a Lehrbuch |2 gnd-content | |
689 | 0 | 0 | |a Python |g Programmiersprache |0 (DE-588)4434275-5 |D s |
689 | 0 | |5 DE-604 | |
710 | 2 | |a Dpunkt.Verlag (Heidelberg) |0 (DE-588)6085529-0 |4 pbl | |
776 | 0 | 8 | |i Erscheint auch als |n Online-Ausgabe, PDF |z 978-3-96910-646-4 |w (DE-604)BV047622463 |
776 | 0 | 8 | |i Erscheint auch als |n Online-Ausgabe, EPUB |z 978-3-96910-647-1 |
776 | 0 | 8 | |i Erscheint auch als |n Online-Ausgabe, MOBI |z 978-3-96910-648-8 |
856 | 4 | 2 | |m X:MVB |q text/html |u http://deposit.dnb.de/cgi-bin/dokserv?id=385294f6216c4a7080a4b569c8dfd1fd&prov=M&dok_var=1&dok_ext=htm |3 Inhaltstext |
856 | 4 | 2 | |m Digitalisierung UB Passau - ADAM Catalogue Enrichment |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=032931737&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
999 | |a oai:aleph.bib-bvb.de:BVB01-032931737 | ||
883 | 1 | |8 1\p |a vlb |d 20210806 |q DE-101 |u https://d-nb.info/provenance/plan#vlb |
Datensatz im Suchindex
_version_ | 1804182880034750464 |
---|---|
adam_text | vii Inhaltsverzeichnis Vorwort f ¥Z XV Einstieg 1 Einführung...................................................................................... 3 1.1 Python im Überblick........................................................................ 3 1.2 Los geht’s - Installation........................................................................... 1.2.1 Python-Download......................................................................... 1.2.2 Installation von Python................................................................. 1.2.3 Nacharbeiten nach der Python-Installation .............................. 1.2.4 Python-Installation prüfen........................................................... 1.2.5 Python-Programm als Skript ausführen.................................... Entwicklungsumgebungen....................................................................... 1.3.1 Installation von PyCharm ........................................................... 1.3.2 PyCharm starten........................................................................... 1.3.3 Erstes Projekt in PyCharm......................................................... 1.3.4 Erstes Modul in PyCharm........................................................... 6 6 7 8 9 9 10 11 13 14 15 Schnelleinstieg ................................................................................ 19 1.3 2 2.1 2.2 Hallo Welt (Hello World)............................................................................ Variablen und Datentypen....................................................................... 2.2.1
Definition von Variablen............................................................... 2.2.2 Variablen und Typen..................................................................... 2.2.3 Bezeichner (Variablennamen) .................................................... Operatoren im Überblick ......................................................................... 19 20 20 22 23 24 2.3.1 Arithmetische Operatoren........................................................... 2.3.2 Zuweisungsoperatoren ............................................................... 2.3.3 Vergleichsoperatoren................................................................... 2.3.4 Logische Operatoren................................................................... 2.4 Fallunterscheidungen............................................................................... 24 26 28 29 30 2.3
viii 2.5 2.6 2.7 2.8 2.9 2.10 2.11 3 3.1 Inhaltsverzeichnis Funktionen............................................................................................. 2.5.1 Eigene Funktionen definieren.................................................. 2.5.2 Nützliche Beispiele aus Python .............................................. 2.5.3 Fehlerbehandlung und Exceptions.......................................... Kommentare............................................................................................ Module ................................................................................................... Built-in-Datentypen................................................................................ 2.8.1 List.............................................................................................. 2.8.2 Tupel.......................................................................................... 2.8.3 Set............................................................................................. 2.8.4 Diet ............................................................................................ Schleifen................................................................................................. 2.9.1 Besonderheit: Ranges............................................................. 2.9.2 Indexbasierte for-in-Schleife................................................ 2.9.3 Wertebasierte for-in-Schleife .............................................. 2.9.4 Index- und wertebasiertefor-in-enumerate-Schleife .... 2.9.5 Die while-
Schleife................................................................... Weiterführende Informationen............................................................... Aufgaben und Lösungen....................................................................... 2.11.1 Aufgabe 1 : Mathematische Berechnungen............................ 2.11.2 Aufgabe 2: Bedingung vereinfachen .................................. 2.11.3 Aufgabe 3: Funktion und if.................................................... 2.11.4 Aufgabe 4: Selbstabholerrabatt .............................................. 2.11.5 Aufgabe 5: Schleifen mit Berechnungen................................ 2.11.6 Aufgabe 6: Schleifen und fixe Schrittweite.......................... 2.11.7 Aufgabe 7: Schleifen mit variabler Schrittweite..................... 2.11.8 Aufgabe 8: Verschachtelte Schleifen- Variante 1.................. 2.11.9 Aufgabe 9: Verschachtelte Schleifen- Variante 2.................. 2.11.10 Aufgabe 10: Verschachtelte Schleifen - Variante 3............... 32 33 35 36 36 37 39 39 39 40 41 42 42 42 43 44 45 46 47 47 47 48 48 49 50 50 51 52 53 Strings............................................................................. 55 Schnelleinstieg........................................................................................ 3.1.1 Gebräuchliche Stringaktionen.................................................. 3.1.2 Suchen und Ersetzen............................................................... 3.1.3 Informationen extrahieren und formatieren............................ 3.1.4 Praxisrelevante Funktionen im
Kurzüberblick......................... 3.2 Nächste Schritte.................................................................................... 3.2.1 Zeichenverarbeitung................................................................. 3.2.2 Strings und Listen..................................................................... 3.2.3 Mehrzeilige Strings................................................................... 55 55 60 61 63 64 64 64 66
Inhaltsverzeichnis ix 3.3 Aufgaben und Lösungen........................................................................ 3.3.1 Aufgabe 1 : Länge, Zeichen und Enthaltensein........................ 3.3.2 Aufgabe 2: Zeichen wiederholen................................................ 3.3.3 Aufgabe 3: Vokale raten ............................................................. 3.3.4 Aufgabe 4: String Merge............................................................. 68 68 68 69 71 4 Klassen und Objektorientierung....................................................... 73 Schnelleinstieg........................................................................................... 4.1.1 Grundlagen zu Klassen und Objekten ...................................... 4.1.2 Eigenschaften (Attribute).............................................................. 4.1.3 Verhalten (Methoden)................................................................... 4.1.4 Objekte vergleichen - die Rolle von__ eq__ () ....................... 4.2 Nächste Schritte ....................................................................................... 4.2.1 Klassen ausführbar machen....................................................... 4.2.2 Imports und Packages................................................................. 4.2.3 Übergang zum Einsatz einer IDE................................................ 73 74 77 79 81 84 84 86 87 4.2.4 Verstecken von Informationen .................................................... 4.2.5 Packages: Auswirkungen auf unsere Applikation.................... 4.3
Vererbung................................................................................................... 4.3.1 Basisklassen................................................................................. 4.3.2 Typprüfung mit isinstance ( )................................................. 4.3.3 Generalisierung und Spezialisierung.......................................... 4.3.4 Polymorphie................................................................................... 4.4 Aufgaben und Lösungen......................................................................... 4.4.1 Aufgabe 1 : Superheld ................................................................. 4.4.2 Aufgabe 2: Zähler......................................................................... 4.4.3 Aufgabe 3: Zähler mit Überlauf .................................................. 90 94 97 98 99 100 101 104 104 105 107 4.1 5 5.1 Collections............................................................................................ 111 Schnelleinstieg........................................................................................... 5.1.1 Die Klasse list........................................................................... 5.1.2 Die Klasse set.............................. 5.1.3 Die Klasse diet........................................................................... 5.2 Nächste Schritte....................................................................................... 5.2.1 Comprehensions........................................................................... 5.2.2 Slicing - Zugriff auf
Teilbereiche ................................................ 5.2.3 Sortierung-sort () / sorted().............................................. 5.2.4 Tauschen von Elementen - swap ( ) .......................................... 5.2.5 Reihenfolge umkehren - reverse () und reversed () .... 5.2.6 Mehrdimensionale Listen ............................................................ 111 111 117 120 124 124 125 126 128 131 132
x Inhaltsverzeichnis 5.3 Praxisbeispiel: Einen Stack selbst realisieren ...................................... 5.3.1 Implementierung............................................................................ 5.3.2 Stack im Einsatz............................................................................ 5.4 Praxisbeispiel: Flächen füllen.................................................................. 5.5 Aufgaben und Lösungen .......................................................................... 5.5.1 Aufgabe 1 : Tennisverein-Mitgliederliste .................................... 5.5.2 Aufgabe 2: Liste mit Farbnamen füllen und filtern.................... 5.5.3 Aufgabe 3: Duplikate entfernen - Variante 1............................ 5.5.4 Aufgabe 4: Duplikate entfernen - Variante 2............................ 5.5.5 Aufgabe 5: Hauptstädte................................................................ 5.5.6 Aufgabe 6: Häufigkeiten von Namen.......................................... 5.5.7 Aufgabe 7: Objekte mit Dictionary selbst gebaut .................... 5.5.8 Aufgabe 8: Rotation um eine oder mehrere Positionen.......... 5.5.9 Aufgabe 9: Dreieckige Liste: Upside Down .............................. 134 134 136 137 139 139 140 140 141 142 143 144 145 147 6 Ergänzendes Wissen.......................................................................... 149 6.1 6.2 6.3 Benutzereingaben input ( ) .................................................................... Zufallswerte und das Modul random...................................................... Besonderheiten von
Parametern ............................................................ 6.3.1 Normale Parameter mit Position bzw. Name............................ 6.3.2 Parameter mit Defaultwert............................................................ 6.3.3 Var Args - variable Anzahl an Argumenten.............................. Ternary-Operator........................................................................................ Aufzählungen mit Enum............................................................................ break, continue und eise ІП Schleifen............................................ 6.6.1 Funktionsweise von break und continue.............................. 6.6.2 Wie macht man es besser? ........................................................ 6.6.3 Besonderheit: eise in Schleifen................................................ Ausdrücke mit eval () auswerten.......................................................... Rekursion................................................................................................... Aufgaben und Lösungen.......................................................................... 6.9.1 Aufgabe 1 : Würfelspiel.................................................................. 6.9.2 Aufgabe 2: Temperaturumrechnung .......................................... 6.9.3 Aufgabe 3: Palindrom-Prüfung mit Rekursion.......................... 6.9.4 Aufgabe 4: Einarmiger Bandit...................................................... 6.4 6.5 6.6 6.7 6.8 6.9 149 150 152 152 153 154 156 157 160 160 162 164 165 166 169 169 170 171 172
Inhaltsverzeichnis II 7 Aufstieg Collections Advanced................................ 7.1 7.2 7.3 7.4 7.5 Sequenzielle Datentypen......................................................................... Iteratoren ................................................................................................... Generatoren............................................................................................... Datencontainer mit namedtuple........................................................... Einstieg in Lambdas................................................................................. 7.5.1 Syntax von Lambdas................................................................... 7.5.2 Lambdas im Einsatz mit filter (), map () und reduce () . 7.5.3 Lambdas im Einsatz mit sort ()................................................ 7.5.4 Lambdas im Einsatz mit groupby ( ) ........................................ 7.6 Aufgaben und Lösungen ......................................................................... 7.6.1 Aufgabe 1 : Obstkorb ................................................................... 7.6.2 Aufgabe 2: Erwachsene aus Personenliste extrahieren.......... 7.6.3 Aufgabe 3: Eigene Implementierung von rindex () .............. 7.6.4 Aufgabe 4: Elemente eines Dictionaries allgemeingültig filtern 7.6.5 Aufgabe 5: Every-N-th-lterator................................................... 7.6.6 Aufgabe 6: Greeting-Generator................................................. 7.6.7 Aufgabe 7: Fibonacci-Generator ............................................... 7.6.8
Aufgabe 8: Sortieren und Gruppieren........................................ 8 8.1 xi 173 175 175 176 179 182 184 184 185 188 189 192 192 192 193 194 196 198 199 200 Verarbeitung von Dateien................................................................... 203 Schnelleinstieg........................................................................................... 8.1.1 Anlegen von Dateien und Verzeichnissen ................................ 8.1.2 Aktuelles Verzeichnis wechseln.................................................. 8.1.3 Aktuelles Verzeichnis und absoluten Pfad ermitteln................ 8.1.4 Inhalt eines Verzeichnisses auflisten.......................................... 8.1.5 Pfad ist Datei oder Verzeichnis? ................................................ 8.1.6 Auf Existenz prüfen ..................................................................... 8.1.7 Informationen in Dateien schreiben und daraus lesen............ 8.1.8 Einfluss der Verarbeitungsmodi.................................................. 8.1.9 Diverse Informationen ermitteln.................................................. 8.1.10 Kopieren......................................................................................... 8.1.11 Umbenennen................................................................................. 8.1.12 Löschen......................................................................................... 8.2 Praxisbeispiel·. Directory-Baum darstellen ............................................ 8.2.1
Basisvariante.......................................................................... 8.2.2 Variante mit schönerer Darstellung............................................ 8.2.3 Finale Variante mit ausgeklügelter Darstellung........................ 203 204 204 205 205 205 206 206 210 211 212 213 214 215 215 216 217
xii Inhaltsverzeichnis 8.3 JSON-Verarbeitung................................................................................... 8.3.1 JSON in eine Datei schreiben.................................................... 8.3.2 Lesen von JSON aus einer Datei.............................................. 8.3.3 Pretty Printing .............................................................................. 8.4 Aufgaben und Lösungen.......................................................................... 8.4.1 Aufgabe 1 : Texte in Datei schreiben und wieder lesen.......... 8.4.2 Aufgabe 2: Dateigrößen.............................................................. 8.4.3 Aufgabe 3: Existenzprüfung ...................................................... 8.4.4 Aufgabe 4: Rechteprüfung.......................................................... 8.4.5 Aufgabe 5: Verzeichnisinhalt auflisten...................................... 9 218 218 219 220 221 221 221 222 223 223 Fehlerbehandlung mit Exceptions.................................................... 225 9.1 Schnelleinstieg............................................................................................ 225 9.1.1 Fehlerbehandlung........................................................................ 226 9.1.2 Exceptions selbst auslösen - raise....................................... 232 9.1.3 Eigene Exception-Typen definieren.......................................... 233 9.1.4 Propagation von Exceptions...................................................... 234 9.2 Fehlerbehandlung in der
Praxis.............................................................. 236 9.2.1 Elegante Prüfungen mit assert .............................................. 237 9.3 Automatic Resource Management(with)............................................. 239 9.4 Aufgaben und Lösungen .......................................................................... 240 9.4.1 Aufgabe 1 : Abgesicherter Indexzugriff ֊ Kür mit Fallback-Wert240 9.4.2 Aufgabe 2: Einfacher Taschenrechner...................................... 241 9.4.3 Aufgabe 3: Resource Handling.................................................. 242 10 Datumsverarbeitung............................................................................. 245 10.1 Schnelleinstieg........................................................................................... 10.1.1 Zeitpunkte und die Klasse datetime..................................... 10.1.2 Datumswerte und die Klasse date.......................................... 10.1.3 Zeit und die Klasse time .......................................................... 10.1.4 Zeitdifferenzen und die Klasse timedelta............................ 10.1.5 Berechnungen.............................................................................. 10.1.6 Formatierung und Parsing.......................................................... 10.2 Praxisbeispiel: Kalenderausgabe............................................................ 10.3 Aufgaben und Lösungen .......................................................................... 10.3.1 Aufgabe 1 :
Wochentage.............................................................. 10.3.2 Aufgabe 2: Freitag, der 13........................................................... 10.3.3 Aufgabe 3: Mehrmals Freitag, der 13........................................ 10.3.4 Aufgabe 4: Schaltjahre................................................................ 245 245 247 250 251 252 253 255 258 258 259 260 261
Inhaltsverzeichnis III Praxisbeispiele xiii 263! 11 11.1 11.2 11.3 11.4 Praxisbeispiel : Tic Tac Toe................................................................. Spielfeld initialisieren und darstellen................................................... Setzen der Steine.................................................................................. Prüfen auf Sieg ...................................................................................... Bausteine im Einsatz ............................................................................ 265 265 266 267 268 12 12.1 12.2 12.3 Praxisbeispiel: CSV-Highscore-Listeeiniesen................................ Verarbeitung von Spielständen (Highscores)...................................... Extraktion der Daten.............................................................................. Besonderheiten der Implementierung.................................................. 271 271 272 273 13 13.1 13.2 13.3 13.4 Praxisbeispiel: Worträtsel ................................................................. Applikationsdesign ֊ Vorüberlegungenzur Strukturierung................. Einlesen der verfügbaren Wörter......................................................... Hilfsdatenstrukturen.............................................................................. Datenmodell............................................................................................ 13.4.1 Datenspeicherung und Initialisierung ...................................... 13.4.2 Zufällige Wahl von Richtung, Position, Wort und Buchstabe.. 13.4.3
Algorithmus zum Verstecken von Wörtern.............................. 13.4.4 Wort prüfen und platzieren....................................................... HTML-Erzeugung.................................................................................. Ausgabe als HTML und Darstellung imBrowser.................................. Hauptapplikation.................................................................................... Fazit......................................................................................................... 275 276 276 278 279 279 280 280 281 282 284 284 286 13.5 13.6 13.7 13.8 IV Schlussgedanken 14 Gute Angewohnheiten......................................................................... 14.1 Grundregeln eines guten Programmierstils ........................................ 14.1.1 Keep It Human-Readable......................................................... 14.1.2 Keep it Understandable............................................................. 14.2 Coding Conventions.............................................................................. 14.2.1 PEP 8 - Coding Standard......................................................... 14.2.2 Zen of Python ............................................................................ 14.2.3 Namensgebung.......................................................................... 14.2.4 Dokumentation .......................................................................... 14.2.5 Programmdesign........................................................................ 14.2.6
Parameterlisten.......................................................................... 14.2.7 Logik und Kontrollfluss............................................................... 287 289 289 289 289 292 292 294 294 297 297 298 298
xiv Inhaltsverzeichnis 14.3 Auch ans Testen denken..................................................................... 299 14.3.1 Das Pytest-Framework............................................................... 299 14.3.2 Schreiben und Ausführen von Tests........................................ 300 15 Schlusswort......................................................................................... 303 V Anhang 305 A Schlüsselwörter im Überblick.......................................................... 307 A. 1 Schlüsselwörter im Überblick.............................................................. 307 В Schnelleinstieg Python-REPL.......................................................... 311 B. 1 Python-REPL......................................................................................... 311 C Wesentliche Neuerungen aus Python 3.10 im Kurzüberblick.... C. 1 Fehlermeldungen ................................................................................. C.1.1 Fehlermeldungen bei Zuweisungen ........................................ C.1.2 Fehlermeldungen bei unvollständigen Strings......................... C.2 Fallunterscheidungen mit match........................................................ C.3 Verschiedenes....................................................................................... C.3.1 Verbesserungen bei Kontextmanagern.................................... C.3.2 Verbesserungen der Performance............................................ C.3.3 Erweiterung bei zip () ............................................................. C.3.4
Verbesserungen bei Typprüfungen .......................................... 315 315 315 316 317 319 319 319 320 321 Literaturverzeichnis .................................................................................... 323 Index............................................................................................................... 325
|
adam_txt |
vii Inhaltsverzeichnis Vorwort f ¥Z XV Einstieg 1 Einführung. 3 1.1 Python im Überblick. 3 1.2 Los geht’s - Installation. 1.2.1 Python-Download. 1.2.2 Installation von Python. 1.2.3 Nacharbeiten nach der Python-Installation . 1.2.4 Python-Installation prüfen. 1.2.5 Python-Programm als Skript ausführen. Entwicklungsumgebungen. 1.3.1 Installation von PyCharm . 1.3.2 PyCharm starten. 1.3.3 Erstes Projekt in PyCharm. 1.3.4 Erstes Modul in PyCharm. 6 6 7 8 9 9 10 11 13 14 15 Schnelleinstieg . 19 1.3 2 2.1 2.2 Hallo Welt (Hello World). Variablen und Datentypen. 2.2.1
Definition von Variablen. 2.2.2 Variablen und Typen. 2.2.3 Bezeichner (Variablennamen) . Operatoren im Überblick . 19 20 20 22 23 24 2.3.1 Arithmetische Operatoren. 2.3.2 Zuweisungsoperatoren . 2.3.3 Vergleichsoperatoren. 2.3.4 Logische Operatoren. 2.4 Fallunterscheidungen. 24 26 28 29 30 2.3
viii 2.5 2.6 2.7 2.8 2.9 2.10 2.11 3 3.1 Inhaltsverzeichnis Funktionen. 2.5.1 Eigene Funktionen definieren. 2.5.2 Nützliche Beispiele aus Python . 2.5.3 Fehlerbehandlung und Exceptions. Kommentare. Module . Built-in-Datentypen. 2.8.1 List. 2.8.2 Tupel. 2.8.3 Set. 2.8.4 Diet . Schleifen. 2.9.1 Besonderheit: Ranges. 2.9.2 Indexbasierte for-in-Schleife. 2.9.3 Wertebasierte for-in-Schleife . 2.9.4 Index- und wertebasiertefor-in-enumerate-Schleife . 2.9.5 Die while-
Schleife. Weiterführende Informationen. Aufgaben und Lösungen. 2.11.1 Aufgabe 1 : Mathematische Berechnungen. 2.11.2 Aufgabe 2: Bedingung vereinfachen . 2.11.3 Aufgabe 3: Funktion und if. 2.11.4 Aufgabe 4: Selbstabholerrabatt . 2.11.5 Aufgabe 5: Schleifen mit Berechnungen. 2.11.6 Aufgabe 6: Schleifen und fixe Schrittweite. 2.11.7 Aufgabe 7: Schleifen mit variabler Schrittweite. 2.11.8 Aufgabe 8: Verschachtelte Schleifen- Variante 1. 2.11.9 Aufgabe 9: Verschachtelte Schleifen- Variante 2. 2.11.10 Aufgabe 10: Verschachtelte Schleifen - Variante 3. 32 33 35 36 36 37 39 39 39 40 41 42 42 42 43 44 45 46 47 47 47 48 48 49 50 50 51 52 53 Strings. 55 Schnelleinstieg. 3.1.1 Gebräuchliche Stringaktionen. 3.1.2 Suchen und Ersetzen. 3.1.3 Informationen extrahieren und formatieren. 3.1.4 Praxisrelevante Funktionen im
Kurzüberblick. 3.2 Nächste Schritte. 3.2.1 Zeichenverarbeitung. 3.2.2 Strings und Listen. 3.2.3 Mehrzeilige Strings. 55 55 60 61 63 64 64 64 66
Inhaltsverzeichnis ix 3.3 Aufgaben und Lösungen. 3.3.1 Aufgabe 1 : Länge, Zeichen und Enthaltensein. 3.3.2 Aufgabe 2: Zeichen wiederholen. 3.3.3 Aufgabe 3: Vokale raten . 3.3.4 Aufgabe 4: String Merge. 68 68 68 69 71 4 Klassen und Objektorientierung. 73 Schnelleinstieg. 4.1.1 Grundlagen zu Klassen und Objekten . 4.1.2 Eigenschaften (Attribute). 4.1.3 Verhalten (Methoden). 4.1.4 Objekte vergleichen - die Rolle von_ eq_ () . 4.2 Nächste Schritte . 4.2.1 Klassen ausführbar machen. 4.2.2 Imports und Packages. 4.2.3 Übergang zum Einsatz einer IDE. 73 74 77 79 81 84 84 86 87 4.2.4 Verstecken von Informationen . 4.2.5 Packages: Auswirkungen auf unsere Applikation. 4.3
Vererbung. 4.3.1 Basisklassen. 4.3.2 Typprüfung mit isinstance ( ). 4.3.3 Generalisierung und Spezialisierung. 4.3.4 Polymorphie. 4.4 Aufgaben und Lösungen. 4.4.1 Aufgabe 1 : Superheld . 4.4.2 Aufgabe 2: Zähler. 4.4.3 Aufgabe 3: Zähler mit Überlauf . 90 94 97 98 99 100 101 104 104 105 107 4.1 5 5.1 Collections. 111 Schnelleinstieg. 5.1.1 Die Klasse list. 5.1.2 Die Klasse set. 5.1.3 Die Klasse diet. 5.2 Nächste Schritte. 5.2.1 Comprehensions. 5.2.2 Slicing - Zugriff auf
Teilbereiche . 5.2.3 Sortierung-sort () / sorted(). 5.2.4 Tauschen von Elementen - swap ( ) . 5.2.5 Reihenfolge umkehren - reverse () und reversed () . 5.2.6 Mehrdimensionale Listen . 111 111 117 120 124 124 125 126 128 131 132
x Inhaltsverzeichnis 5.3 Praxisbeispiel: Einen Stack selbst realisieren . 5.3.1 Implementierung. 5.3.2 Stack im Einsatz. 5.4 Praxisbeispiel: Flächen füllen. 5.5 Aufgaben und Lösungen . 5.5.1 Aufgabe 1 : Tennisverein-Mitgliederliste . 5.5.2 Aufgabe 2: Liste mit Farbnamen füllen und filtern. 5.5.3 Aufgabe 3: Duplikate entfernen - Variante 1. 5.5.4 Aufgabe 4: Duplikate entfernen - Variante 2. 5.5.5 Aufgabe 5: Hauptstädte. 5.5.6 Aufgabe 6: Häufigkeiten von Namen. 5.5.7 Aufgabe 7: Objekte mit Dictionary selbst gebaut . 5.5.8 Aufgabe 8: Rotation um eine oder mehrere Positionen. 5.5.9 Aufgabe 9: Dreieckige Liste: Upside Down . 134 134 136 137 139 139 140 140 141 142 143 144 145 147 6 Ergänzendes Wissen. 149 6.1 6.2 6.3 Benutzereingaben input ( ) . Zufallswerte und das Modul random. Besonderheiten von
Parametern . 6.3.1 Normale Parameter mit Position bzw. Name. 6.3.2 Parameter mit Defaultwert. 6.3.3 Var Args - variable Anzahl an Argumenten. Ternary-Operator. Aufzählungen mit Enum. break, continue und eise ІП Schleifen. 6.6.1 Funktionsweise von break und continue. 6.6.2 Wie macht man es besser? . 6.6.3 Besonderheit: eise in Schleifen. Ausdrücke mit eval () auswerten. Rekursion. Aufgaben und Lösungen. 6.9.1 Aufgabe 1 : Würfelspiel. 6.9.2 Aufgabe 2: Temperaturumrechnung . 6.9.3 Aufgabe 3: Palindrom-Prüfung mit Rekursion. 6.9.4 Aufgabe 4: Einarmiger Bandit. 6.4 6.5 6.6 6.7 6.8 6.9 149 150 152 152 153 154 156 157 160 160 162 164 165 166 169 169 170 171 172
Inhaltsverzeichnis II 7 Aufstieg Collections Advanced. 7.1 7.2 7.3 7.4 7.5 Sequenzielle Datentypen. Iteratoren . Generatoren. Datencontainer mit namedtuple. Einstieg in Lambdas. 7.5.1 Syntax von Lambdas. 7.5.2 Lambdas im Einsatz mit filter (), map () und reduce () . 7.5.3 Lambdas im Einsatz mit sort (). 7.5.4 Lambdas im Einsatz mit groupby ( ) . 7.6 Aufgaben und Lösungen . 7.6.1 Aufgabe 1 : Obstkorb . 7.6.2 Aufgabe 2: Erwachsene aus Personenliste extrahieren. 7.6.3 Aufgabe 3: Eigene Implementierung von rindex () . 7.6.4 Aufgabe 4: Elemente eines Dictionaries allgemeingültig filtern 7.6.5 Aufgabe 5: Every-N-th-lterator. 7.6.6 Aufgabe 6: Greeting-Generator. 7.6.7 Aufgabe 7: Fibonacci-Generator . 7.6.8
Aufgabe 8: Sortieren und Gruppieren. 8 8.1 xi 173 175 175 176 179 182 184 184 185 188 189 192 192 192 193 194 196 198 199 200 Verarbeitung von Dateien. 203 Schnelleinstieg. 8.1.1 Anlegen von Dateien und Verzeichnissen . 8.1.2 Aktuelles Verzeichnis wechseln. 8.1.3 Aktuelles Verzeichnis und absoluten Pfad ermitteln. 8.1.4 Inhalt eines Verzeichnisses auflisten. 8.1.5 Pfad ist Datei oder Verzeichnis? . 8.1.6 Auf Existenz prüfen . 8.1.7 Informationen in Dateien schreiben und daraus lesen. 8.1.8 Einfluss der Verarbeitungsmodi. 8.1.9 Diverse Informationen ermitteln. 8.1.10 Kopieren. 8.1.11 Umbenennen. 8.1.12 Löschen. 8.2 Praxisbeispiel·. Directory-Baum darstellen . 8.2.1
Basisvariante. 8.2.2 Variante mit schönerer Darstellung. 8.2.3 Finale Variante mit ausgeklügelter Darstellung. 203 204 204 205 205 205 206 206 210 211 212 213 214 215 215 216 217
xii Inhaltsverzeichnis 8.3 JSON-Verarbeitung. 8.3.1 JSON in eine Datei schreiben. 8.3.2 Lesen von JSON aus einer Datei. 8.3.3 Pretty Printing . 8.4 Aufgaben und Lösungen. 8.4.1 Aufgabe 1 : Texte in Datei schreiben und wieder lesen. 8.4.2 Aufgabe 2: Dateigrößen. 8.4.3 Aufgabe 3: Existenzprüfung . 8.4.4 Aufgabe 4: Rechteprüfung. 8.4.5 Aufgabe 5: Verzeichnisinhalt auflisten. 9 218 218 219 220 221 221 221 222 223 223 Fehlerbehandlung mit Exceptions. 225 9.1 Schnelleinstieg. 225 9.1.1 Fehlerbehandlung. 226 9.1.2 Exceptions selbst auslösen - raise. 232 9.1.3 Eigene Exception-Typen definieren. 233 9.1.4 Propagation von Exceptions. 234 9.2 Fehlerbehandlung in der
Praxis. 236 9.2.1 Elegante Prüfungen mit assert . 237 9.3 Automatic Resource Management(with). 239 9.4 Aufgaben und Lösungen . 240 9.4.1 Aufgabe 1 : Abgesicherter Indexzugriff ֊ Kür mit Fallback-Wert240 9.4.2 Aufgabe 2: Einfacher Taschenrechner. 241 9.4.3 Aufgabe 3: Resource Handling. 242 10 Datumsverarbeitung. 245 10.1 Schnelleinstieg. 10.1.1 Zeitpunkte und die Klasse datetime. 10.1.2 Datumswerte und die Klasse date. 10.1.3 Zeit und die Klasse time . 10.1.4 Zeitdifferenzen und die Klasse timedelta. 10.1.5 Berechnungen. 10.1.6 Formatierung und Parsing. 10.2 Praxisbeispiel: Kalenderausgabe. 10.3 Aufgaben und Lösungen . 10.3.1 Aufgabe 1 :
Wochentage. 10.3.2 Aufgabe 2: Freitag, der 13. 10.3.3 Aufgabe 3: Mehrmals Freitag, der 13. 10.3.4 Aufgabe 4: Schaltjahre. 245 245 247 250 251 252 253 255 258 258 259 260 261
Inhaltsverzeichnis III Praxisbeispiele xiii 263! 11 11.1 11.2 11.3 11.4 Praxisbeispiel : Tic Tac Toe. Spielfeld initialisieren und darstellen. Setzen der Steine. Prüfen auf Sieg . Bausteine im Einsatz . 265 265 266 267 268 12 12.1 12.2 12.3 Praxisbeispiel: CSV-Highscore-Listeeiniesen. Verarbeitung von Spielständen (Highscores). Extraktion der Daten. Besonderheiten der Implementierung. 271 271 272 273 13 13.1 13.2 13.3 13.4 Praxisbeispiel: Worträtsel . Applikationsdesign ֊ Vorüberlegungenzur Strukturierung. Einlesen der verfügbaren Wörter. Hilfsdatenstrukturen. Datenmodell. 13.4.1 Datenspeicherung und Initialisierung . 13.4.2 Zufällige Wahl von Richtung, Position, Wort und Buchstabe. 13.4.3
Algorithmus zum Verstecken von Wörtern. 13.4.4 Wort prüfen und platzieren. HTML-Erzeugung. Ausgabe als HTML und Darstellung imBrowser. Hauptapplikation. Fazit. 275 276 276 278 279 279 280 280 281 282 284 284 286 13.5 13.6 13.7 13.8 IV Schlussgedanken 14 Gute Angewohnheiten. 14.1 Grundregeln eines guten Programmierstils . 14.1.1 Keep It Human-Readable. 14.1.2 Keep it Understandable. 14.2 Coding Conventions. 14.2.1 PEP 8 - Coding Standard. 14.2.2 Zen of Python . 14.2.3 Namensgebung. 14.2.4 Dokumentation . 14.2.5 Programmdesign. 14.2.6
Parameterlisten. 14.2.7 Logik und Kontrollfluss. 287 289 289 289 289 292 292 294 294 297 297 298 298
xiv Inhaltsverzeichnis 14.3 Auch ans Testen denken. 299 14.3.1 Das Pytest-Framework. 299 14.3.2 Schreiben und Ausführen von Tests. 300 15 Schlusswort. 303 V Anhang 305 A Schlüsselwörter im Überblick. 307 A. 1 Schlüsselwörter im Überblick. 307 В Schnelleinstieg Python-REPL. 311 B. 1 Python-REPL. 311 C Wesentliche Neuerungen aus Python 3.10 im Kurzüberblick. C. 1 Fehlermeldungen . C.1.1 Fehlermeldungen bei Zuweisungen . C.1.2 Fehlermeldungen bei unvollständigen Strings. C.2 Fallunterscheidungen mit match. C.3 Verschiedenes. C.3.1 Verbesserungen bei Kontextmanagern. C.3.2 Verbesserungen der Performance. C.3.3 Erweiterung bei zip () . C.3.4
Verbesserungen bei Typprüfungen . 315 315 315 316 317 319 319 319 320 321 Literaturverzeichnis . 323 Index. 325 |
any_adam_object | 1 |
any_adam_object_boolean | 1 |
author | Inden, Michael 1971- |
author_GND | (DE-588)143426753 |
author_facet | Inden, Michael 1971- |
author_role | aut |
author_sort | Inden, Michael 1971- |
author_variant | m i mi |
building | Verbundindex |
bvnumber | BV047556188 |
classification_rvk | ST 250 |
ctrlnum | (OCoLC)1277295719 (DE-599)DNB1238379508 |
dewey-full | 005.133 |
dewey-hundreds | 000 - Computer science, information, general works |
dewey-ones | 005 - Computer programming, programs, data, security |
dewey-raw | 005.133 |
dewey-search | 005.133 |
dewey-sort | 15.133 |
dewey-tens | 000 - Computer science, information, general works |
discipline | Informatik |
discipline_str_mv | Informatik |
edition | 1. Auflage |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>02259nam a2200505 c 4500</leader><controlfield tag="001">BV047556188</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20221019 </controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">211022s2022 gw a||| |||| 00||| ger d</controlfield><datafield tag="015" ind1=" " ind2=" "><subfield code="a">21,N32</subfield><subfield code="2">dnb</subfield></datafield><datafield tag="016" ind1="7" ind2=" "><subfield code="a">1238379508</subfield><subfield code="2">DE-101</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9783864908750</subfield><subfield code="c">pbk.: EUR 22.90 (DE)</subfield><subfield code="9">978-3-86490-875-0</subfield></datafield><datafield tag="024" ind1="3" ind2=" "><subfield code="a">9783864908750</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)1277295719</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)DNB1238379508</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">rda</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">ger</subfield></datafield><datafield tag="044" ind1=" " ind2=" "><subfield code="a">gw</subfield><subfield code="c">XA-DE-BW</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-860</subfield><subfield code="a">DE-706</subfield><subfield code="a">DE-1050</subfield><subfield code="a">DE-739</subfield><subfield code="a">DE-1051</subfield><subfield code="a">DE-1043</subfield><subfield code="a">DE-B768</subfield><subfield code="a">DE-859</subfield><subfield code="a">DE-703</subfield><subfield code="a">DE-19</subfield><subfield code="a">DE-1102</subfield><subfield code="a">DE-634</subfield><subfield code="a">DE-11</subfield><subfield code="a">DE-898</subfield></datafield><datafield tag="082" ind1="0" ind2=" "><subfield code="a">005.133</subfield><subfield code="2">23/ger</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 250</subfield><subfield code="0">(DE-625)143626:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="8">1\p</subfield><subfield code="a">004</subfield><subfield code="2">23sdnb</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Inden, Michael</subfield><subfield code="d">1971-</subfield><subfield code="e">Verfasser</subfield><subfield code="0">(DE-588)143426753</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Einfach Python</subfield><subfield code="b">gleich richtig programmieren lernen</subfield><subfield code="c">Michael Inden</subfield></datafield><datafield tag="250" ind1=" " ind2=" "><subfield code="a">1. Auflage</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Heidelberg</subfield><subfield code="b">dpunkt.verlag</subfield><subfield code="c">2022</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">xx, 331 Seiten</subfield><subfield code="b">Illustrationen</subfield><subfield code="c">24 cm x 16.5 cm</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Python</subfield><subfield code="g">Programmiersprache</subfield><subfield code="0">(DE-588)4434275-5</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">Pytest</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">Python 3</subfield></datafield><datafield tag="655" ind1=" " ind2="7"><subfield code="0">(DE-588)4123623-3</subfield><subfield code="a">Lehrbuch</subfield><subfield code="2">gnd-content</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">Python</subfield><subfield code="g">Programmiersprache</subfield><subfield code="0">(DE-588)4434275-5</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="710" ind1="2" ind2=" "><subfield code="a">Dpunkt.Verlag (Heidelberg)</subfield><subfield code="0">(DE-588)6085529-0</subfield><subfield code="4">pbl</subfield></datafield><datafield tag="776" ind1="0" ind2="8"><subfield code="i">Erscheint auch als</subfield><subfield code="n">Online-Ausgabe, PDF</subfield><subfield code="z">978-3-96910-646-4</subfield><subfield code="w">(DE-604)BV047622463</subfield></datafield><datafield tag="776" ind1="0" ind2="8"><subfield code="i">Erscheint auch als</subfield><subfield code="n">Online-Ausgabe, EPUB</subfield><subfield code="z">978-3-96910-647-1</subfield></datafield><datafield tag="776" ind1="0" ind2="8"><subfield code="i">Erscheint auch als</subfield><subfield code="n">Online-Ausgabe, MOBI</subfield><subfield code="z">978-3-96910-648-8</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">X:MVB</subfield><subfield code="q">text/html</subfield><subfield code="u">http://deposit.dnb.de/cgi-bin/dokserv?id=385294f6216c4a7080a4b569c8dfd1fd&prov=M&dok_var=1&dok_ext=htm</subfield><subfield code="3">Inhaltstext</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">Digitalisierung UB Passau - ADAM Catalogue Enrichment</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=032931737&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="999" ind1=" " ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-032931737</subfield></datafield><datafield tag="883" ind1="1" ind2=" "><subfield code="8">1\p</subfield><subfield code="a">vlb</subfield><subfield code="d">20210806</subfield><subfield code="q">DE-101</subfield><subfield code="u">https://d-nb.info/provenance/plan#vlb</subfield></datafield></record></collection> |
genre | (DE-588)4123623-3 Lehrbuch gnd-content |
genre_facet | Lehrbuch |
id | DE-604.BV047556188 |
illustrated | Illustrated |
index_date | 2024-07-03T18:25:53Z |
indexdate | 2024-07-10T09:14:34Z |
institution | BVB |
institution_GND | (DE-588)6085529-0 |
isbn | 9783864908750 |
language | German |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-032931737 |
oclc_num | 1277295719 |
open_access_boolean | |
owner | DE-860 DE-706 DE-1050 DE-739 DE-1051 DE-1043 DE-B768 DE-859 DE-703 DE-19 DE-BY-UBM DE-1102 DE-634 DE-11 DE-898 DE-BY-UBR |
owner_facet | DE-860 DE-706 DE-1050 DE-739 DE-1051 DE-1043 DE-B768 DE-859 DE-703 DE-19 DE-BY-UBM DE-1102 DE-634 DE-11 DE-898 DE-BY-UBR |
physical | xx, 331 Seiten Illustrationen 24 cm x 16.5 cm |
publishDate | 2022 |
publishDateSearch | 2022 |
publishDateSort | 2022 |
publisher | dpunkt.verlag |
record_format | marc |
spelling | Inden, Michael 1971- Verfasser (DE-588)143426753 aut Einfach Python gleich richtig programmieren lernen Michael Inden 1. Auflage Heidelberg dpunkt.verlag 2022 xx, 331 Seiten Illustrationen 24 cm x 16.5 cm txt rdacontent n rdamedia nc rdacarrier Python Programmiersprache (DE-588)4434275-5 gnd rswk-swf Pytest Python 3 (DE-588)4123623-3 Lehrbuch gnd-content Python Programmiersprache (DE-588)4434275-5 s DE-604 Dpunkt.Verlag (Heidelberg) (DE-588)6085529-0 pbl Erscheint auch als Online-Ausgabe, PDF 978-3-96910-646-4 (DE-604)BV047622463 Erscheint auch als Online-Ausgabe, EPUB 978-3-96910-647-1 Erscheint auch als Online-Ausgabe, MOBI 978-3-96910-648-8 X:MVB text/html http://deposit.dnb.de/cgi-bin/dokserv?id=385294f6216c4a7080a4b569c8dfd1fd&prov=M&dok_var=1&dok_ext=htm Inhaltstext Digitalisierung UB Passau - ADAM Catalogue Enrichment application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=032931737&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis 1\p vlb 20210806 DE-101 https://d-nb.info/provenance/plan#vlb |
spellingShingle | Inden, Michael 1971- Einfach Python gleich richtig programmieren lernen Python Programmiersprache (DE-588)4434275-5 gnd |
subject_GND | (DE-588)4434275-5 (DE-588)4123623-3 |
title | Einfach Python gleich richtig programmieren lernen |
title_auth | Einfach Python gleich richtig programmieren lernen |
title_exact_search | Einfach Python gleich richtig programmieren lernen |
title_exact_search_txtP | Einfach Python gleich richtig programmieren lernen |
title_full | Einfach Python gleich richtig programmieren lernen Michael Inden |
title_fullStr | Einfach Python gleich richtig programmieren lernen Michael Inden |
title_full_unstemmed | Einfach Python gleich richtig programmieren lernen Michael Inden |
title_short | Einfach Python |
title_sort | einfach python gleich richtig programmieren lernen |
title_sub | gleich richtig programmieren lernen |
topic | Python Programmiersprache (DE-588)4434275-5 gnd |
topic_facet | Python Programmiersprache Lehrbuch |
url | http://deposit.dnb.de/cgi-bin/dokserv?id=385294f6216c4a7080a4b569c8dfd1fd&prov=M&dok_var=1&dok_ext=htm http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=032931737&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT indenmichael einfachpythongleichrichtigprogrammierenlernen AT dpunktverlagheidelberg einfachpythongleichrichtigprogrammierenlernen |