Thomas Theis. Einstieg in Python. Galileo Press



Ähnliche Dokumente
1 Einführung Erste Schritte Programmierkurs Datentypen Weiterführende Programmierung

Michael Weigend. Python GE-PACKT

Michael Weigend. Python GE-PACKT. 5. Auflage

Thomas Theis. Einstieg in Python 3. e A. .,. e. Gal i leo Press

Einstieg in PHP 5.3 und MySQL 5.1

Thomas Theis PHP4. Webserver-Programmierung für Um- und Einsteiger. Galileo Press

Einstieg in VBA mit Excel Galileo Press

Programmieren. 10. Tutorium 4./ 5. Übungsblatt Referenzen

DAS EINSTEIGERSEMINAR PHP 5.3 LERNEN ÜBEN ANWENDEN. Oliver Leiss Jasmin Schmidt. 3. Auflage

Java Einführung Operatoren Kapitel 2 und 3

Kapitel 6,»Objektorientierte Programmierung«, widmet sich der objektorientierten Programmierung mit Python.

Multimedia im Netz Wintersemester 2011/12

<Trainingsinhalt> C# programmieren

PHP Programmierung. Seminarunterlage. Version 1.02 vom

Inhaltsverzeichnis. 1 Hallo 13

jetzt lerne ich PHP 5 & MySQL 4.1 Der schnelle Einstieg in die objektorientierte

Python. Grundlagen und Praxis. Peter Walerowski ADDISON-WESLEY. An imprint of Pearson Education

Auf einen Blick. Vorwort Einführung Sprachgrundlagen von VBScript Objektorientierte Programmierung mit. dem Windows Script Host 115

Leseprobe - Kapitel 1: Thomas Theis. Einstieg in Python

Inhaltsverzeichnis Einleitung xi Kapitel 1: Die Vorbereitung aufs Abenteuer

Helmut Dittrich Jürgen Mellenthin PHP 4-Workshop

Einstieg in VBA mit Excel Galileo Press

Inhaltsverzeichnis. Apps für Android entwickeln

Roberto lerusalimschy. Programmieren mit Lua

Objektorientierte Programmierung in Java

Prozedurale Datenbank- Anwendungsprogrammierung

Vorkurs C++ Programmierung

Andre Willms. Spielend C++ lernen. oder wie man Käfern Beine macht. Galileo Press

Django - ein Python Web-Framework

Ulla Kirch Peter Prinz C+ + Lernen und professionell anwenden. mitp

Martin Kästner Perl fürs Web

Inhalt. 1 PHP-Programmierkurs 23. Einführung... 17

Alexander Niemann. Das Einsteigerseminar Objektorientierte Programmierung in Java. bhv

INHALTSVERZEICHNIS EINFÜHRUNG IN DAS INTERNET...8

Kontrollstrukturen - Universität Köln

Variablen & erweiterte Aktionen nutzen

IDA ICE - Konvertieren und Importieren von mit TRY_Effekte_aufpraegen.exe erzeugten Datensätzen

1 Installation QTrans V2.0 unter Windows NT4

tentoinfinity Apps 1.0 EINFÜHRUNG

FRANZIS PC+ELEKTRONIK. Jochen Ferger AI1 AI2 AI3 AI4. Masse 5V W «км. AOut PCF8591 SCL SDA. MSR mit USB und Java. Mit 152 Abbildungen

1 Installation von MySQL Installation von PHP Wiederholungsfragen zu Kapitel

VBA-Programmierung WS 2008/09

Aktuelles Datum in die markierte/aktive Zelle einfügen Ganzes Tabellenblatt markieren Nächstes Tabellenblatt der Arbeitsmappe aktivieren

Webseiten entwickeln mit ASP.NET

Tipps und Kniffe für MS Excel Wie Excel denkt und wie wir es sinnvoll nutzen können

Inhaltsverzeichnis. Teil I Erste Schritte. 1 Einleitung Teil II Grundlagen von VBA. 2 Die ersten VBA-Prozeduren erstellen...

Nadine Edelmann // Klaudia Fernowka // Magdalena Kierat // Anne Schwertfeger

