Kurs 23720
Thomas Irgang
Erste Schritte mit Python
Kurs 23720
Thomas Irgang
Erste Schritte mit Python
Ziele
Erste Schritte mit Python
  • Was dieser Kurs kann:
    • Bei den ersten Schritten mit Python helfen
    • Einige Grundlagen vermitteln
    • Auf Quellen zum Selbststudium hinweisen
  • Was dieser Kurs nicht kann:
    • zum Python-Programmierer ausbilden
Inhalte
Erste Schritte mit Python
  • Tag 1: Grundlagen und erste Schritte
  • Tag 2: Daten
  • Tag 3: Bibliotheken und Funktionen
  • Tag 4: Klassen und Programme
Tag 1
Erste Schritte mit Python
  • Computer Grundlagen I
  • Arbeitsumgebung einrichten
  • Python Grundlagen I
  • Projekt 1: Schachbrettaufgabe
  • Quellen zum Selbststudium
Computer Grundlagen
Erste Schritte mit Python
  • Computer Grundlagen
  • Wie arbeitet ein Computer?
Wikipedia: Computer
Computer Grundlagen
Ein Computer [...] ist ein Gerät, das mittels programmierbarer Rechenvorschriften Daten verarbeitet.
Computer sind heute in allen Bereichen des täglichen Lebens vorzufinden, meistens in spezialisierten Varianten, die auf einen vorliegenden Anwendungszweck zugeschnitten sind. So dienen integrierte Kleinstcomputer [...] zur Steuerung von Alltagsgeräten wie Waschmaschinen [...]; in modernen Automobilen dienen sie [...] zur Anzeige von Fahrdaten und steuern in „Fahrassistenten“ diverse Manöver selbst.
https://de.wikipedia.org/wiki/Computer
Computer Architektur
Computer Grundlagen
Von-Neumann-Architektur
Computer Grundlagen
  • CPU:
    • Rechenwerk (ALU)
    • Steuerwerk (Control Unit)
  • Bus System:
    • Speicherwerk
      (RAM, Festplatte)
    • I/O Unit
      (Tastatur, Bildschirm)
Computer Grundlagen
Erste Schritte mit Python
  • Computer Grundlagen
  • Wie arbeitet ein Computer?
Was ist ein Programm?
Wie arbeitet ein Computer?
  • lineare Liste von Befehlen
  • auf dem persistenten Speicher (SSD, HDD) abgelegt
  • verarbeiten Daten von Eingabegeräten oder dem Speicher

								from multiprocessing import cpu_count
								
								# get the number of logical cpu cores
								n_cores = cpu_count()
								# report the number of logical cpu cores
								print(f'Number of Logical CPU cores: {n_cores}')
							
Befehle
Wie arbeitet ein Computer?
  • CPU verarbeitet Befehle
  • Befehle werden aus dem RAM ausgeführt
  • Befehle werden linear abgearbeitet
  • Befehle haben eine geringe Komplexität (Addition, Subtraktion, Vergleich)
Programmausführung
Wie arbeitet ein Computer?
  • CPU hat einen Status (Register, ...)
  • Befehle werden ins RAM geladen
  • Programm Counter (PC) zeigt auf den aktuellen Befehl
  • Befehle manipulieren Daten/Status
  • Entscheidungen durch Sprungbefehle
Tag 1
Erste Schritte mit Python
  • Computer Grundlagen I
  • Arbeitsumgebung einrichten
  • Python Grundlagen I
  • Projekt 1: Schachbrettaufgabe
  • Quellen zum Selbststudium
Online IDEs
Arbeitsumgebung einrichten
  • Integrated Development Environment (IDE)
    Integrierte Entwicklungsumgebung
  • Online IDEs
    bieten einen schnellen Einstieg
    sind aber stark eingeschränkt
Online IDEs: Online Python
Arbeitsumgebung einrichten
Installation: Python 3
Arbeitsumgebung einrichten
Installation: Visual Studio Code
Arbeitsumgebung einrichten
  • Download:
    https://code.visualstudio.com/Download
