Kofler | Python | E-Book | www.sack.de
E-Book

E-Book, Deutsch, 450 Seiten

Reihe: Rheinwerk Computing

Kofler Python

Der Grundkurs
3. Auflage 2024
ISBN: 978-3-367-10120-7
Verlag: Rheinwerk
Format: EPUB
Kopierschutz: 0 - No protection

Der Grundkurs

E-Book, Deutsch, 450 Seiten

Reihe: Rheinwerk Computing

ISBN: 978-3-367-10120-7
Verlag: Rheinwerk
Format: EPUB
Kopierschutz: 0 - No protection



Diese Python-Einführung konzentriert sich auf das Wesentliche: Sie erfahren, wie Sie die Sprache in eigenen Projekten einsetzen, und 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, wiederkehrende Aufgaben automatisieren und viele andere Probleme lösen.
Neu in dieser Auflage: Pair Programming mit ChatGPT und Python in Excel

Aus dem Inhalt:

  • Hello World! Python installieren und einrichten
  • Python lernen mit KI-Unterstützung
  • Variablen, Datenstrukturen, Zeichenketten und Operatoren
  • Listen, Tupel, Arrays, Sets und Dictionarys
  • Verzweigungen und Schleifen, Umgang mit Fehlern
  • Funktionen und funktionale Programmierung
  • Objektorientierte Programmierung: Klassen, Konstrukte, Methoden
  • Module und Python-Interna
  • Daten lesen, schreiben und verarbeiten
  • Python und die Systemadministration
  • Grafikprogrammierung und Oberflächen
  • Wissenschaftliches Arbeiten mit Python, Datenverarbeitung in Excel
Kofler Python jetzt bestellen!

Autoren/Hrsg.


Weitere Infos & Material



  Vorwort ... 13
TEIL I.  Python lernen ... 15
  1.  Hello, World! ... 17

       1.1 ... Python installieren ... 17
       1.2 ... »Hello, World!« in der Python-Shell ... 21
       1.3 ... »Hello, World!« als eigenständiges Programm ... 24
       1.4 ... Elementare Syntaxregeln ... 30
       1.5 ... Wiederholungsfragen ... 36

  2.  Python lernen mit KI-Unterstützung ... 37

       2.1 ... Mein Programm funktioniert nicht! Warum? ... 39
       2.2 ... Mit welcher Funktion löse ich ein bestimmtes Problem? ... 46
       2.3 ... Sprachkonzepte erklären ... 47
       2.4 ... Programmieren mit ChatGPT ... 48

  3.  Variablen ... 55

       3.1 ... Grundregeln ... 55
       3.2 ... Datentypen ... 57
       3.3 ... Gültigkeitsbereich von Variablen ... 58
       3.4 ... Wiederholungsfragen ... 60

  4.  Operatoren ... 61

       4.1 ... Überblick ... 61
       4.2 ... Details und Sonderfälle ... 63
       4.3 ... Wiederholungsfragen ... 70

  5.  Zahlen ... 71

       5.1 ... Ganze Zahlen ... 72
       5.2 ... FlieT1ss kommazahlen ... 74
       5.3 ... Komplexe Zahlen, Brüche und Festkommazahlen ... 76
       5.4 ... Boolesche Werte ... 78
       5.5 ... Wiederholungsfragen ... 79

  6.  Zeichenketten ... 80

       6.1 ... Grundregeln ... 80
       6.2 ... Zugriff auf Teilzeichenketten ... 84
       6.3 ... Zeichenkettenfunktionen ... 86
       6.4 ... Zeichenketten formatieren und konvertieren ... 89
       6.5 ... Lokalisierung ... 94
       6.6 ... Reguläre Ausdrücke ... 97
       6.7 ... Wiederholungsfragen und Übungen ... 99

  7.  Datum und Zeit ... 100

       7.1 ... Zeit ermitteln und darstellen ... 100
       7.2 ... Mit Zeiten rechnen ... 105
       7.3 ... Wiederholungsfragen und Übungen ... 107

  8.  Listen, Tupel, Sets und Dictionaries ... 108

       8.1 ... Listen ... 109
       8.2 ... Funktionen zur Verarbeitung von Listen ... 112
       8.3 ... Tupel (Sequenzen) ... 119
       8.4 ... Sets (Mengen) ... 122
       8.5 ... Dictionaries ... 124
       8.6 ... Arrays ... 128
       8.7 ... Wiederholungsfragen und Übungen ... 130

  9.  Verzweigungen und Schleifen ... 131

       9.1 ... »if«-Verzweigung ... 131
       9.2 ... Beispiel: Schaltjahrtest ... 135
       9.3 ... »for«-Schleife ... 136
       9.4 ... »while«-Schleife ... 144
       9.5 ... Beispiele für Schleifen ... 145
       9.6 ... Pattern Matching ... 150
       9.7 ... Wiederholungsfragen und Übungen ... 151