Abschlussbericht. Einführung in Python. Gruppe: 1 Autoren: Thomas Merkel (19868) David Höss (19182) Stefan Bisinger (19227)

Andy Hunt. Programmieren lernen. mit Minecraft-Plugins. dpunkt.verlag

VBA-Programmierung: Zusammenfassung

2.1 Visual C Express installieren Visual C Express starten Visual C Express registrieren...

Musterlösung für Schulen in Baden-Württemberg. Windows Basiskurs Windows-Musterlösung. Version 3. Stand:

Teil I Installation und erste Schritte 19

1 Einführung PHP-Programmierkurs Daten senden und auswerten Datenbanken mit MySQL Objektorientierung in PHP 251

Microsoft Excel Schulungen

Bedienungsanleitung CAD-KAS Reklamationserfassung. Einen neuen Datensatz anlegen. Klicken Sie auf das + Symbol, um einen neuen Datensatz anzulegen.

Inhaltsverzeichnis. 1 Einleitung 11

Über den Autor 7. Teil I Los geht s mit Java für die Android-Entwicklung 25. Kapitel 1 Alles über Java und Android 27

Clemens Gull. Joomlal-Extensions. mit PHP entwickeln. Mit 322 Abbildungen

O REILLY. Oracle PL/SQL Programmierung Paris - - Steven Feuerstein. mit Bill Pribyl. Deutsche Übersetzung von Dorothea Reder 2.

Hello World. Javakurs 2014, 1. Vorlesung. Sebastian Schuck. basierend auf der Vorlage von Arne Kappen. wiki.freitagsrunde.org. 3.

Einführung in den Reportgenerator

Einstieg in Visual C# 2010 Galileo Press

Datenbank-Verschlüsselung mit DbDefence und Webanwendungen.

PHP Kurs Online Kurs Analysten Programmierer Web PHP

Was Sie bald kennen und können

INSTALLATION. Voraussetzungen

Prinzipien der Softwareentwicklung S. Strahringer

Programmieren in Java

Einführung in PHP. (mit Aufgaben)

Einstieg in PHP 5 und MySQL 5

Python Programmierung. Dipl.-Ing.(FH) Volker Schepper

Lua Grundlagen Einführung in die Lua Programmiersprache

Thomas Theis. Einstieg in JavaScript

VB.net Programmierung und Beispielprogramm für GSV

Inhaltsverzeichnis. xiii

CMS.R. Bedienungsanleitung. Modul Cron. Copyright CMS.R Revision 1

Inhaltsverzeichnis VII

Verschlüsseln von USB-Sticks durch Installation und Einrichtung von TrueCrypt

Serviceanleitung. Software Update. TRACK-Guide Bewahren Sie diese Serviceanleitung für künftige Verwendung auf.

Im Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können.

ARAkoll 2013 Dokumentation. Datum:

Aufgaben HTML Formulare. Prof. Dr. rer. nat. Claus Brell, Wirtschaftsinformatik, Statistik

PHP 5.4 ISBN Stephan Heller, Andreas Dittfurth 1. Ausgabe, September Grundlagen zur Erstellung dynamischer Webseiten GPHP54

Umstellung PC-VAB auf S PA-Zahlungsverkehr

Installationsanleitung WordPress auf greenwebhosting

Java 6 lernen mit Eclipse

Inhaltsverzeichnis. Fritz Jobst. Programmieren in Java ISBN: Weitere Informationen oder Bestellungen unter

5.2 Neue Projekte erstellen

Programmieren in C. Macros, Funktionen und modulare Programmstruktur. Prof. Dr. Nikolaus Wulff

DI GÜNTHER GRUND INHALT I

Funktionale Programmierung mit Haskell

Python. Grundlagen, fortgeschrittene Programmierung und Praxis

Arbeiten mit einem lokalen PostgreSQL-Server

Grundlagen der Informatik 2

Inhaltsverzeichnis. Einleitung 11. Modul 1 Die erste Datenbank 15. Modul 2 Tabellen in der Entwurfsansicht definieren 21. Inhaltsverzeichnis