Tag 1
Erste Schritte mit Python
  • Computer Grundlagen I
  • Arbeitsumgebung einrichten
  • Python Grundlagen I
  • Projekt 1: Schachbrettaufgabe
  • Quellen zum Selbststudium
Python Grundlagen
Erste Schritte mit Python
  • Der Python Interpreter
  • Variablen, Zahlen und Texte
  • Schleifen
Der Python Interpreter
Python Grundlagen
  • Python ist eine interpretierte Sprache
  • Python bietet eine interaktive Konsole
Variablen, Zahlen und Texte
Erste Schritte mit Python
  • Der Python Interpreter
  • Variablen, Zahlen und Texte
  • Schleifen
Variablen, Zahlen und Texte
Python Grundlagen
  • Variablen sind "Kisten für Werte"
  • Dynamische Typisierung:
    Kisten können beliebige Werte aufnehmen

								>>> a = 5
								>>> b = 6
								>>> a + b
								11
								>>> a = 'Hallo'
							
Variablen, Zahlen und Texte
Python Grundlagen
  • Variablen können Text aufnehmen
  • print() schreibt Text auf die Konsole
    Python Dokumentation
  • Python unterstützt Format-Strings
    um Variablen in Text einzubetten

								>>> name = "Max"
								>>> text = f"Hallo {name}!"
								>>> print(text)
								Hallo Max!
							
Variablen, Zahlen und Texte
Erste Schritte mit Python
  • Der Python Interpreter
  • Variablen, Zahlen und Texte
  • Schleifen
