Exkurs - Zeichenkette als Objekt

Ein Beispiel

Im Abschnitt Beispiel - Verschlüsselung von Nachrichten wurde das Caesar-Verfahren auf Texte angewandt, die nur aus Großbuchstaben bestehen. Hier eine Funktion, die einen beliebigen Text entsprechend vorbereitet.

def vereinfachterText(text):

    """
    >>> vereinfachterText('Hallo')
    'HALLO'
    >>> vereinfachterText('Süß oder sauer?')
    'SUESSODERSAUER'
    """

    neuerText = ''
    for c in text:
        if c.isalpha():
            neuerText = neuerText + c
    neuerText = neuerText.replace('ä', 'ae')
    neuerText = neuerText.replace('ö', 'oe')
    neuerText = neuerText.replace('ü', 'ue')
    neuerText = neuerText.replace('Ä', 'AE')
    neuerText = neuerText.replace('Ö', 'OE')
    neuerText = neuerText.replace('Ü', 'UE')
    neuerText = neuerText.replace('ß', 'ss')
    neuerText = neuerText.upper()    
    return neuerText

# Test
...

Aufgabe 1

(a) Teste die Funktion.

(b) Analysiere den Quelltext und stelle Vermutungen auf, was die einzelnen Bestandteile leisten.

Textobjekte und ihre Operationen

Python ist eine Programmiersprache, die Konzepte aus unterschiedlichen Programmierstilen zur Verfügung stellt. Wir verwenden hier in erster Linie Konzepte der funktionalen und imperativen Programmierung. Nur gelegentlich weichen wir von dieser Festlegung ab. So ist es für mache Anwendungen günstig, vordefinierte Operationen zu benutzen, die einen objektorientierten Programmierstil unterstützen.

Betrachte als Beispiel die Verwendung des replace-Operators auf Zeichenketten.

>>> text = 'Pizza mit Salami'
>>> text.replace('mit', 'ohne')
'Pizza ohne Salami'

Hier wird eine objektorientierte Verarbeitungslogik benutzt. Das von der Variablen text verwaltete Objekt stellt den Verarbeitungsoperator replace zur Verfügung. Die Anwendung dieses Operators wird durch eine Anweisung der Gestalt objekt.operator(...) ausgelöst. Mehr über diese objektorientierte Verarbeitungslogik erfährst du im Abschnitt Objektorientierte Programmierung mit Python. Der folgende Python-Dialog zeigt exemplarisch einige für Anwendungen interessante Operatoren für Zeichenketten, die alle objektorientiert benutzt werden.

>>> text.replace('mit', 'ohne')
'Pizza ohne Salami'
>>> text
'Pizza mit Salami'
>>> text.count('mi')
2
>>> text.find('ami')
13
>>> text.isalpha()
False
>>> text.upper()
'PIZZA MIT SALAMI'
>>> text
'Pizza mit Salami'
>>> 

Aufgabe 1

(a) Führe selbst einen entsprechenden Python-Dialog. Weitere Operationen für Zeichenketten findest du in Nachschlagewerken.

(b) Kommentiere den Dialog, z.B. so:

>>> text.replace('mit', 'ohne')  # erzeugt eine neue Zeichenkette, bei der 'mit' durch 'ohne' ersetzt ist 
'Pizza ohne Salami'
>>> text                         # Achtung, text bleibt unverändert
'Pizza mit Salami'
X

Fehler melden

X

Suche