1Schnelleinstieg 14. 2Wie aus einer einfachen Textdatei. 3 Wie man eigene Programme erstellt 30. Inhaltsverzeichnis. ein Programm wird 20

Problem crazytrickler unter Windows 8:

Transkript:

Thomas Theis Einstieg in Python Galileo Press

5 Inhalt Inhalt 1 Einführung 17 1.1 Vorteile von Python 17 1.2 Verbreitung von Python 18 1.3 Aufbau des Buchs 18 1.4 Übungen 20 1.5 Installation von Python unter Windows 20 1.6 Installation von Python unter Ubuntu Linux 21 1.7 Installation von Python unter OS X 21 2 Erste Schritte 23 2.1 Python als Taschenrechner 23 2.1.1 Eingabe von Berechnungen 23 2.1.2 Addition, Subtraktion und Multiplikation 24 2.1.3 Division, Ganzzahldivision und Modulo 24 2.1.4 Rangfolge und Klammern 25 2.1.5 Variablen und Zuweisung 26 2.2 Erstes Programm 28 2.2.1 Hallo Welt 28 2.2.2 Eingabe eines Programms 28 2.3 Speichern und Ausführen 29 2.3.1 Speichern 29 2.3.2 Ausführen unter Windows 30 2.3.3 Ausführen unter Ubuntu Linux und unter OS X 32 2.3.4 Kommentare 33 2.3.5 Verkettung von Ausgaben 34 2.3.6 Lange Ausgaben 34

3 Programmierkurs 37 3.1 Ein Spiel programmieren 37 3.1.1 Das fertige Spiel 37 3.1.2 Der Weg zum fertigen Spiel 37 3.1.3 Mögliche Erweiterungen 38 3.2 Variablen und Operatoren 38 3.2.1 Berechnung und Zuweisung 38 3.2.2 Eingabe einer Zeichenkette 39 3.2.3 Eingabe einer Zahl 39 3.2.4 Spiel, Version mit Eingabe 41 3.2.5 Zufallszahlen 42 3.3 Verzweigungen 44 3.3.1 Vergleichsoperatoren 44 3.3.2 Einfache Verzweigung 44 3.3.3 Spiel, Version mit Bewertung der Eingabe 45 3.3.4 Mehrfache Verzweigung 47 3.3.5 Logische Operatoren 48 3.3.6 Mehrere Vergleichsoperatoren 50 3.3.7 Spiel, Version mit genauer Bewertung der Eingabe 51 3.3.8 Rangfolge der Operatoren 52 3.4 Schleifen 53 3.4.1 for-schleife 54 3.4.2 Schleifenabbruch mit»break«54 3.4.3 Geschachtelte Kontrollstrukturen 55 3.4.4 Spiel, Version mit for-schleife und Abbruch 56 3.4.5 for-schleife mit»rangeq«58 3.4.6 Spiel, Version mit»range()«61 3.4.7 while-schleife 62 3.4.8 Spiel, Version mit while-schleife und Zähler 63 3.5 Entwicklung eines Programms 65 3.6 Fehlerund Ausnahmen 66 3.6.1 Basisprogramm 66 3.6.2 Fehler abfangen 67 3.6.3 Eingabe wiederholen 69 3.6.4 Exkurs. Schleifenfortsetzung mit»continue«70 3.6.5 Spiel, Version mit Ausnahmebehandlung 71 6

3.7 Funktionen und Module 73 3.7.1 Einfache Funktionen 74 3.7.2 Funktionen mit einem Parameter 75 3.7.3 Funktionen mit mehreren Parametern 77 3.7.4 Funktionen mit Rückgabewert 77 3.7.5 Spiel, Version mit Funktionen 78 3.8 Das fertige Spiel 80 4 Datentypen 85 4.1 Zahlen 85 4.1.1 Ganze Zahlen 85 4.1.2 Zahlen mit Nachkommastellen 87 4.1.3 Operator" 88 4.1.4 Rundung und Konvertierung 88 4.1.5 Modul»math«90 4.1.6 Bitoperatoren 91 4.1.7 Brüche 94 4.2 Zeichenketten 97 4.2.1 Eigenschaften 97 4.2.2 Operatoren 98 4.2.3 Operationen 99 4.2.4 Funktionen 102 4.2.5 Umwandlung von einer Zeichenkette in eine Zahl 105 4.2.6 Umwandlung von einer Zahl in eine Zeichenkette 107 4.2.7 Datentyp»bytes«108 4.3 Listen 109 4.3.1 Eigenschaften 109 4.3.2 Operatoren 111 4.3.3 Funktionen und Operationen 112 4.4 Tupel 115 4.4.1 Eigenschaften 115 4.4.2 Operationen 116 4.4.3 Tupel entpacken 117 7

