Python (Michael Kofler) (Z Library)
Author: Michael Kofler
技术
Diese Python-Einführung konzentriert sich auf das Wesentliche und zeigt Ihnen, wie Sie die Sprache in eigenen Projekten einsetzen. Sie lernen alle Grundlagen kennen: Datenstrukturen und Typen, Programmierlogik, den Umgang mit Modulen, die Vorteile der funktionalen und objektorientierten Programmierung. So erfahren Sie praxisgerecht, wie Sie mit Python Daten verarbeiten, den Raspberry Pi ansteuern, wiederkehrende Aufgaben automatisieren und vieles mehr.
📄 File Format:
PDF
💾 File Size:
6.2 MB
287
Views
134
Downloads
0.00
Total Donations
📄 Text Preview (First 20 pages)
ℹ️
Registered users can read the full content for free
Register as a Gaohf Library member to read the complete e-book online for free and enjoy a better reading experience.
📄 Page
1
(This page has no text content)
📄 Page
2
Michael Kofler Python Der Grundkurs
📄 Page
3
Impressum Dieses E-Book ist ein Verlagsprodukt, an dem viele mitgewirkt haben, insbesondere: Lektorat Dr. Christoph Meister Korrektorat Friederike Daenecke, Zülpich Covergestaltung Silke Braun Herstellung E-Book Norbert Englert Satz E-Book Michael Kofler 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 978-3-8362-6681-9 1. Auflage 2019 © Rheinwerk Verlag GmbH, Bonn 2019
📄 Page
4
Liebe Leserin, lieber Leser, mit Python lassen sich viele Programmierprobleme verblüffend einfach lösen: Möchten Sie etwa die Geschwindigkeit einer unbeladenen Schwalbe berechnen? Oder sollen die Übersetzungen für ungarische Redensarten in einem Dictionary gespeichert werden? Diese Aufgaben erledigen Sie mit Python elegant und mit erstaunlich wenig Programmieraufwand. Der Name der Sprache leitet sich übrigens nicht von einer Schlangenart ab, sondern bezieht sich auf die legendäre britische Komikertruppe Monty Python um John Cleese, Eric Idle & Co. Wenn Sie diese Gags noch nicht kennen und Ihnen auch der erste Absatz etwas seltsam vorkam, sollten Sie diese Wissenslücke bald schließen – gleich nachdem Sie mit diesem Grundkurs Programmieren gelernt haben. Michael Kofler zeigt Ihnen hier in kompakter Form die wichtigsten Features der Sprache und liefert Ihnen zahlreiche Codebeispiele, die sich an echten Praxisaufgaben orientieren. Ohne lange Umwege erfahren Sie so, wie Sie Python in eigenen Projekten einsetzen und Programmieraufgaben lösen. Egal ob Sie den Raspberry Pi ansteuern oder die Systemadministration automatisieren wollen, ob Sie wissenschaftlich mit fortgeschrittenen Mathematik-Modulen arbeiten oder einfache GUIs bauen möchten – hier finden Sie die Grundlagen kurz und auf den Punkt erklärt. Abschließend noch ein Wort in eigener Sache: Dieser Grundkurs wurde mit großer Sorgfalt geschrieben, geprüft und produziert. Sollte dennoch einmal etwas nicht so funktionieren, wie Sie es erwarten, freue ich mich, wenn Sie sich mit mir in Verbindung setzen. Ihre Kritik und konstruktiven Anregungen sind jederzeit willkommen.
📄 Page
5
Dr. Christoph Meister Lektorat Rheinwerk Computing christoph.meister@rheinwerk-verlag.de www.rheinwerk-verlag.de Rheinwerk Verlag • Rheinwerkallee 4 • 53227 Bonn
📄 Page
6
Inhaltsverzeichnis Liebe Leser! Inhaltsverzeichnis Vorwort Teil I Python lernen 1 Hello, World! 1.1 Python installieren Linux Windows macOS (Standardinstallation) macOS (Manuelle »brew«-Installation) 1.2 »Hello, World!« in der Python-Shell Python in der Shell kennenlernen 1.3 »Hello, World!« als eigenständiges Script Das Hello-World-Script unter Windows ausführen Das Hello-World-Script unter Linux und macOS ausführen Was ist ein Script? Windows versus Linux/macOS Noch ein Beispiel 1.4 Entwicklungsumgebungen (IDEs) Thonny
📄 Page
7
1.5 Elementare Syntaxregeln Anweisungen Blockelemente »print« »input« Module und »import« Kommentare 1.6 Wiederholungsfragen 2 Variablen 2.1 Grundregeln Variablennamen 2.2 Datentypen Erkennung des Datentyps Angabe des vorgesehen Datentyps (Type Annotation) Mutable oder immutable Veränderliche Daten kopieren Typumwandlung 2.3 Gültigkeitsbereich von Variablen 2.4 Wiederholungsfragen 3 Operatoren 3.1 Überblick 3.2 Details und Sonderfälle Division Zuweisung und Berechnung verbinden
📄 Page
8
»in«-Operator Binäre versus logische Operatoren Short-Circuit-Evaluation Operatorhierarchie Variablen und Daten vergleichen Mehrfachvergleiche »operator«-Modul Operatoren selbst implementieren 3.3 Wiederholungsfragen 4 Zahlen 4.1 Ganze Zahlen Division Binäre und hexadezimale Darstellung Zufallszahlen 4.2 Fließkommazahlen Rundungsfehler Zufallszahlen 4.3 Komplexe Zahlen, Brüche und Festkommazahlen Komplexe Zahlen Rationale Zahlen (Brüche) Dezimalzahlen 4.4 Boolesche Werte 4.5 Wiederholungsfragen 5 Zeichenketten
📄 Page
9
5.1 Grundregeln Zeichenketten aneinanderfügen und vervielfältigen Sonderzeichen Raw-Zeichenketten »chr«- und »ord«-Funktion 5.2 Zugriff auf Teilzeichenketten »IndexError« Schrittweite (Stride) 5.3 Zeichenkettenfunktionen Eigenschaften von Zeichen(ketten) ermitteln Suchen und ersetzen 5.4 Zeichenketten formatieren und konvertieren Daten formatieren Formatierung mit dem %-Operator Formatierung mit der »format«-Methode »format«-Kurzschreibweise (ab Python 3.6) 5.5 Lokalisierung Lokalisierte Zeichenketten in Zahlen umwandeln Lokalisierungsbeispiel 5.6 Reguläre Ausdrücke 5.7 Wiederholungsfragen und Übungen 6 Datum und Zeit 6.1 Zeit ermitteln und darstellen Datum aus Zeichenkette einlesen (»parsen«) Datum ohne Zeit Zeit ohne Datum
📄 Page
10
Objekte für einen beliebigen Zeitpunkt Zeiten mit Zeitzone 6.2 Mit Zeiten rechnen Zeiten subtrahieren Laufzeit von Code messen 6.3 Wiederholungsfragen und Übungen 7 Listen, Tupel, Sets und Dictionaries 7.1 Listen »range«-Funktion Listen und Zeichenketten List Comprehension 7.2 Funktionen zur Verarbeitung von Listen »map«-Funktion »reduce«-Funktion »filter«-Funktion Listen sortieren Zeichenketten mit deutschen Buchstaben sortieren 7.3 Tupel (Sequenzen) Anwendungsfälle »zip«-Funktion 7.4 Sets (Mengen) »set«-Methoden Mengenlehre 7.5 Dictionaries Dictionaries (assoziative Arrays) Verarbeitung von Dictionary-Elementen
📄 Page
11
»zip«-Funktion 7.6 Type Annotations 7.7 Arrays 7.8 Wiederholungsfragen und Übungen 8 Verzweigungen und Schleifen 8.1 »if«-Verzweigung »pass«-Schlüsselwort »if«-Kurzschreibweise Kein »switch« 8.2 Beispiel: Schaltjahrtest 8.3 »for«-Schleife Schleifen über Zahlenbereiche (»range«) Schleifen über die Zeichen einer Zeichenkette Schleifen über Listen, Tupel und Sets »enumerate«-Funktion List/Set/Tupel Comprehension Schleifen über Dictionaries, Dictionary Comprehension Generator Expressions »break«, »continue« und »else« »_« als Schleifenvariable 8.4 »while«-Schleife 8.5 Beispiele für Schleifen Summe der Zahlen von 1 bis 1.000 Einmaleins-Tabelle Parameter verarbeiten
📄 Page
12
8.6 Wiederholungsfragen und Übungen 9 Funktionen 9.1 Eigene Funktionen definieren »Hello, Function!« Beispiel: Zufällige Zeichenkette Beispiel: Passwortgenerator 9.2 Lokale und globale Variablen Variablenverwaltung Globale Variablen 9.3 Parameter Parameter für unveränderliche Typen (immutable) Parameter für veränderliche Typen (mutable) Optionale Parameter Variable Parameteranzahl Parametertyp überprüfen Type Annotations 9.4 Rekursion Fakultät rekursiv berechnen Unkontrollierte Rekursion 9.5 Lambda-Funktionen 9.6 Funktionale Programmierung Beispiel: Funktionsgenerator Beispiel: verschachtelter Funktionsgenerator Beispiel: Listengenerator 9.7 Generatoren Beispiel: Fibonacci-Zahlen
📄 Page
13
9.8 Wiederholungsfragen und Übungen 10 Umgang mit Fehlern (Exceptions) 10.1 Fehlerabsicherung mit »try« und »except« Beispiel Catch-all-Absicherung Auswertung von Exception-Objekten Nichts tun mit »pass« Fehler in verschachteltem Code 10.2 Selbst Exceptions auslösen (»raise«) 10.3 Programmunterbrechungen abfangen Absicherung mit »try«/»except« Absicherung mit »signal« Probleme beim Programmabbruch 10.4 Wiederholungsfragen und Übungen 11 Objektorientierte Programmierung 11.1 Crashkurs Funktionen helfen, Teilaufgaben zu lösen Klassen bringen Daten und Methoden zusammen Objekte sind konkrete Ausformungen von Klassen Begriffe (Nomenklatur) 11.2 »Hello, Class!« Konstruktor Methoden Verwendung der Klasse (»Hello, Object!«)
📄 Page
14
11.3 Klassen- und Instanzvariablen Namensräume Nochmals Instanz- versus Klassenvariable Type Annotations Private Instanzvariablen 11.4 Methoden Statische Methoden versus Instanzmethoden Methoden innerhalb einer Klasse aufrufen Getter- und Setter-Methoden (Eigenschaften) 11.5 Operator Overloading Gleichheitstest (»eq«-Methode) Umwandlung in Zeichenkette (»str« und »repr«) Größenvergleich (»lt« und »le«) Hash-Funktion 11.6 Unveränderliche Objekte Hash-Funktionen für veränderliche Objekte Veränderungen von außen verhindern 11.7 Datenklassen Unveränderliche Datenklassen 11.8 Vererbung Klassenzuordnung und -hierarchie feststellen Beispiel: Schachfiguren Klasse für Pferd/Springer Klasse für Läufer Mehrfachvererbung 11.9 Wiederholungsaufgaben und Übungen 12 Module
📄 Page
15
12.1 Module nutzen (»import«) »import as« »from import« 12.2 Modul-Interna Welche Module stehen zur Verfügung? Wo befinden sich Moduldateien? Welche Module sind geladen? 12.3 Module installieren (»pip«) »pip« installieren oder aktualisieren Pakete installieren und verwalten 12.4 Eigene Module entwickeln Variablen über mehrere Module teilen Packages »pycache«-Verzeichnis 12.5 Wiederholungsfragen und Übungen 13 Interna 13.1 Garbage Collection 13.2 Shared References 13.3 Namensräume erforschen 13.4 Python-Compiler 13.5 Systemfunktionen Programmparameter Andere Programme bzw. Kommandos aufrufen Warten (»sleep«) Asynchrone Programmierung
📄 Page
16
Programm beenden 13.6 Python 2 »print« »input« Ganze Zahlen Operatoren Zahlenbereiche (»range«/»xrange«) Listen und andere Aufzählungen Unicode Exceptions (Fehler) »future«-Modul Teil II Python anwenden 14 Dateien lesen und schreiben 14.1 Verzeichnisse Das aktuelle Verzeichnis Das Codeverzeichnis Heimatverzeichnis ermitteln Temporäres Verzeichnis und temporäre Dateien Verzeichnis- und Dateinamen kombinieren und zerlegen Verzeichnisse erstellen, umbenennen und löschen Verzeichnisse durchsuchen 14.2 Textdateien lesen und schreiben »Hello, File!« Dateien mit »with/as« automatisch schließen 14.3 Beispiel: Indexeinträge in Textdateien ändern 14.4 Standardeingabe und Standardausgabe
📄 Page
17
Beispiel 14.5 JSON-Dateien verarbeiten »Hello, JSON!« JSON-Dokumente erzeugen JSON für Objekte eigener Klassen 14.6 XML-Dateien verarbeiten »Hello, XML!« Beispiel: Newsfeed auswerten 14.7 Wiederholungsfragen und Übungen 15 Netzwerkfunktionen 15.1 Download und Upload von Dateien Zertifikatsprobleme unter macOS Große Dateien stückweise herunterladen FTP 15.2 Mails versenden Mail-Versand an einen externen SMTP-Server HTML-Mail Bild hinzufügen Weitere Mail-Varianten 15.3 Dropbox Dropbox-Zugang testen Upload Download 15.4 Twitter Tweet senden
📄 Page
18
16 Systemadministration 16.1 Linux-Kommandos aufrufen Ergebnisse verarbeiten Kommando durch die »bash« ausführen Fehler beim Kommandoaufruf 16.2 Linux-Accounts einrichten Passwörter erzeugen Dateien lesen und schreiben Kommandos aufrufen Script ausführen Accounts wieder löschen 16.3 MySQL/MariaDB-Datenbankzugriff Voraussetzungen »Hello, Database!« Verbindungsaufbau SQL-Kommandos ausführen SELECT-Ergebnisse verarbeiten Weitere Informationen 16.4 Mehrere gleichartige Datenbanken analysieren SELECT-Kommando zusammenstellen Liste der Kundendatenbanken einlesen Datenbankverbindung herstellen, Abfragen durchführen Auswertung 17 Raspberry Pi 17.1 GPIO-Zugriff mit RPi.GPIO GPIO-Setup
📄 Page
19
LED ein- und ausschalten LED-Helligkeit steuern Zustand eines Tasters auswerten Taster entprellen 17.2 LED-Ampel für die CPU-Temperatur Code Test 17.3 GPIO-Zugriff mit »gpiozero« Nochmals die CPU-Temperatur visualisieren 17.4 Sense HAT »Hello, Sense HAT!« Das Display Pixel für Pixel steuern Pixel mit Joystick bewegen Pixel mit dem Gyroscope-Sensor bewegen 18 Grafische Benutzeroberflächen 18.1 »Hello, Qt!« 18.2 Buttons platzieren und nutzen Gewöhnliche Buttons Auswahlhäkchen (Checkboxes) und Radio-Buttons 18.3 Textfelder, Grid-Layout und Nachrichtenboxen Grid-Layout Nachrichtenbox anzeigen 18.4 Dateiauswahl Beispiel 18.5 Listenfelder
📄 Page
20
Beispiel: Länderauswahl 18.6 Oberfläche zur GPIO-Steuerung Programmaufbau Schieberegler (»QSlider«) Periodischer Aufruf einer Methode (»QTimer«) 19 Grafikprogrammierung 19.1 Grafische Grundfunktionen Linien Rechtecke und Polygone Kreise und Ellipsen Text Hintergrundfarbe einstellen 19.2 Grafik in einem Widget Grafik in PNG-Datei speichern 19.3 Spaß mit Sinus und Cosinus Programmaufbau Einen Kreis zeichnen Spiralkurve zeichnen Linienmuster zeichnen Bunte, verdrehte Rechtecke auf einer Spiralkurve zeichnen 19.4 Temperaturkurve anzeigen Programmaufbau Daten einlesen Gitter zeichnen und beschriften Temperaturkurve zeichnen Verbesserungsmöglichkeiten
The above is a preview of the first 20 pages. Register to read the complete e-book.