
Einstieg in Python
Description
Alles über E-Books | Antworten auf Fragen rund um E-Books, Kopierschutz und Dateiformate finden Sie in unserem Info- & Hilfebereich.
More details
Other editions
Additional editions


Person
Content
- Cover
- Über den Autor
- Titel
- Impressum
- Widmung
- Inhaltsverzeichnis
- Vorwort
- I Einstieg
- 1 Einführung
- 1.1 Python im Überblick
- 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
- 1.3 Arbeiten mit der Kommandozeile (Kurzeinführung)
- 1.3.1 Für macOS
- 1.3.2 Für Windows
- 1.3.3 IDLE als Alternative
- 1.4 Entwicklungsumgebung PyCharm (Optional)
- 1.4.1 Installation von PyCharm
- 1.4.2 PyCharm starten
- 1.4.3 Erstes Projekt in PyCharm
- 1.4.4 Erstes Modul in PyCharm
- 1.5 Ausprobieren der Beispiele
- 1.5.1 Python-Kommandozeileninterpreter
- 1.5.2 Texteditor und direkte Ausführung
- 1.5.3 IDE
- 1.5.4 Abschließender Hinweis
- 2 Schnelleinstieg
- 2.1 Hallo Welt (Hello World)
- 2.2 Variablen und Datentypen
- 2.2.1 Definition von Variablen
- 2.2.2 Variablen und Typen
- 2.2.3 Ausgaben mit print()
- 2.2.4 Bezeichner (Variablennamen)
- 2.3 Operatoren im Überblick
- 2.3.1 Arithmetische Operatoren
- 2.3.2 Zuweisungsoperatoren
- 2.3.3 Vergleichsoperatoren
- 2.3.4 Logische Operatoren
- 2.4 Fallunterscheidungen
- 2.5 Funktionen
- 2.5.1 Eigene Funktionen definieren
- 2.5.2 Nützliche Beispiele aus Python
- 2.6 Fehlerbehandlung und Exceptions
- 2.7 Kommentare
- 2.8 Module
- 2.8.1 Imports - Einbinden anderer Funktionalitäten
- 2.8.2 Zusammenfassung und Ergänzendes
- 2.9 Built-in-Datentypen
- 2.9.1 Listen (list)
- 2.9.2 Tupel (tuple)
- 2.9.3 Mengen (set)
- 2.9.4 Dictionaries (dict)
- 2.10 Schleifen
- 2.10.1 Besonderheit: Ranges
- 2.10.2 Indexbasierte for-in-Schleife
- 2.10.3 Wertebasierte for-in-Schleife
- 2.10.4 Die for-in-enumerate-Schleife mit Index und Wert
- 2.10.5 Die while-Schleife
- 2.11 Weiterführende Informationen
- 2.12 Aufgaben und Lösungen
- 2.12.1 Aufgabe 1: Mathematische Berechnungen
- 2.12.2 Aufgabe 2: Bedingung vereinfachen
- 2.12.3 Aufgabe 3: Funktion und if
- 2.12.4 Aufgabe 4: Selbstabholerrabatt
- 2.12.5 Aufgabe 5: Schleifen mit Berechnungen
- 2.12.6 Aufgabe 6: Schleifen und fixe Schrittweite
- 2.12.7 Aufgabe 7: Schleifen mit variabler Schrittweite
- 2.12.8 Aufgabe 8: Verschachtelte Schleifen - Variante 1
- 2.12.9 Aufgabe 9: Verschachtelte Schleifen - Variante 2
- 2.12.10 Aufgabe 10: Verschachtelte Schleifen - Variante 3
- 3 Strings
- 3.1 Schnelleinstieg
- 3.1.1 Gebräuchliche Stringaktionen
- 3.1.2 Suchen, Enthaltensein 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
- 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
- 4 Klassen und Objektorientierung
- 4.1 Schnelleinstieg
- 4.1.1 Grundlagen zu Klassen und Objekten
- 4.1.2 Eigenschaften (Attribute)
- 4.1.3 Verhalten (Methoden)
- 4.1.4 Typprüfung mit isinstance()
- 4.1.5 Objekte vergleichen - die Rolle von __eq__()
- 4.2 Nächste Schritte
- 4.2.1 Klassen ausführbar machen
- 4.2.2 Packages
- 4.2.3 Übergang zum Einsatz einer IDE
- 4.2.4 Verstecken von Informationen
- 4.2.5 Packages: Auswirkungen auf unsere Applikation
- 4.3 Vererbung
- 4.4 Aufgaben und Lösungen
- 4.4.1 Aufgabe 1: Superheld
- 4.4.2 Aufgabe 2: Zähler
- 4.4.3 Aufgabe 3: Objekte mit Dictionary selbst gebaut
- 5 Collections
- 5.1 Schnelleinstieg
- 5.1.1 Die Klasse list
- 5.1.2 Die Klasse set
- 5.1.3 Die Klasse dict
- 5.2 Nächste Schritte
- 5.2.1 Comprehensions
- 5.2.2 Slicing - Zugriff auf Teilbereiche von Listen
- 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
- 5.3 Aufgaben und Lösungen
- 5.3.1 Aufgabe 1: Tennisverein-Mitgliederliste
- 5.3.2 Aufgabe 2: Liste mit Farbnamen füllen und filtern
- 5.3.3 Aufgabe 3: Duplikate entfernen - Variante 1
- 5.3.4 Aufgabe 4: Duplikate entfernen - Variante 2
- 5.3.5 Aufgabe 5: Hauptstädte
- 5.3.6 Aufgabe 6: Häufigkeiten von Namen
- 5.3.7 Aufgabe 7: Rotation um eine oder mehrere Positionen
- 5.3.8 Aufgabe 8: Dreieckige Liste: Upside Down
- 6 Ergänzendes Wissen
- 6.1 Benutzereingaben input()
- 6.2 Zufallswerte und das Modul random
- 6.3 Besonderheiten von Parametern
- 6.3.1 Parameter mit Position bzw. Name
- 6.3.2 Parameter mit Defaultwert
- 6.3.3 Var Args - variable Anzahl an Argumenten
- 6.4 Ternary-Operator
- 6.5 Aufzählungen mit Enum
- 6.6 Fallunterscheidungen mit match
- 6.7 break, continue und else in Schleifen
- 6.7.1 Funktionsweise von break und continue
- 6.7.2 Wie macht man es besser?
- 6.7.3 Besonderheit: else in Schleifen
- 6.8 Ausdrücke mit eval() auswerten
- 6.9 Rekursion
- 6.9.1 Einführendes Beispiel: Fakultät
- 6.9.2 Weiterführendes Beispiel: Fibonacci-Zahlen
- 6.9.3 Weiterführendes Beispiel: Lineal
- 6.10 Praxisbeispiel: Flächen füllen
- 6.11 Aufgaben und Lösungen
- 6.11.1 Aufgabe 1: Würfelspiel
- 6.11.2 Aufgabe 2: Temperaturumrechnung
- 6.11.3 Aufgabe 3: Palindrom-Prüfung mit Rekursion
- 6.11.4 Aufgabe 4: Einarmiger Bandit
- 6.11.5 Aufgabe 5: BMI-Rechner
- 7 Verarbeitung von Dateien
- 7.1 Schnelleinstieg
- 7.1.1 Anlegen von Dateien und Verzeichnissen
- 7.1.2 Informationen zu Verzeichnissen und Dateien
- 7.1.3 Informationen in Dateien schreiben und daraus lesen
- 7.1.4 Diverse Informationen ermitteln
- 7.1.5 Kopieren und Umbenennen
- 7.1.6 Löschen
- 7.2 Praxisbeispiel: Directory-Baum darstellen
- 7.2.1 Basisvariante
- 7.2.2 Variante mit schönerer Darstellung
- 7.2.3 Finale Variante mit ausgeklügelter Darstellung
- 7.3 JSON-Verarbeitung
- 7.3.1 JSON in eine Datei schreiben
- 7.3.2 Lesen von JSON aus einer Datei
- 7.3.3 Pretty Printing
- 7.4 Aufgaben und Lösungen
- 7.4.1 Aufgabe 1: Texte in Datei schreiben und wieder lesen
- 7.4.2 Aufgabe 2: Dateigrößen
- 7.4.3 Aufgabe 3: Existenzprüfung
- 7.4.4 Aufgabe 4: Rechteprüfung
- 7.4.5 Aufgabe 5: Verzeichnisinhalt auflisten
- II Aufstieg
- 8 Collections Advanced
- 8.1 Sequenzielle Datentypen
- 8.2 Spaß mit Listen
- 8.2.1 Additionen und Multiplikationen mit Listen
- 8.2.2 Trickserei mit Slicing
- 8.3 Iteratoren
- 8.4 Generatoren
- 8.5 Datencontainer mit namedtuple
- 8.6 Einstieg in Lambdas
- 8.6.1 Syntax von Lambdas
- 8.6.2 Lambdas im Einsatz mit filter() und map()
- 8.6.3 Lambdas im Einsatz mit sort()
- 8.7 Aufgaben und Lösungen
- 8.7.1 Aufgabe 1: Obstkorb
- 8.7.2 Aufgabe 2: Erwachsene aus Personenliste extrahieren
- 8.7.3 Aufgabe 3: Eigene Implementierung von rindex()
- 8.7.4 Aufgabe 4: Every-N-th-Iterator
- 8.7.5 Aufgabe 5: Greeting-Generator
- 8.7.6 Aufgabe 6: Fibonacci-Generator
- 8.7.7 Aufgabe 7: Initialisierung mit List Comprehension und Multiplikation
- 9 Fehlerbehandlung mit Exceptions
- 9.1 Schnelleinstieg
- 9.1.1 Fehlerbehandlung
- 9.1.2 Exceptions selbst auslösen - raise
- 9.1.3 Eigene Exception-Typen definieren
- 9.1.4 Exceptions propagieren - throws
- 9.2 Fehlerbehandlung in der Praxis
- 9.2.1 Exceptions für Bereichsprüfungen
- 9.2.2 Elegante Prüfungen mit assert
- 9.3 Automatic Resource Management (with)
- 9.4 Aufgaben und Lösungen
- 9.4.1 Aufgabe 1: Abgesicherter Indexzugriff - Kür mit Fallback
- 9.4.2 Aufgabe 2: Resource Handling
- 10 Datumsverarbeitung
- 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 mit Datumswerten
- 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
- 11 Bildverarbeitung und Kontakt zur Außenwelt
- 11.1 Die Bibliothek Pillow / PIL
- 11.1.1 Installation und Import
- 11.1.2 Bildverarbeitung
- 11.1.3 Praxisbeispiel
- 11.1.4 Weiterführende Informationen
- 11.2 Das Modul requests
- 11.2.1 Installation und Import
- 11.2.2 Request absetzen - auf Webseite zugreifen
- 11.2.3 Wesentliche HTTP-Kommandos (GET, POST, PUT, DELETE, HEAD)
- 11.2.4 Response als Datei sichern
- 11.2.5 Weiterführende Informationen
- 11.3 Das Modul webbrowser
- 11.3.1 Datei im Webbrowser öffnen
- 11.3.2 Google-Suche programmatisch ausführen
- 12 LLMs mit Python im Kurzüberblick
- 12.1 Einführung
- 12.1.1 Was sind LLMs? Geschichte und Einsatzgebiete
- 12.2 Einführende Beispiele mit transformers
- 12.2.1 Textgenerierung mit transformers
- 12.2.2 Analyse von Texten
- 12.2.3 Was haben wir bisher gelernt?
- 12.3 Experimente mit OpenAI
- 12.3.1 Textgenerierung
- 12.3.2 Sourcecode erklären lassen
- 12.3.3 Sourcecode generieren lassen
- 12.3.4 Textnachricht in MP3 wandeln
- 12.3.5 Bildgenerierung
- 12.3.6 Weiterführende Infos
- III Praxisbeispiele
- 13 Praxisbeispiel: Tic Tac Toe
- 13.1 Spielfeld initialisieren und darstellen
- 13.2 Setzen der Steine
- 13.3 Prüfen auf Sieg
- 13.4 Bausteine im Einsatz
- 14 Praxisbeispiel: CSV-Highscore-Liste einlesen
- 14.1 Verarbeitung von Spielständen (Highscores)
- 14.2 Extraktion der Daten
- 14.3 Besonderheiten der Implementierung
- 15 Praxisbeispiel: Worträtsel
- 15.1 Applikationsdesign - Vorüberlegungen zur Strukturierung
- 15.2 Einlesen der verfügbaren Wörter
- 15.3 Hilfsdatenstrukturen
- 15.4 Datenmodell
- 15.4.1 Datenspeicherung und Initialisierung
- 15.4.2 Zufällige Wahl von Richtung, Position, Wort und Buchstabe
- 15.4.3 Algorithmus zum Verstecken von Wörtern
- 15.4.4 Wort prüfen und platzieren
- 15.5 HTML-Erzeugung
- 15.6 Ausgabe als HTML und Darstellung im Browser
- 15.7 Hauptapplikation
- 15.8 Fazit
- IV Schlussgedanken
- 16 Gute Angewohnheiten
- 16.1 Grundregeln eines guten Programmierstils
- 16.1.1 Keep It Human-Readable
- 16.1.2 Keep it Understandable
- 16.2 Coding Conventions
- 16.2.1 PEP 8 - Coding Standard
- 16.2.2 Zen of Python
- 16.2.3 Namensgebung
- 16.2.4 Dokumentation
- 16.2.5 Programmdesign
- 16.2.6 Parameterlisten
- 16.2.7 Logik und Kontrollfluss
- 16.3 Auch ans Testen denken
- 16.3.1 Das Pytest-Framework
- 16.3.2 Schreiben und Ausführen von Tests
- 17 Schlusswort
- V Anhang
- A Schlüsselwörter im Überblick
- A.1 Schlüsselwörter im Überblick
- B Schnelleinstieg Python-REPL
- B.1 Python-REPL
- C Neuerungen in Python 3.13
- C.1 Verbesserungen bei Fehlermeldungen
- C.1.1 Namenskonflikte bei Modulen
- C.1.2 Tippfehler bei benannten Parametern
- C.2 Verbesserungen in der Python-REPL
- C.3 Verschiedenes
- Literaturverzeichnis
- Fußnoten
- Index
System requirements
File format: PDF
Copy protection: Watermark-DRM (Digital Rights Management)
System requirements:
- Computer (Windows; MacOS X; Linux): Use the free software Adobe Reader, Adobe Digital Editions, or any other PDF viewer of your choice (see eBook Help).
- Tablet/Smartphone (Android; iOS): Install the free app Adobe Digital Editions or another reading app for eBooks, e.g., PocketBook (see eBook Help).
- E-reader: Bookeen, Kobo, Pocketbook, Sony, Tolino and many more (only limited: Kindle).
The file format PDF always displays a book page identically on any hardware. This makes PDF suitable for complex layouts such as those used in textbooks and reference books (images, tables, columns, footnotes). Unfortunately, on the small screens of e-readers or smartphones, PDFs are rather annoying, requiring too much scrolling.
This eBook uses Watermark-DRM, a „soft” copy protection. This means that there are no technical restrictions to prevent illegal distribution. However, there is a personalised watermark embedded in the eBook that can be used to identify the purchaser of the eBook in the event of misuse and to provide evidence for legal purposes.
For more information, see our eBook Help page.