Slides Thema 3
Boolsche Algebra und Zeichenketten
⚡Anwesenheit bestätigen
📖 Kapitel 3 Operatoren und 5 Zeichenketten
Lernziele
Ich kann ...
- boolsche Operationen anwenden und vereinfachen.
- Zeichenketten erstellen, bearbeiten und formatieren.
- mit der IDE Ordner und Skripte erstellen, ausführen und debuggen.
Herkunft Boolean
- Boolean sind benannt nach Georg Boole (1815)
- Er gründete die moderne mathematische Logik
Seinen Arbeiten verdanken wir den Computer
Boolsche Algebra
Im Programmieren sind wir immer mit logischen Problemstellungen konfrontiert.
Boolsche Algebra hilft uns diese Probleme zu lösen.
Beispiel Schaltkreis
Anwendung in der Elektronik.

Binäre und logische Operatoren

Gesetze
In den nächsten Slides schauen wir uns die Gesetze[^1] der boolschen Algebra an.
🎬 Deklariert diese Variablen in der Python-Shell:
a = True
b = FalseKonjunktion
🎬 In der Python-Shell ausführen:
a and bDisjunktion
🎬 In der Python-Shell ausführen:
a or bNegation
🎬 In der Python-Shell ausführen:
not a
not bAbsorption
Bestimmte Ausdrücke können vereinfacht werden.
🎬 In der Python-Shell ausführen:
(a or (a and b)) == a
(a and (a or b)) == a
a == a # Das gleiche wie obenDoppelte Negation
Wenn man einer doppelten Negation begegnet, kann man das auch vereinfachen.
🎬 In der Python-Shell ausführen:
(not not a) == a
a == a # Das gleiche wie obenEs gibt noch viele weitere Gesetze.
Short-Circuit-Evaluation
Evaluation wird abgebrochen sobald Ergebnis feststeht.
x = True
y = False
y and (x and y) or (y and x) # Evaluation wird nach y abgebrochen
x and (x and y) or (y and x) # Evaluation vollständig geprüftWahre Werte
Die meisten Werte sind wahr.
bool("abc")
bool(123)
bool(["apple", "cherry", "banana"])Falsche Werte
Andere Werte sind falsch.
bool(False)
bool(None)
bool(0)
bool("")
bool(())
bool([])
bool({})Aufgaben 1
Lösen Sie die ersten zwei Aufgaben 3.1 und 3.2.
⚡Aufteilung in Gruppen/Breakout-Rooms ⏱️ 10 Minuten
Grundregeln Zeichenketten
- Wichtigkeit: Zeichenketten > Zahlen
- Python macht den Umgang mit Zeichenketten relativ leicht
Beispiel:
s='abc'
print(type(s)) # <class 'str'>Apostrophe
Einfache oder doppelte Apostrophe sind gleichwertig.
'abc' == "abc"Mehrzeilige Zeichenketten
🎬 Erstellen Sie eine mehrzeilige Zeichenkette:
s = """Das ist
eine lange
Zeichenkette."""
print(s)ℹ️ Zeilenumbrüche werden mit der Escape-Sequenzen \n gespeichert.
Zeichenketten kombinieren
🎬 Folgende Aktionen ausführen:
- Ordner
Thema3und DateiZeichenketten.pyerstellen - Geben Sie den folgenden Code ein:
Zeichenkette.py
s1 = 'abc'
s2 = 'efg'
s3 = s1 + s2 + s1
print(s3) # Ergebnis 'abcefgabc'Zeichenketten vervielfältigen
s1 = 'abc'
s2 = s1*3 + 'x'*2
print(s2) # Ergebnis 'abcabcabcxx'Sonderzeichen
Sonderzeichen können mit Escape-Sequenzen eingebettet werden.

