Slides Thema 3

Boolsche Algebra und Zeichenketten

ÔŚÇ´ŞĆ Thema 3

ÔÜí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 Datei Zeichenketten.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!

01234567...
abcdefgh...

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.


Quellen

[^1]: Wikipedia - Boolesche Algebraopen in new window