4.5 Dictionarys 120 4.5.1 Eigenschaften 120 4.5.2 Funktionen 121 4.5.3 Views 122 4.5.4 Vergleiche 124 4.6 Mengen, Sets 125 4.6.1 Eigenschaften 125 4.6.2 Funktionen 126 4.6.3 Operatoren 128 4.6.4 Frozenset 130 4.7 Wahrheitswerte und Nichts 131 4.7.1 Wahrheitswerte True und False 131 4.7.2 Nichts, None 134 4.8 Referenz, Identität und Kopie 136 4.8.1 Referenz und Identität 136 4.8.2 Ressourcen sparen 138 4.8.3 Objekte kopieren 139 5 Weiterführende Programmierung 141 5.1 Allgemeines 141 5.1.1 Kombinierte Zuweisungsoperatoren 141 5.1.2 Programmzeile in mehreren Zeilen 143 5.1.3 Eingabe mit Hilfestellung 144 5.1.4 Anweisung»pass«145 5.1.5 Funktionen»eval()«und»exec()«147 5.2 Ausgabe und Formatierung 148 5.2.1 Funktion»print()«148 5.2.2 Formatierte Ausgabe mit»format()«151 5.2.3 Formatierte Ausgabe wie in C 155 5.3 Conditional Expression 156 5.4 Iterierbare Objekte 157 5.4.1 Funktion»zip()«157 5.4.2 Funktion»map()«158 5.4.3 Funktion»filterQ«160 o

5.5 List Comprehension 161 5.6 Fehler und Ausnahmen 163 5.6.1 Allgemeines 163 5.6.2 Syntaxfehler 163 5.6.3 Laufzeitfehler 165 5.6.4 Logische Fehler und Debugging 165 5.6.5 Fehler erzeugen 170 5.6.6 Unterscheidung von Ausnahmen 171 5.7 Funktionen 172 5.7.1 Variable Anzahl von Parametern 173 5.7.2 Benannte Parameter 174 5.7.3 Voreinstellung von Parametern 175 5.7.4 Mehrere Rückgabewerte 176 5.7.5 Übergabe von Kopien und Referenzen 177 5.7.6 Lokal, global 180 5.7.7 Lambda-Funktion 181 5.7.8 Funktionsname als Parameter 182 5.8 Eingebaute Funktionen 183 5.8.1 Funktionen»max()«,»min()«und»sum()«185 5.8.2 Funktionen»chr()<< und»ord()<< 186 5.8.3 Funktionen»reversed()«und»sorted()«187 5.9 Statistikfunktionen 188 5.10 Eigene Module 190 5.10.1 Eigene Module erzeugen 190 5.10.2 Eigene Module verwenden 190 5.11 Parameter der Kommandozeile 192 5.11.1 Übergabe von Zeichenketten 192 5.11.2 Übergabe von Zahlen 193 5.11.3 Beliebige Anzahl von Parametern 193 6 Objektorientierte Programmierung 195 6.1 Was ist OOP? 195 6.2 Klassen, Objekte und eigene Methoden 196 9

