Python für den Unterricht an der KSBG

© fginfo.ksbg.ch, 2023 (work in progress)

Zum Einstieg in die faszinierende Welt von Python genügt eine kleine Teilmenge des grossen ökosystems von Python.
Diese soll hier als Ausgangspunkt für eigene Recherchen vorgestellt werden.

Siehe auch: docs.python.org

Die Code-Beispiele mit >>> sind in der interaktiven Python Shell ausgeführt worden.

Daten
Zur Lösung einer Aufgabe müssen in einem Algorithmus Daten verarbeitet werden. Diese werden als Variablen im Programm angelegt und bearbeitet. Variablen dienen der (Zwischen-)Speicherung von Eingaben, Ergebnissen, Messwerten und Konstanten (eine spezielle Form der Variable).
Einfache Datentypen
Name
type()
Beispiel Referenz
Ganzzahlen
<class 'int'>
42 w3schools.com
Gleitkommazahlen
<class 'float'>
4.2 w3schools.com
Zeichenketten
<class 'str'>
'Hallo du!'
"Hallo du!"
w3schools.com
Komplexe Datentypen
Listen
Eine Liste ist eine Datenstruktur, die in Python eingebaut ist und eine Sammlung von Elementen enthält.
Listen haben eine Reihe von wichtigen Eigenschaften:
  • Listenelemente sind in eckige Klammern eingeschlossen, wie hier [item1, item2, item3]
  • Listen sind geordnet, d. h., die Elemente in der Liste erscheinen in einer bestimmten Reihenfolge. Dies ermöglicht es uns, einen Index zu verwenden, um auf jedes Element zuzugreifen.
  • Listen sind veränderbar, d. h., Sie können nach der Erstellung einer Liste Elemente hinzufügen oder entfernen.
  • Listenelemente müssen nicht eindeutig sein.
    Die Duplizierung von Elementen ist möglich, da jedes Element seinen eigenen Platz hat und über den 0-basierten Index separat aufgerufen werden kann.
  • Die Elemente können unterschiedliche Datentypen haben: Sie können Strings, Integer und Objekte in derselben Liste kombinieren.
>>> fruits = ['orange', 'apple', 'pear', 'banana', 'kiwi', 'apple', 'banana']
>>> fruits[3]
'banana'
>>> fruits.count('apple')
2
fruits.count('tangerine')
0
>>> fruits.index('banana')
3
>>> fruits.index('banana', 4)  # Find next banana starting at position 4
6
>>> fruits.reverse()
>>> fruits
['banana', 'apple', 'kiwi', 'banana', 'pear', 'apple', 'orange']
>>> fruits.append('grape')
>>> fruits
['banana', 'apple', 'kiwi', 'banana', 'pear', 'apple', 'orange', 'grape']
>>> fruits.sort()
>>> fruits
['apple', 'apple', 'banana', 'banana', 'grape', 'kiwi', 'orange', 'pear']
>>> fruits.pop()
'pear'
Siehe auch: www.python.org
Sets
Eine Set ist eine Datenstruktur, die in Python eingebaut ist und eine Sammlung von Elementen enthält.
Sets ähneln in vielen Punkten den Listen, die wesentlichsten Unterschiede sind:
  • Set-Elemente sind in geschweifte Klammern eingeschlossen, wie hier {item1, item2, item3}
  • Set-Elemente müssen eindeutig sein.
    Die Duplizierung von Elementen ist nicht möglich.
    Wird ein Element mehrfach hinzugefügt, so existiert es nur einmal im Set.
  • Zur Erstellung von Mengen können geschweifte Klammern oder die Funktion set() verwendet werden. Hinweis: Um eine leere Menge zu erstellen, muss set() verwenden, nicht {}; letzteres erzeugt ein leeres Wörterbuch (siehe unten)
>>> basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
>>> print(basket)                      # zeigen, dass Duplikate entfernt wurden
{'orange', 'banana', 'pear', 'apple'}
>>> 'orange' in basket                 # schnelle Prüfung, ob ein Element in der Menge ist
True
>>> 'crabgrass' in basket
False

>>> # Demonstration von Mengenoperationen mit eindeutigen Buchstaben aus zwei Wörtern
...
>>> a = set('abracadabra')
>>> b = set('alacazam')
>>> a                                  # alle Buchstaben finden
{'a', 'r', 'b', 'c', 'd'}
>>> a - b                              # Buchstaben, die in a aber nicht in b vorkommen
{'r', 'd', 'b'}
>>> a | b                              # Buchstaben, die in a oder b oder beiden vorkommen
{'a', 'c', 'r', 'd', 'b', 'm', 'z', 'l'}
>>> a & b                              # Buchstaben, die in sowohl a als auch b
{'a', 'c'}
>>> a ^ b                              # Buchstaben, die in a oder b aber nicht in beiden vorkommen
{'r', 'd', 'b', 'm', 'z', 'l'}
Siehe auch: www.python.org
Wörterbuch