print("Hallo\nWelt")Raw-Zeichenketten
Python interpretiert \-Sequenzen als Sonderzeichen, um das zu vermeiden, stellen Sie den Buchstaben r (raw) voran:
latexcode = r'\section{Überschrift}'Teilzeichenketten
Mit der Slicing-Syntax s[start:ende] kann auf Teile einer Zeichenkette zugegriffen werden.
🎬 Erstellen Sie die Datei Teilzeichenketten.py
Index
Wir greifen nun auf den Index der Zeichenkette. Der Index beginnt immer bei 0!
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | ... |
|---|---|---|---|---|---|---|---|---|
| a | b | c | d | e | f | g | h | ... |
Zugriff Teilzeichenketten
🎬 Führen Sie die folgenden Zeilen aus:
s='abcdefghijklmnopqrstuvwxyz'
print(s[3]) # Viertes Zeichen
print(s[3:6]) # Viertes bis Sechstes Zeichen
print(s[:3]) # Alles bis und mit dem dritten Zeichen
print(s[-4]) # Das viertletzte Zeichen
print(s[-4:]) # Alles ab dem iertletzten ZeichenSchrittweite
Mit dem dritten Parameter kann die Schrittweite angegeben werden.
🎬 Fügen Sie diese Zeilen an:
print(s[::2]) # jedes zweite ZeichenZeichenketten umkehren
Mit negativen Schrittweite kehrt die Reihenfolge:
print(s[::-1]) # alles in umgekehrter Reihenfolge
print(s[::-2]) # Jedes zweite Zeichen in umgekehrter ReihenfolgeAufgaben 2
Lösen Sie die Aufgabe 3.3.
⚡Aufteilung in Gruppen/Breakout-Rooms ⏱️ 10 Minuten
Zeichenkettenfunktionen
Zeichenketten können mit vielen Funktionen und Methoden bearbeitet werden.

Funktionen versus Methoden
ℹ️ Methoden sind etwas Ähnliches wie Funktionen, Sie werden aber direkt auf die zugrundeliegenden Daten (Objekte) angewendet.
funktion(daten)
daten.methode(weitere, daten)Anwendungsbeispiele Methoden
🎬 Erstellen Sie die Datei Methoden.py mit diesem Inhalt:
s='abcdefghijklmnopqrstuvwxyz'
print(s.upper()) # Alles in Grossbuchstaben
print(s.count('efg'))Eigenschaften ermitteln
Mit str.isxxx-Funktionen können Sie Zeichenketten nach bestimmten Eigenschaften testen.
🎬 Erstellen Sie die Datei Eigenschaften.py mit diesem Inhalt:
print(len('abc')) # 3
print(str.isalpha('abcäöü')) # True
print(str.isalpha('abc123')) # False
print(str.isdigit('123')) # True
print(str.isalnum('abc123')) # True
print(str.isascii('abc123|$!')) # True
print(str.islower('abcD')) # FalseSuchen
🎬 Führen Sie diese Aktionen aus:
- Datei
Suchen.pyerstellen - Diesen Code einfügen und ausführen:
Suchen.py
help(str.find)
s="abcdefghijklmnopqrstuvwxyz"
print(s.find("hij")) # Ergebnis: 7
print(s.find("hij", 8)) # -1 also nicht gefunden
print(s.rfind("hij")) # Suche von Rechts nach Linksℹ️ Beim Zugriff auf die Startposition muss 1 dazugezählt werden.
Ersetzen
🎬 Fügen Sie diesen Code an die letzte Datei:
print(s.replace('e', 'X'))Daten formatieren
Es gibt mehrere Ansätze zum Formatieren von Zeichenketten:
- %-Operator
- format-Methode
- format-Kurzschreibweise
🎬 Erstellen Sie eine Datei Formatierung.py
Formatierung mit %-Operator
Als Platzhalter kann man in einem String %s verwenden. Wendet man den %-Operator an, wird der Platzhalter mit einer Variable ersetzt.
🎬 Führen Sie diesen Code aus:
name = 'Matthias'
print('%s ist 11 Jahre alt.' % name)Formatierung mit Nachkommastellen
Der Platzhalter %.3f bedeutet, dass eine Zahl mit 2 Nachkommastellen ausgeben werden soll.
🎬 Führen Sie diesen Code aus:
zahl = 1/7
print('1/7 mit drei Nachkommastellen: %.3f' % zahl)Formatierung mit format-Methode
Eine ganz andere Formatierung funktioniert mit {} als Platzhalter und der Methode format() zum übergeben der Variablen..
🎬 Führen Sie diesen Code aus:
print('{} ist {} Jahre alt.'.format('Sebastian', 13))
print('{name} ist {alter} Jahre alt.'.format(alter=13, name='Sebastian'))Formatierung mit format-Kurzschreibweise
Die wohl einfachste Formatierung ist die Schreibweise mit f'' und den {variable}-Platzhalter.
🎬 Führen Sie diesen Code aus:
alter=26/3
name='Sebastian'
print(f'{name} ist {alter:.3} Jahre alt.')ℹ️ Diese Formatierung ist ab Python 3.6 verfügbar.
Aufgaben 3
Lösen Sie restlichen Aufgaben 3.4 bis 3.6.
⚡Aufteilung in Gruppen/Breakout-Rooms ⏱️ 10 Minuten
Review
🎯 Wurden die Lernziele erreicht?
⚡ Feedback zu den Zielen einholen.