6.3 Konstruktor und Destruktor 198 6.4 Besondere Methoden 200 6.5 Operatormethoden 201 6.6 Referenz, Identität und Kopie 202 6.7 Vererbung 204 6.8 Mehrfachvererbung 207 6.9 Enumerationen 209 6.10 Spiel, objektorientierte Version 211 7 Verschiedene Module 215 7.1 Datum und Zeit 215 7.1.1 Spielen mit Zeitangabe 215 7.1.2 Aktuelle Zeit ausgeben 215 7.1.3 Zeitangabe erzeugen 219 7.1.4 Mit Zeitangaben rechnen 220 7.1.5 Programm anhalten 222 7.1.6 Spiel, Version mit Zeitmessung 223 7.1.7 Spiel, objektorientierte Version mit Zeitmessung 225 7.2 Modul»collections«226 7.3 Multithreading 228 7.3.1 Wozu dient Multithreading? 229 7.3.2 Erzeugung eines Threads 229 7.3.3 Identifizierung eines Threads 230 7.3.4 Gemeinsame Objekte 232 7.3.5 Threads und Exceptions 233 7.4 Reguläre Ausdrücke 234 7.4.1 Suchen von Teiltexten 235 7.4.2 Ersetzen von Teiltexten 239 7.5 Audio-Ausgabe 241 10

8 Dateien 243 8.1 Dateitypen 243 8.2 Öffnen und Schließen einer Datei 244 8.3 Sequentielle Dateien 245 8.3.1 Sequentielles Schreiben 245 8.3.2 Sequentielles Lesen 247 8.3.3 CSV-Datei schreiben 252 8.3.4 CSV-Datei lesen 254 8.4 Dateien mit festgelegter Struktur 256 8.4.1 Formatiertes Schreiben 256 8.4.2 Lesen an beliebiger Stelle 258 8.4.3 Schreiben an beliebiger Stelle 259 8.5 Serialisierung 261 8.5.1 Objekte in Datei schreiben 261 8.5.2 Objekte aus Datei lesen 263 8.6 Bearbeitung mehrerer Dateien 264 8.7 Informationen über Dateien 266 8.8 Dateien und Verzeichnisse verwalten 267 8.9 Beispielprojekt Morsezeichen 269 8.9.1 Morsezeichen aus Datei lesen 269 8.9.2 Ausgabe auf dem Bildschirm 271 8.9.3 Ausgabe mit Tonsignalen 272 8.10 Spiel, Version mit Highscore-Datei 274 8.10.1 Eingabebeispiel 274 8.10.2 Aufbau des Programms 275 8.10.3 Code des Programms 275 8.11 Spiel, objektorientierte Version mit Highscore-Datei 280 9 Internet 285 9.1 Laden und Senden von Internetdaten 285 9.1.1 Daten lesen 286 9.1.2 Daten kopieren' 289 11

9.1.3 Daten senden per GET 289 9.1.4 Daten senden per POST 293 9.2 Webserver-Programmierung 296 9.2.1 Erstes Programm 296 9.2.2 Beantworten einer Benutzereingabe 298 9.2.3 Formularelemente mit mehreren Werten 301 9.2.4 Typen von Formularelementen 303 9.3 Browser aufrufen 309 9.4 Spiel, Version für das Internet 309 9.4.1 Eingabebeispiel 309 9.4.2 Aufbau des Programms 311 9.4.3 Code des Programms 312 10 Datenbanken 319 10.1 Aufbau von Datenbanken 319 10.2 SQLite 320 10.2.1 Datenbank, Tabelle und Datensätze 320 10.2.2 Daten anzeigen 323 10.2.3 Daten auswählen, Operatoren 324 10.2.4 Operator»UKE«326 10.2.5 Sortierung der Ausgabe 328 10.2.6 Auswahl nach Eingabe 329 10.2.7 Datensätze ändern 331 10.2.8 Datensätze löschen 333 10.3 SQLite auf dem Webserver 334 10.4 MySQL 10.4.1 XAMPP und Connector/Python 337 10.4.2 Datenbank erzeugen 337 10.4.3 Tabelle anlegen 338 10.4.4 Datensätze anlegen 340 10.4.5 Daten anzeigen 341 10.5 Spiel, Version mit Highscore-Datenbank 342 10.6 Spiel, objektorientierte Version mit Highscore-Datenbank 345 336 12