Schleifen
Python Grundlagen
  • Schleifen wiederholen Befehle
  • Schleifen iterieren über Listen
  • Elemente können verwendet werden
  • range(start, stop[, step]) erzeugt eine List von Zahlen
    Python Dokumentation
  • Befehle in der Schleife müssen eingerückt werden

								>>> list(range(0, 10))
								[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
								>>> 
								>>> summe = 0
								>>> for i in range(0, 10):
								...     summe += i
								... 
								>>> print("Summe:", summe)
								Summe: 45
							
Tag 1
Erste Schritte mit Python
  • Computer Grundlagen I
  • Arbeitsumgebung einrichten
  • Python Grundlagen I
  • Projekt 1: Schachbrettaufgabe
  • Quellen zum Selbststudium
Wikipedia: Sissa ibn Dahir
Projekt 1: Schachbrettaufgabe
[...] gewährte er dem Brahmanen einen freien Wunsch. Dieser wünschte sich Weizenkörner: Auf das erste Feld eines Schachbretts wollte er ein Korn, auf das zweite Feld das Doppelte, also zwei, auf das dritte wiederum die doppelte Menge, also vier und so weiter. Der König lachte und war gleichzeitig erbost über die vermeintliche Bescheidenheit des Brahmanen.
[...] Der Vorsteher der Kornkammer meldete nach mehreren Tagen ununterbrochener Arbeit, dass so viel Weizen im ganzen Reich nicht aufgebracht werden könne. [...]
https://de.wikipedia.org/wiki/Sissa_ibn_Dahir
Aufgabe
Projekt 1: Schachbrettaufgabe
  • Teil 1: Berechne die Anzahl der Weizenkörner
  • Teil 2: Stelle die Entwicklung graphisch dar
    matplotlib
pow
Projekt 1: Schachbrettaufgabe

								>>> pow(2,1)
								2
								>>> pow(2,2)
								4
								>>> pow(2,3)
								8
								>>> pow(10,3)
								1000
							
Gruppenarbeit
Projekt 1: Schachbrettaufgabe
Lösung
Projekt 1: Schachbrettaufgabe

								summe = 0

								for feld_nr in range(0,64):
									anzahl_auf_feld = pow(2, feld_nr)
									print(f"Anzahl der Weizenkörner auf Feld {feld_nr}:", anzahl_auf_feld)
									summe += anzahl_auf_feld

								print("Anzahl der Weizenkörner: ", summe)

								# Alternativ

								print("Anzahl der Weizenkörner: ", pow(2, 64) - 1)
							
Lösung
Projekt 1: Schachbrettaufgabe

								Anzahl der Weizenkörner auf Feld 0: 1
								Anzahl der Weizenkörner auf Feld 1: 2
								Anzahl der Weizenkörner auf Feld 2: 4
								Anzahl der Weizenkörner auf Feld 3: 8
								...
								Anzahl der Weizenkörner auf Feld 63: 9223372036854775808
								Anzahl der Weizenkörner:  18446744073709551615

								Anzahl der Weizenkörner:  18446744073709551615
							
Dualsystem (Binärsystem)
Datenkodierung
  • Wertigkeit der Stellen: $2^i$
  • $101_2 $
    $= 1 * 4 + 0 * 2 + 1 * 1 $
    $= 5_{10}$
Aufgabe
Projekt 1: Schachbrettaufgabe
  • Teil 1: Berechne die Anzahl der Weizenkörner
  • Teil 2: Stelle die Entwicklung graphisch dar
    matplotlib
Listen
Projekt 1: Schachbrettaufgabe
  • Python kennt einen Listen-Datentyp: []
  • Listen können Reihen von Werten aufnehmen

								>>> a = []
								>>> a.append(5)
								>>> a.append(6)
								>>> a.append(7)
								>>> a
								[5, 6, 7]
							
Bibliotheken
Projekt 1: Schachbrettaufgabe
  • sind wiederverwendbare Programmteile
  • können in eigenen Programmen verwendet werden
  • werden mit "pip" installiert
  • werden mit "import" verwendet
matplotlib
Projekt 1: Schachbrettaufgabe
  • matplotlib kann Daten graphisch darstellen
  • matplotlib
  • Installation: "pip install matplotlib"

								>>> import matplotlib.pyplot as plt
								>>> x = range(1,10)
								>>> fig, ax = plt.subplots()
								>>> ax.plot(x, x)
								[]
								>>> plt.show()
							
Gruppenarbeit
Projekt 1: Schachbrettaufgabe
Lösung
Projekt 1: Schachbrettaufgabe

								import matplotlib.pyplot as plt

								werte = []

								for feld_nr in range(0,64):
									anzahl_auf_feld = pow(2, feld_nr)
									werte.append(anzahl_auf_feld)

								print("Werte:", werte)

								x = range(0,64)
								fig, ax = plt.subplots()
								ax.plot(x, werte)
								plt.show()
							
Lösung
Projekt 1: Schachbrettaufgabe

								Werte: [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536, 131072, 262144, 524288, 1048576, 2097152, 4194304, 8388608, 16777216, 33554432, 67108864, 134217728, 268435456, 536870912, 1073741824, 2147483648, 4294967296, 8589934592, 17179869184, 34359738368, 68719476736, 137438953472, 274877906944, 549755813888, 1099511627776, 2199023255552, 4398046511104, 8796093022208, 17592186044416, 35184372088832, 70368744177664, 140737488355328, 281474976710656, 562949953421312, 1125899906842624, 2251799813685248, 4503599627370496, 9007199254740992, 18014398509481984, 36028797018963968, 72057594037927936, 144115188075855872, 288230376151711744, 576460752303423488, 1152921504606846976, 2305843009213693952, 4611686018427387904, 9223372036854775808]
							
Tag 1
Erste Schritte mit Python
  • Computer Grundlagen I
  • Arbeitsumgebung einrichten
  • Python Grundlagen I
  • Projekt 1: Schachbrettaufgabe
  • Quellen zum Selbststudium
Quellen zum Selbststudium (Deutsch)
Erste Schritte mit Python
Quellen zum Selbststudium (Englisch)
Erste Schritte mit Python
Erste Schritte mit Python
Tag 2