10.  Funktionen ... 153

       10.1 ... Eigene Funktionen definieren ... 154
       10.2 ... Lokale und globale Variablen ... 158
       10.3 ... Parameter ... 161
       10.4 ... Rekursion ... 167
       10.5 ... Lambda-Funktionen ... 169
       10.6 ... Funktionale Programmierung ... 171
       10.7 ... Generatoren ... 174
       10.8 ... Wiederholungsfragen und Übungen ... 177

11.  Umgang mit Fehlern (Exceptions) ... 180

       11.1 ... Fehlerabsicherung mit »try« und »except« ... 181
       11.2 ... Selbst Exceptions auslösen (»raise«) ... 187
       11.3 ... Programmunterbrechungen abfangen ... 187
       11.4 ... Wiederholungsfragen und Übungen ... 190

12.  Objektorientierte Programmierung ... 192

       12.1 ... Crashkurs ... 193
       12.2 ... »Hello, Class!« ... 197
       12.3 ... Klassen- und Instanzvariablen ... 201
       12.4 ... Methoden ... 206
       12.5 ... Operator Overloading ... 212
       12.6 ... Datenklassen ... 216
       12.7 ... Vererbung ... 218
       12.8 ... Vererbungsbeispiel: Schachfiguren ... 220
       12.9 ... Wiederholungsaufgaben und Übungen ... 226

13.  Module ... 229

       13.1 ... Module nutzen (»import«) ... 229
       13.2 ... Modul-Interna ... 232
       13.3 ... Module installieren (»pip«) ... 234
       13.4 ... Eigene Module entwickeln ... 239
       13.5 ... Wiederholungsfragen und Übungen ... 243

14.  Interna ... 244

       14.1 ... Python-Scripts ausführen ... 244
       14.2 ... Interna der Variablenverwaltung ... 250
       14.3 ... Garbage Collection ... 254
       14.4 ... Shared References ... 256
       14.5 ... Type Annotation ... 256
       14.6 ... Namensräume erforschen ... 259
       14.7 ... Python-Compiler ... 261
       14.8 ... Systemfunktionen ... 262
       14.9 ... Wiederholungsfragen ... 265

TEIL II.  Python anwenden ... 267
15.  Dateien lesen und schreiben ... 269

       15.1 ... Verzeichnisse ... 269
       15.2 ... Textdateien lesen und schreiben ... 275
       15.3 ... Beispiel: Indexeinträge in Textdateien ändern ... 279
       15.4 ... Standardeingabe und Standardausgabe ... 281
       15.5 ... JSON-Dateien verarbeiten ... 283
       15.6 ... XML-Dateien verarbeiten ... 287
       15.7 ... Wiederholungsfragen und Übungen ... 292

16.  Netzwerkfunktionen ... 293

       16.1 ... Download und Upload von Dateien ... 293
       16.2 ... REST-APIs nutzen ... 297
       16.3 ... Mails versenden ... 301

17.  Systemadministration ... 305

       17.1 ... Linux-Kommandos aufrufen ... 305
       17.2 ... Linux-Accounts einrichten ... 308
       17.3 ... MySQL/MariaDB-Datenbankzugriff ... 312
       17.4 ... Mehrere gleichartige Datenbanken analysieren ... 317

18.  Grafische Benutzeroberflächen ... 321

       18.1 ... »Hello, Qt!« ... 322
       18.2 ... Buttons platzieren und nutzen ... 324
       18.3 ... Textfelder, Grid-Layout und Nachrichtenboxen ... 328
       18.4 ... Dateiauswahl ... 333
       18.5 ... Listenfelder ... 336

19.  Grafikprogrammierung ... 340

       19.1 ... Grafische Grundfunktionen ... 340
       19.2 ... Grafik in einem Widget ... 347
       19.3 ... SpaT1ss mit Sinus und Cosinus ... 350
       19.4 ... Temperaturkurve zeichnen ... 357

