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 = False
Konjunktion
🎬 In der Python-Shell ausführen:
a and b
Disjunktion
🎬 In der Python-Shell ausführen:
a or b
Negation
🎬 In der Python-Shell ausführen:
not a
not b
Absorption
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 oben
Doppelte 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 oben
Es 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üft
Wahre 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
Thema3
und DateiZeichenketten.py
erstellen - 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 Zeichen
Schrittweite
Mit dem dritten Parameter kann die Schrittweite angegeben werden.
🎬 Fügen Sie diese Zeilen an:
print(s[::2]) # jedes zweite Zeichen
Zeichenketten umkehren
Mit negativen Schrittweite kehrt die Reihenfolge:
print(s[::-1]) # alles in umgekehrter Reihenfolge
print(s[::-2]) # Jedes zweite Zeichen in umgekehrter Reihenfolge
Aufgaben 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')) # False
Suchen
🎬 Führen Sie diese Aktionen aus:
- Datei
Suchen.py
erstellen - 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.