E-Book, Deutsch, 484 Seiten
Reihe: Rheinwerk Computing
Theis Einstieg in Python
8. Auflage 2024
ISBN: 978-3-367-10125-2
Verlag: Rheinwerk
Format: EPUB
Kopierschutz: 0 - No protection
Ideal für Programmiereinsteiger
E-Book, Deutsch, 484 Seiten
Reihe: Rheinwerk Computing
ISBN: 978-3-367-10125-2
Verlag: Rheinwerk
Format: EPUB
Kopierschutz: 0 - No protection
Sie möchten Python lernen? Mit diesem Buch schaffen Sie es! Folgen Sie unserem Autor Thomas Theis bei der Entwicklung eines kleinen Spiels und lernen Sie ganz nebenbei das Basiswissen. Das Spiel wird immer weiter ausgebaut. Dabei lernen Sie die Oberflächen- und Datenbank-Programmierung kennen. Natürlich werden Sie auch mit der objektorientierten Programmierung vertraut gemacht.
Mit diesem Buch wird Ihnen der Einstieg in Python im wahrsten Sinne des Worts spielend gelingen. Ganz ohne Vorkenntnisse.
Aus dem Inhalt:
- Installation
- Python-Grundlagen
- Fehlerbehandlung
- Objektorientierte Programmierung (OOP)
- Multithreading
- Dateiverarbeitung
- Datenbankanwendungen mit SQLite und MySQL
- Grafische Benutzeroberflächen
- GUIs programmieren
Thomas Theis ist Dipl.-Ing. für Technische Informatik und arbeitet als Berater und Trainer. Seit vielen Jahren gibt er als EDV-Dozent Kurse in verschiedenen Programmiersprachen. Er ist Autor vieler erfolgreicher Fachbücher.
Autoren/Hrsg.
Weitere Infos & Material
1. Einführung ... 19 1.1 ... Vorteile von Python ... 19 1.2 ... Verbreitung von Python ... 20 1.3 ... Aufbau des Buchs ... 20 1.4 ... Übungen ... 21 1.5 ... Installation unter Windows ... 22 1.6 ... Installation unter Ubuntu Linux ... 23 1.7 ... Installation unter macOS ... 23 2. Erste Schritte ... 25 2.1 ... Python als Taschenrechner ... 25 2.2 ... Erstes Programm ... 30 2.3 ... Speichern und ausführen ... 31 3. Programmierkurs ... 37 3.1 ... Ein Spiel programmieren ... 37 3.2 ... Variablen und Operatoren ... 38 3.3 ... Verzweigungen ... 45 3.4 ... Schleifen ... 59 3.5 ... Entwicklung eines Programms ... 73 3.6 ... Fehler und Ausnahmen ... 74 3.7 ... Funktionen und Module ... 79 3.8 ... Typhinweise ... 86 3.9 ... Das fertige Spiel ... 90 4. Datentypen ... 95 4.1 ... Zahlen ... 95 4.2 ... Zeichenketten ... 114 4.3 ... Listen ... 125 4.4 ... Tupel ... 133 4.5 ... Dictionarys ... 134 4.6 ... Sets, Mengen ... 138 4.7 ... Wahrheitswerte und Nichts ... 141 4.8 ... Referenz, Identität und Kopie ... 144 4.9 ... Typhinweise ... 148 5. Weiterführende Programmierung ... 151 5.1 ... Allgemeines ... 151 5.2 ... Ausgabe und Formatierung ... 155 5.3 ... Funktionen für Iterables ... 161 5.4 ... Verschlüsselung ... 164 5.5 ... Fehler und Ausnahmen ... 166 5.6 ... Funktionen ... 174 5.7 ... Eingebaute Funktionen ... 184 5.8 ... Weitere mathematische Module ... 188 5.9 ... Eigene Module ... 202 5.10 ... Parameter der Kommandozeile ... 204 5.11 ... Programm »Bruchtraining« ... 205 6. Objektorientierte Programmierung ... 213 6.1 ... Grundlagen ... 213 6.2 ... Fortgeschrittene Themen ... 228 7. Verschiedene Module ... 241 7.1 ... Datum und Uhrzeit ... 241 7.2 ... Warteschlangen ... 254 7.3 ... Multithreading ... 260 7.4 ... Reguläre Ausdrücke ... 266 7.5 ... Audioausgabe ... 270 8. Dateien ... 273 8.1 ... Das Öffnen und das Schließen einer Datei ... 273 8.2 ... Textdateien ... 274 8.3 ... Dateien mit festgelegter Struktur ... 282 8.4 ... Serialisierung mit »pickle« ... 286 8.5 ... Datenaustausch mit JSON ... 289 8.6 ... Bearbeitung mehrerer Dateien ... 292 8.7 ... Informationen über Dateien ... 294 8.8 ... Dateien und Verzeichnisse verwalten ... 295 8.9 ... Beispielprojekt Morsezeichen ... 296 8.10 ... Spiel, Version mit Highscore-Datei ... 300 8.11 ... Spiel, objektorientierte Version mit Highscore-Datei ... 305 9. Datenbanken ... 311 9.1 ... Aufbau von Datenbanken ... 311 9.2 ... SQLite ... 312 9.3 ... MySQL ... 327 9.4 ... Spiel, Version mit Highscore-Datenbank ... 331 9.5 ... Spiel, objektorientierte Version mit Highscore-Datenbank ... 333
10. Benutzeroberflächen ... 337 10.1 ... Einführung ... 337 10.2 ... Widget-Typen ... 343 10.3 ... Bilder und Mausereignisse ... 363 10.4 ... Geometrie-Manager »place« ... 369 10.5 ... Menüs und Dialogfelder ... 375 10.6 ... Zeichnungen und Animationen ... 386 10.7 ... Spiel, GUI-Version ... 393 10.8 ... Übungsaufgabe ... 399
11. Benutzeroberflächen mit PyQt ... 403 11.1 ... Einführung ... 403 11.2 ... Widget-Typen ... 409 11.3 ... PyQt und SQLite ... 442 11.4 ... Übungsaufgabe ... 456 Anhang ... 457 A.1 ... Installation zusätzlicher Module ... 457 A.2 ... Erstellen von ausführbaren Dateien ... 458 A.3 ... Installation von XAMPP ... 459 A.4 ... UNIX-Befehle ... 460 A.5 ... Tipps zur Entwicklung ... 463 Index ... 467
3.2 Variablen und Operatoren
Zur Speicherung von Werten werden Variablen benötigt. Operatoren dienen zur Ausführung von Berechnungen.
3.2.1 Zuweisung, Berechnung und Ausgabe
Im folgenden Programm wird eine einfache Berechnung mithilfe eines Operators durchgeführt. Das Ergebnis der Berechnung wird mit dem Gleichheitszeichen einer Variablen zugewiesen. Es erfolgt eine Ausgabe. Diese Schritte kennen Sie bereits aus Abschnitt 2.1.6.
b = 3
c = a + b
print("Die Aufgabe:", a, "+", b)
print("Das Ergebnis:", c)
Listing 3.1 Datei »zuweisung.py«
Die Ausgabe des Programms lautet:
Das Ergebnis: 8
In den beiden Variablen a und b wird jeweils ein Wert gespeichert. Die beiden Werte werden addiert, das Ergebnis wird der Variablen c zugewiesen. Die Aufgabenstellung wird ausgegeben, anschließend das Ergebnis. Bei der Benutzung des Programms hat man noch keine Möglichkeit, in den Ablauf einzugreifen.
Hinweis
Da den Variablen a, b und c ganze Zahlen zugewiesen wurden, sind sie aktuell Variablen für ganze Zahlen. Bei Python handelt es sich aber um eine dynamisch typisierte Sprache. Daher könnten die Variablen nach einer anderen Zuweisung im Verlauf des Programms ihren Typ wechseln.
3.2.2 String-Literale
String-Literale dienen zur komfortablen Einbettung von einfachen Variablen, aber auch komplexen Ausdrücken in Zeichenketten, also in Texte. Nachfolgend sehen Sie unter anderem das Programm aus dem vorherigen Abschnitt in einer Version mit String-Literalen:
b = 3
c = a + b
print(f"Die Aufgabe: {a} + {b}")
print(f"Das Ergebnis: {c}")
print(f"Das Ergebnis ohne Speicherung: {a + b}")
print(f"Eine weitere Berechnung: {(12 - 5 * 2) / 4}")
Listing 3.2 Datei »literal.py«
Die Ausgabe des Programms lautet:
Das Ergebnis: 8
Das Ergebnis ohne Speicherung: 8
Eine weitere Berechnung: 0.5
Das Zeichen »f« vor dem Beginn der Zeichenkette leitet ein String-Literal ein. In der Zeichenkette können mehrere Ausdrücke eingebettet werden, jeweils mithilfe von geschweiften Klammern. Ein Ausdruck kann unter anderem Operatoren, runde Klammern und die Namen von Variablen enthalten. Der Wert eines Ausdrucks wird ermittelt und gemeinsam mit dem Rest der Zeichenkette ausgegeben.
Die geschweiften Klammern { und } erreichen Sie mithilfe der Taste (Alt_Gr) rechts neben der Leertaste, unter macOS gegebenenfalls mit (Alt) + (8) und (Alt) + (9). Mehr zu den Möglichkeiten von String-Literalen folgt in Abschnitt 5.2.2.
3.2.3 Eingabe einer Zeichenkette
In diesem Abschnitt wird die eingebaute Funktion input() eingeführt. Sie dient zur Eingabe einer Zeichenkette, also eines Texts. Ein kleines Beispiel:
x = input()
print("Ihre Eingabe:", x)
Listing 3.3 Datei »eingabe_text.py«
Die Ausgabe könnte wie folgt aussehen:
Ich schreibe Python-Programme
Ihre Eingabe: Ich schreibe Python-Programme
Es wird ein Text eingegeben. Dieser Text wird in der Variablen x gespeichert und anschließend ausgegeben.
Hinweis
Da der Variablen x eine Zeichenkette zugewiesen wurde, ist sie aktuell eine Variable für Zeichenketten (englisch: strings).
3.2.4 Eingabe einer Zahl
Im weiteren Verlauf des Spiels ist es notwendig, einen eingegebenen Text als Zahl weiterzuverwenden. Dazu muss die Zeichenkette, die die Funktion input() liefert, in eine ganze Zahl umgewandelt werden.
Zur Umwandlung gibt es unter anderem die folgenden Funktionen:
-
Die eingebaute Funktion int() wandelt eine Zeichenkette, die eine gültige ganze Zahl enthält, in eine ganze Zahl um. Enthält die Zeichenkette keine gültige ganze Zahl, bricht das Programm ab.
-
Die eingebaute Funktion float() wandelt eine Zeichenkette, die eine gültige Zahl enthält, in eine Zahl mit Nachkommastellen um. Enthält die Zeichenkette keine gültige Zahl, bricht das Programm ab. Nur ein Punkt als Dezimaltrennzeichen ist erlaubt, kein Komma.
In Abschnitt 3.6, »Fehler und Ausnahmen«, lernen Sie, wie Sie den Abbruch eines Programms abfangen. Bis zu dem genannten Abschnitt gehe ich vereinfacht davon aus, dass korrekte Eingaben vorgenommen werden.
Ein Beispiel mit der Funktion int():
a = input()
print("Ihre Eingabe:", a)
b = int(a)
print("Als ganze Zahl:", b)
print("Das Doppelte:", b * 2)
print("Bitte eine Zahl eingeben")
x = input()
print("Ihre Eingabe:", x)
y = float(x)
print("Als Zahl:", y)
print("Das Doppelte:", y * 2)
Listing 3.4 Datei »eingabe_zahl.py«
Die Ausgabe könnte wie folgt aussehen:
3
Ihre Eingabe: 3
Als ganze Zahl: 3
Das Doppelte: 6
Bitte eine Zahl eingeben
3.5
Ihre Eingabe: 3.5
Als Zahl: 3.5
Das Doppelte: 7.0
Es wird eine erste Zeichenkette eingegeben. Sie wird mithilfe der eingebauten Funktion int() in eine ganze Zahl umgewandelt. Die Zahl und das Doppelte der Zahl werden ausgegeben.
Anschließend wird eine zweite Zeichenkette eingegeben. Sie wird mithilfe der eingebauten Funktion float() in eine Zahl mit Nachkommastellen umgewandelt. Die Zahl und das Doppelte der Zahl werden ausgegeben.
3.2.5 Spiel, Version mit Eingabe
Das Spielprogramm, in dem eine Rechenaufgabe im Kopf gelöst werden soll, erhält eine Eingabe. Das Programm wird wie folgt geändert:
b = 3
c = a + b
print(f"Die Aufgabe: {a} + {b}")
print("Bitte Lösungsvorschlag eingeben:")
z = input()
zahl = int(z)
print("Ihre Eingabe:", z)
print("Das Ergebnis:", c)
Listing 3.5 Datei »spiel_eingabe.py«
Eine mögliche Ausgabe des Programms:
Bitte Lösungsvorschlag eingeben:
9
Ihre Eingabe: 9
Das Ergebnis: 8
Das Programm gibt die Aufforderung »Bitte Lösungsvorschlag eingeben:« aus und hält an. Der eingegebene Text wird in der Variablen z gespeichert. Die Zeichenkette z wird mithilfe der Funktion int() in eine ganze Zahl verwandelt.
3.2.6 Übungsaufgaben
Übung »u_eingabe_inch«
Schreiben Sie ein Programm zur Eingabe und Umrechnung von beliebigen Inch-Werten in Zentimeter. Der Umrechnungsfaktor soll wie in der Übung »u_inch« aus Abschnitt 2.1.6 in einer Variablen gespeichert werden. Speichern Sie das Programm in der Datei u_eingabe_inch.py. Rufen Sie das Programm auf, und testen Sie es. Die Ausgabe kann zum Beispiel wie folgt aussehen:
3.5
3.5 Inch sind 8.89 cm
Übung »u_eingabe_gehalt«
Schreiben Sie in der Datei u_eingabe_gehalt.py ein Programm zur vereinfachten Berechnung der Steuer. Nach dem Aufruf des Programms wird man dazu aufgefordert, sein monatliches Gehalt einzugeben. Anschließend werden 18 % dieses Betrags berechnet und ausgegeben. Die Ausgabe kann zum Beispiel wie folgt aussehen:
2500
Es ergibt sich eine Steuer von 450.0 Euro