20.  Wissenschaftliche Anwendung ... 364

       20.1 ... Anaconda, IPython und Jupyter-Notebooks ... 364
       20.2 ... NumPy ... 374
       20.3 ... pandas ... 379
       20.4 ... SciPy ... 384
       20.5 ... Matplotlib ... 388
       20.6 ... Python in Excel ... 396

  A.  Lösungen ... 405

       A.1 ... Kapitel 1: »Hello, World!« ... 405
       A.2 ... Kapitel 3: Variablen ... 406
       A.3 ... Kapitel 4: Operatoren ... 407
       A.4 ... Kapitel 5: Zahlen ... 408
       A.5 ... Kapitel 6: Zeichenketten ... 409
       A.6 ... Kapitel 7: Datum und Uhrzeit ... 411
       A.7 ... Kapitel 8: Listen, Tupel, Sets und Dictionaries ... 413
       A.8 ... Kapitel 9: Verzweigungen und Schleifen ... 417
       A.9 ... Kapitel 10: Funktionen ... 421
       A.10 ... Kapitel 11: Umgang mit Fehlern ... 426
       A.11 ... Kapitel 12: Objektorientierte Programmierung ... 427
       A.12 ... Kapitel 13: Module ... 432
       A.13 ... Kapitel 14: Interna ... 433
       A.14 ... Kapitel 15: Dateien lesen und schreiben ... 435

  Index ... 439


1.3    »Hello, World!« als eigenständiges Programm


Nachdem Sie Python nun ein wenig kennengelernt haben, besteht Ihr nächstes Ziel darin, ein eigenständiges Programm zu entwickeln, das Hello, World! auf dem Bildschirm ausgibt. Im Prinzip reicht dazu ein beliebiger Editor wie Notepad++. Allerdings müssen Sie sich dann selbst um die Ausführung des Codes kümmern, was ein wenig mühsam ist (siehe auch Abschnitt 14.1).

Viel angenehmer ist es, Python mit einem für diese Sprache optimierten Programm zu erlernen: Ich empfehle Ihnen dafür den kostenlosen Editor Visual Studio Code (im Folgenden kurz VSCode). Wenn Sie später in die Profiliga aufsteigen, werden Sie sich vielleicht mit einer richtigen Python-Entwicklungsumgebung (z. B. PyCharm) oder mit den Jupyter-Notebooks (siehe Kapitel 20) anfreunden.

VSCode samt Python-Erweiterung installieren


Installationsdateien für das Programm VSCode finden Sie für alle gängigen Betriebssysteme auf der folgenden Website:

https://code.visualstudio.com/download

VSCode ist ein universeller Editor für alle erdenklichen Programmiersprachen. Sobald Sie ein erstes Python-Programm unter

Die Python-Erweiterung bringt zwei wesentliche Vorteile mit sich:

  • VSCode »versteht« damit Ihren Python-Code besser, hebt verschiedene Codekomponenten klarer hervor und hilft bei Codeumbauten.

  • VSCode sucht auf Ihrem Rechner nach der Python-Installation und blendet einen Run-Button ein, mit dem Sie Ihr Programm bequem mit einem Klick ausführen können.

VSCode-Schnelleinstieg


Dieses Buch ist nicht der richtige Ort für eine VSCode-Einführung. Im Internet finden Sie bei Bedarf eine Menge Tutorials. Ich beschränke mich hier auf zwei Tipps:

  • VSCode »denkt« in Verzeichnissen. Erstellen Sie auf Ihrem Rechner ein Verzeichnis für Ihre ersten Python-Experimente, unter Windows am besten innerhalb von Dokumente. In VSCode führen Sie dann File • Open Folder aus, um Ihr Verzeichnis zu öffnen. In der Folge können Sie alle Dateien in diesem Verzeichnis bequem bearbeiten. Um später Dateien aus einem anderen Verzeichnis zu öffnen, wiederholen Sie File • Open Folder.

  • Verwenden Sie beim Speichern neuer Codedateien die Kennung *.py. Spätestens dann erkennt VSCode, dass die Datei Python-Code enthält.

Das minimalistische Hello-World-Programm


Nachdem Sie in VSCode eine neue, noch leere Datei erzeugt haben, geben Sie die folgende Zeile ein und speichern die Datei als HelloWorld.py:

print('Hello, World!')

Sofern Sie die Python-Erweiterung installiert haben, können Sie das Programm mit dem Run-Button starten (siehe Abbildung 1.5).

Abbildung 1.5     »Hello, World!« im Editor »VSCode« unter macOS

