Beispiel - hallihallo
Erzeugung von Wörtern
Auch Wörter lassen sich manchmal systematisch erzeugen. Hier einige einfache Beispiele:
Begrüßung:
hallo hallihallo hallihallihallo hallihalli...hallihallo
Nichtssagendes:
bla blabla blablabla blabla...bla
Torjubel:
Tor Toor Tooor Tooo...ooor
Allen diesen Beispielen gemeinsam ist ein mehrfach identisch wiederholtes Teilwort. Bei der Begrüßung wird das Teilwort "halli" wiederholt, beim Nichtssagenden das Teilwort "bla" und beim Torjubel das Teilwort "o". Umrahmt werden kann das wiederholte Teilwort mit einem Anfangs- und einem Endwort. Beim Torjubel sind das die Wörter "T" und "r". Bei der Begrüßung werden ein leeres Anfangswort "" und das Endwort "hallo" benutzt. Beim Nichtssagenden sind beide - Anfangs- und Endwort jeweils leere Worte.
Die Struktur aller dieser Worte lässt sich also so beschreiben:
anfang + anzahl*mitte + ende
Hier sind anfang
, mitte
und ende
jeweils Teilwörter (bzw. Zeichenketten).
Mit anzahl
wird eine Zahl beschrieben, die angibt, wie oft das mittlere Teilwort wiederholt wird.
Wörter des beschriebenen Typs lassen sich (zumindest in Python) auch wie folgt erzeugen.
>>> 3*'bla'
'blablabla'
>>> 5*'halli'
'hallihallihallihallihalli'
>>> 5*'halli' + 'hallo'
'hallihallihallihallihallihallo'
>>> 'T' + 10*'o' + 'r'
'Toooooooooor'
Beachte, dass die zu verarbeitenden Wörter hier mit Hochkommata als Daten vom Typ Zeichenkette dargestellt sind.
Aufgabe 1
Probiere das selbst mit verschiedenen Beispielen aus.
Eine Funktion zur Verarbeitung von Wörtern
Wir konzipieren jetzt eine Funktion zur automatisierten Erzeugung von Wörtern mit iteriertem Mittelteil.
Beachte, dass hier jeweils auch der Typ der zu verarbeitenden Daten beschrieben wird. Mit str
werden Daten vom Typ Zeichenkette erfasst, mit int
Daten vom Typ ganze Zahl.
Die Definition der beschriebenen Funktion ist sehr einfach.
def neuesWort(anfang, mitte, ende, anzahl):
return anfang + anzahl*mitte + ende
Aufgabe 2
Teste die Funktion mit verschiedenen Funktionsaufrufen.
Aufgabe 3: Umrandung von Wörtern
Konzipiere und implementiere eine Funktion, mit der man Wörter mit Zeichenketten wie folgt umranden kann.
>>> umrandetesWort('Test', '.', '.', 3)
'...Test...'
>>> umrandetesWort('hilfe', 'o_', '_O', 5)
'o_o_o_o_o_hilfe_O_O_O_O_O'