<    >

Zeichenketten, Listen

+:
Zeichenketten können mit "+" zusammengesetzt werden.

Operatoren können also eine andere Bedeutung bekommen, je nachdem auf welchen Datentyp man sie anwendet.
Achtung!: Wenn ich den Ausdruck "a + b" auswerten will muss ich also vorher ganz genau wissen,
welche Datentypen hinter den Variablen a und b stehen.
Bei größeren Ausdrücken geht man am besten schrittweise vor.
Diese Mehrfachverwendung von Operatoren nennt man "Überladung"
*:
Noch eine Überladung: der Multiplikationsoperator dupliziert Zeichenketten, Beispiele: "a" * 3 liefert "aaa", "abc" * 2 liefert "abcabc".
for:
Auch Zeichenketten können, so wie Listen, mittels for-Anweisung auf 2 Arten durchlaufen werden.
Statt "ch" hätten wir auch wieder "element" schreiben können. Variablennamen sollen möglichst einen guten Hinweis auf den enthaltenen Wert geben.
Wie bei Listen kann auch bei Zeichenketten mittels my_str[i] auf das i-te Zeichen zugegriffen werden.
Basis ist hier wieder 0. my_str[3] ist also zum Beispiel das vierte Element.
find():
Mit dieser Methode kann in Zeichenketten gesucht werden.
find() liefert als Ergebnis die Position der gefundenen Zeichenkette (beginnend bei 0). 1 bedeutet zum Beispiel Position 2.
-1 bedeutet die gesuchte Zeichenkette wurde nicht gefunden.
list():
Damit kann aus einer Zeichenkette eine Liste erstellt werden.
Achtung! Ein wichtiger Unterschied zwischen Listen und Zeichenketten:
Zeichenketten können in Python nicht verändert werden ("immutable")), wenn du sie bearbeiten willst, musst du immer eine Kopie erstellen.



        
      

Übungen

1)
liste_1 = [["der", "Kater"], ["das", "Nilpferd"], ["der", "Flamingo"]]
liste_2 = ["gestiefelte", "grün karierte", "nachdenkliche"]
Durchlaufe die Listen und erstelle alle möglichen Wortkombinationen:
der gestiefelte Kater
das nachdenkliche Nilpferd
...

2)
my_text = "Ich bin Dr. Watson, und nachdem ich in Afghanistan "
my_text = my_text + "gedient hatte, kehrte ich nach London zurück. "
my_text = my_text + "Da ich meine militärische Karriere beendet hatte, "
my_text = my_text + "fand ich es schwierig, mich in das zivile Leben einzufügen, "
my_text = my_text + "und noch schwieriger war es, eine passende Unterkunft "
my_text = my_text + "zu finden, die ich mir leisten konnte."
buchstaben_liste = ["a", "e", "i", "o", "u", "ä", "ö", "ü"]
Ertelle einen neuen Text, der sich vom vorgegebenen unterscheidet, dass er keine Selbstlaute und keine Umlaute enthält.
Kann man den Satz immer noch lesen?

3)
Wie oben aber anstatt buchstaben_liste verwende: buchstaben = "aeiouäöü"







Lösungen

#-------------------------------
# 1)
# liste_1 = [["der", "Kater"], ["das", "Nilpferd"], ["der", "Flamingo"]] 
# liste_2 = ["gestiefelte", "grün karierte", "nachdenkliche"]
# Durchlaufe die Listen und erstelle alle möglichen Wortkombinationen:
# der gestiefelte Kater
# das nachdenkliche Nilpferd
# ...

liste_1 = [["der", "Kater"], ["das", "Nilpferd"], ["der", "Flamingo"]] 
liste_2 = ["gestiefelte", "grün karierte", "nachdenkliche"]
for element in liste_1:
    for wort in liste_2:
        print(element[0] + " " + wort + " " + element[1])

#-------------------------------
# 2)
# my_text = "Ich bin Dr. Watson, und nachdem ich in Afghanistan "
# my_text = my_text + "gedient hatte, kehrte ich nach London zurück. "
# my_text = my_text + "Da ich meine militärische Karriere beendet hatte, "
# my_text = my_text + "fand ich es schwierig, mich in das zivile Leben einzufügen, "/>
# my_text = my_text + "und noch schwieriger war es, eine passende Unterkunft "
# my_text = my_text + "zu finden, die ich mir leisten konnte."
# buchstaben_liste = ["a", "e", "i", "o", "u", "ä", "ö", "ü"]
# Ertelle einen neuen Text, der sich vom vorgegebenen unterscheidet, dass er keine # Selbstlaute und keine Umlaute enthält.
# Kann man den Satz immer noch lesen?

my_text = "Ich bin Dr. Watson, und nachdem ich in Afghanistan "
my_text = my_text + "gedient hatte, kehrte ich nach London zurück. "
my_text = my_text + "Da ich meine militärische Karriere beendet hatte, "
my_text = my_text + "fand ich es schwierig, mich in das zivile Leben einzufügen, "
my_text = my_text + "und noch schwieriger war es, eine passende Unterkunft "
my_text = my_text + "zu finden, die ich mir leisten konnte."
buchstaben_liste = ["a", "e", "i", "o", "u", "ä", "ö", "ü"]
new_str = ""
for ch in my_text:
    if not ch in buchstaben_liste:
        new_str += ch
print(new_str)

#-------------------------------
# 3)
# Wie oben aber anstatt umlaut_liste verwende: buchstaben = "aeiouäöü"

my_text = "Ich bin Dr. Watson, und nachdem ich in Afghanistan "
my_text = my_text + "gedient hatte, kehrte ich nach London zurück. "
my_text = my_text + "Da ich meine militärische Karriere beendet hatte, "
my_text = my_text + "fand ich es schwierig, mich in das zivile Leben einzufügen, "
my_text = my_text + "und noch schwieriger war es, eine passende Unterkunft "
my_text = my_text + "zu finden, die ich mir leisten konnte."
buchstaben = "aeiouäöü"
new_str = ""
for ch in my_text:
    if buchstaben.find(ch) < 0:
        new_str += ch
print(new_str)

# es funktioniert auch:
new_str = ""
for ch in my_text:
    if ch not in buchstaben:
        new_str += ch
print(new_str)
<    >