11 Benutzeroberflächen 347 11.1 Einführung 347 11.1.1 Eine erste GUI-Anwendung 347 11.1.2 Ändern von Eigenschaften 349 11.2 Widget-Typen 351 11.2.1 Anzeigefeld, Label 351 11.2.2 Einzeilige Textbox, Entry 354 11.2.3 Versteckte Eingabe 356 11.2.4 Mehrzellige Textbox, Text 358 11.2.5 Scrollende Textbox, ScrolledText 360 11.2.6 Listbox mit einfacher Auswahl 361 11.2.7 Listbox mit mehrfacher Auswahl 363 11.2.8 Scrollbar, scrollende Widgets 365 11.2.9 Radiobuttons zur Auswahl, Widget-Variablen 367 11.2.10 Radiobuttons zur Auswahl und Ausführung 369 11.2.11 Checkbuttons zur mehrfachen Auswahl 371 11.2.12 Schieberegler, Scale 373 11.2.13 Mausereignisse 375 11.2.14 Tastaturereignisse 379 11.3 Geometrische Anordnung von Widgets 381 11.3.1 Frame-Widget, Methode»pack()«381 11.3.2 Ein einfacher Taschenrechner 384 11.3.3 Methode»grid()<< 388 11.3.4 Methode»place()«, absolute Koordinaten 390 11.3.5 Methode»place()«, relative Koordinaten 391 11.3.6 Absolute Veränderung von Koordinaten 393 11.3.7 Relative Veränderung von Koordinaten 395 11.4 Menüs, Messageboxen und Dialogfelder 398 11.4.1 Menüleisten 398 11.4.2 Kontextmenüs 403 11.4.3 Messageboxen 407 11.4.4 Eigene Dialogfelder 411 11.4.5 Ausführung verhindern 413 11.5 Spiel, GUI-Version 414 13

12 Neues in Python 3 421 12.1 Neue und geänderte Eigenschaften 421 12.1.1 Auffällige Änderungen 421 12.1.2 Weitere Änderungen 422 12.2 Konvertierung von Python 2 zu Python 3 423 13 RaspberryPi 425 13.1 Einzelteile und Installation 425 13.1.1 Einzelteile 425 13.1.2 Sicherheit und Schäden 427 13.1.3 Zusammenbau 428 13.1.4 Installation 429 13.1.5 Update 429 13.1.6 WLAN und Internet 430 13.2 Elektronische Schaltungen 430 13.2.1 Gleichspannungs-Stromkreis 430 13.2.2 Spannung ist Information 431 13.2.3 Bauelemente und Ausrüstung 431 13.2.4 Widerstände 432 13.3 Aufbau des GPIO-Anschlusses 434 13.4 Leuchtdiode 436 13.4.1 Schaltung 436 13.4.2 LED ein-und ausschalten 437 13.4.3 LED blinken lassen 437 13.4.4 LED blinkt Morsezeichen 438 13.5 Taster 439 13.5.1 Schaltung 439 13.5.2 Einfache Prüfung des Tasters 440 13.5.3 Verbesserte Prüfung des Tasters 441 13.6 Messwerte ermitteln 442 13.6.1 Schaltung 442 13.6.2 Programm zum Ermitteln der Messwerte 443 13.6.3 Vorbereitung 443 14

13.7 Messwerte in Datenbank speichern 444 13.7.1 Datenbank erstellen 445 13.7.2 Messen und Speichern 445 13.7.3 Anzeige der Daten 447 Anhang 449 A.1 Installation von XAMPP 449 A.l.l Installation von XAMPP unter Windows 449 A.1.2 Installation von XAMPP unter Ubuntu Linux 450 A.1.3 Installation von XAMPP unter OS X 451 A.2 UNIX-Befehle 451 A.2.1 Inhalteines Verzeichnisses 452 A.2.2 Verzeichnis anlegen, wechseln und löschen 452 A.2.3 Datei kopieren, verschieben und löschen 453 A.3 Lösungen 454 A.3.1 Lösungen zu Kapitel 2 454 A.3.2 Lösungen zu Kapitel 3 455 A.3.3 Lösungen zu Kapitel 5 461 Index 463 15