Ein weiterer nützlicher Datentyp, der in Python eingebaut ist, ist das Wörterbuch (englisch: Dictionary)

Ein Wörterbuch kann man sich als eine Menge von Schlüssel-Wert-Paaren vorzustellen, wobei die Schlüssel (innerhalb eines Wörterbuchs) eindeutig sein müssen.

  • Ein Paar geschweifte Klammern erzeugt ein leeres Wörterbuch: {}.
  • Eine kommagetrennte Liste von Schlüssel:Wert-Paaren innerhalb der geschweiften Klammern fügt dem Wörterbuch erste Schlüssel:Wert-Paare hinzu: tel = {'Paul': 4098, 'Fränze': 4139}
  • Die wichtigsten Operationen mit einem Wörterbuch sind das Speichern eines Wertes mit einem Schlüssel und das Extrahieren des Wertes mit dem Schlüssel. tel['Guido'] = 5544
  • Es ist auch möglich, ein Schlüssel:Wert-Paar mit del zu löschen.
  • Wenn einem Schlüssel gespeichert wird, der bereits in Gebrauch ist, wird der alte Wert, der mit diesem Schlüssel verbunden ist, überschrieben.
>>> tel = {'jack': 4098, 'sape': 4139}
>>> tel['guido'] = 4127
>>> tel
{'jack': 4098, 'sape': 4139, 'guido': 4127}
>>> tel['jack']
4098
>>> del tel['sape']
>>> tel['irv'] = 4127
>>> tel
{'jack': 4098, 'guido': 4127, 'irv': 4127}
>>> list(tel)
['jack', 'guido', 'irv']
>>> sorted(tel)
['guido', 'irv', 'jack']
>>> 'guido' in tel
True
>>> 'jack' not in tel
False
Siehe auch: www.python.org
Funktionen

Funktionen

Eine wichtige Funktion zur Kommunikation mit unserem Python Programm ist die eingebaute Funktion print('...'). Diese erzeugt entsprechend der übergebenen Argumente eine Ausgabe auf der Konsole.

Die zweite wichtige Funktion zur Kommunikation ist input('...'). Sie liest Eingaben aus der Konsole.

Ein Beispiel zum Ausprobieren:


Name = input('Wie lautet dein Name? ')
print(f'Hallo {Name}!\nSchön, dass du mit Python spielst.')        
            

Eigene Funktionen

Eigene Funktionen

Funktionen werden durch das Schlüsselwort 'def', den Funktionsnamen, '('')' und einen ':' eingeleitet. Alle eingerückten Zeilen gehören zu dieser Funktionsdefinition:

def Sage3MalHallo():
    print('Hallo World!')
    print('Hallo World!')
    print('Hallo World!')
                
Funktionen können Argumente und einen Rückgabewert (return Wert) haben:

def BildeDieSumme(Wert1, Wert2):
    return Wert1 + Wert2
            
Sollen Funktionen Variablen aus dem Hauptprogramm ändern, so müssen diese am Anfang der Funktion mit 'global' bekannt gegeben werden. Ohne dieses 'global' werden die Variablen nur lokal in der Funktion verwendet:

Zaehler = 0

def ErhoeheDenZaehler(Wert):
    global Zaehler
    Zaehler = Zaehler + Wert

ErhoeheDenZaehler(15)
print(f'Zähler: {Zaehler}')   # Zähler: 15
            
Bibliotheken und deren Funktionen
Viel Programmierarbeit ist bereits von der Community geleistet worden. Diese stellt und vieles davon als einfach verwendbare Bibliotheken zur Verfügung. Wir können sie mit
import BIBLIOTHEK as b
in unserem Programm einbinden, mit dem Alias 'b' versehen und nutzen:
Wert = b.GIBMIREINENWERT()
Random
import random
Random wir zur Erzeugung (fast) zufälliger Zahlen verwendet.
Rückgabewert Funktion Kommentar Referenz
int
randint(a:int, b:int)
x ε G mit x ε [a, b) docs.python.org
float
random()
x ε R mit ε [0, 1) docs.python.org
int
randrange(start:int, stop:int, step:int)
x ε G mit ε [0, 1) docs.python.org
Math
Math
Sprache
Operatoren
+, -, *, /, **, //, %
and, or, not
in
Schlüsselworte
import, import from, def
Steuerstrukturen
if, elif, else, for, break, continue