Shebang-Zeile

Alle Beispieldateien zu diesem Buch beginnen mit der folgenden Zeile:

#!/usr/bin/env python3

In Abschnitt 14.1 erkläre ich Ihnen, dass diese Zeile den merkwürdigen Namen »Shebang« hat. Der Shebang ist erforderlich, um Python-Programme unter Linux und macOS eigenständig (ohne den Run-Button des Editors) auszuführen. Solange Sie das nicht vorhaben, können Sie auf diese Anweisung verzichten. Windows ignoriert die Zeile, dort ist nur die Kennung *.py wichtig.

Noch ein Beispiel


Selbst für Kapitel 1 ist die simple Ausgabe von Hello, World! ein wenig langweilig. Starten Sie nochmals einen Editor, geben Sie den folgenden Code ein, und speichern Sie das Programm unter dem Namen HelloName.py:

import time, locale name = input('Geben Sie Ihren Namen an: ') print('Hallo %s!' % name) locale.setlocale(locale.LC_ALL, 'de_DE') locale.setlocale(locale.LC_ALL, 'german') time = time.strftime('Heute ist %A, der %d. %B.') print(time)

Wenn Sie das Programm ausführen, fragt es zuerst nach Ihrem Namen. Nachdem Sie ihn eingegeben haben, begrüßt das Programm Sie und zeigt das aktuelle Datum an (siehe Abbildung 1.6). Der Programmcode enthält eine Menge Anweisungen, die Sie noch nicht kennen, deren Bedeutung aber leicht zu verstehen ist:

  • import liest (aktiviert) zwei Python-Erweiterungen, die Module genannt werden. time stellt Funktionen zum Umgang mit Datum und Uhrzeit zur Verfügung. locale kümmert sich um die Lokalisierung, also um die Anpassung an landessprachliche Besonderheiten.

  • Die Funktion input gibt die angegebene Zeichenkette am Bildschirm aus und nimmt dann eine Eingabe entgegen. Im Beispielprogramm wird diese Eingabe in der Variablen name gespeichert.

  • print gibt Hallo %s! aus, wobei %s aber durch den Inhalt der nachfolgend genannten Variablen ersetzt wird.

  • locale.setlocale(...) sagt Python, dass es deutsche Spracheinstellungen anwenden soll. Ohne diese Anweisung verwendet Python standardmäßig eine englische Lokalisierung und würde den Wochentag auf Englisch ausgeben.

  • time.strftime(...) ist eine Methode, die Datums- und Zeitdaten in der jeweiligen Landessprache formatiert. Das Ergebnis wird in einer zweiten Variablen, time, gespeichert.

  • print gibt schließlich den Inhalt dieser Variablen aus.

Abbildung 1.6     Ein etwas komplexeres Programm in »VSCode«

Selbstverständlich werden Sie alle hier aufgezählten Sprachelemente von Python in den folgenden Kapiteln noch im Detail kennenlernen.

Beispieldateien zum Buch

Viele Listings in diesem Buch sind nur wenige Zeilen lang. Sie können die Anweisungen direkt im Python-Interpreter ausprobieren.

Daneben gibt es aber auch längere Listings, die wie das vorige Beispiel in einer Datei zu speichern sind. Solche Listings beginnen mit dem Kommentar # Beispieldatei name.py. Das bedeutet, dass Sie sich die Tipparbeit sparen können. Sie finden die entsprechende Datei in den Beispieldateien zum Buch im Verzeichnis für das betreffende Kapitel (also z. B. in kap06 für die Beispiele zu Kapitel 6). Die Beispieldateien zum Buch können Sie hier herunterladen:

https://www.rheinwerk-verlag.de/5882

»Richtige« Entwicklungsumgebungen


Wenn Sie Python gerade lernen, empfehle ich Ihnen, mit VSCode zu arbeiten oder vielleicht Thonny auszuprobieren (siehe https://thonny.org). Sie haben aber vielleicht schon gehört, dass fortgeschrittene Programmierer sogenannte Entwicklungsumgebungen (Integrated Development...


Kofler, Michael
Michael Kofler hat Telematik an der TU Graz studiert und ist einer der erfolgreichsten deutschsprachigen IT-Fachbuchautoren. Zu seinen Themengebieten zählen neben Linux auch IT-Sicherheit, Python, Swift, Java und der Raspberry Pi. Er ist Entwickler, berät Firmen undarbeitet als Lehrbeauftragter.



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.