Strings == Zeichenketten



Zeichen setzen: Strings

Strings beginnen und enden in Python mit einem einfachen oder doppeltem Anführungszeichen:

"BeispielString" oder 'noch ein String'.

Man kann sich Strings als geordnete Folge von Zeichen vorstellen. BEACHTE: Die Zählung beginnt bei 0 (Null). Es gibt in Python eine Bibliothek von Funktionen, ein sogenanntes Modul mit dem Namen string, man kann es in seinem Programm benutzen, wenn man am Anfang schreibt:

import string

vergleiche hierzu auch das Programm string_demo.py und die Python Library Reference. Wichtig ist noch die Funktion str(), sie nimmt ein beliebiges Objekt entgegen und gibt es als String zurück, Beispiel:

dezimalzahl = str(3.17)

Als Programm-Beispiel schauen wir uns einen HTML-Filter für Sonderzeichen an. In HTML werden Sonderzeichen wie z. B. ein Ö so dargestellt:

Ö

Der Filter in sonderzeichen.py liest eine Zeichenkette ein, und wandelt Sonderzeichen in die HTML-konforme Schreibweise um:

"""
    sonderzeichen.py: enthaelt einen Filter fur HTML-Sonderzeichen
"""
# kodiert Umlaute, etc. in HTML
def sonderzeichen (zeile):
    text = ''
    for i in range( len(zeile) ):
        if zeile[i] == 'ä':
            text = text + 'ä'
        elif zeile[i] == 'Ä':
            text = text + 'Ä'
        elif zeile[i] == 'ö':
            text = text + 'ö'
        elif zeile[i] == 'Ö':
            text = text + 'Ö'
        elif zeile[i] == 'ü':
            text = text + 'ü'
        elif zeile[i] == 'Ü':
            text = text + 'Ü'
        elif zeile[i] == 'ß':
            text = text + 'ß'
        elif zeile[i] == '<':
            text = text + '&lt;'
        elif zeile[i] == '>':
            text = text + '&gt;'
        elif zeile[i] == '&':
            text = text + '&amp;'
        elif zeile[i] == '"':
            text = text + '&quot;'
        else:
            text = text + zeile[i]
    return text

# ausprobieren:
testzeile = '"Immer öfter konnte ich mich ärgern '
testzeile = testzeile + 'über üble Programmierfahler & Würmer"'
print '\n\nStart . . .(sonderzeichen.py)\n'
print testzeile
print
print sonderzeichen(testzeile)
print
print '\n\nBeendet . . .(sonderzeichen.py)\n'

Einige Bemerkungen zu diesem Beispiel:

Erkläre den Unterschied: ________________________________________________


Beispiele

findest du unter dem Link Beispiele:


Aufgaben

  1. Die Chinesen-Aufgabe (siehe die Datei china.txt):

    Drei Chinesen mit dem Kontrabaß,

    die saßen auf der Straße und erzählten sich was,

    da kam die Polizei, ja was ist denn das,

    Drei Chinesen mit dem Kontrabaß!

    • Schreibe einen Filter und ersetze alle Vokale durch den Buchstaben a! Du kannst diese Aufgabe auf zwei Arten lösen: du liest den Text aus einer Datei, oder du speicherst den Text in einer Variablen (Wie machst du das?). Abspeichern unter dem Namen china.py.

  2. Beim Palindrom-Problem geht es um Wörter, die vorwärts wie rückwärts gleich lauten. Beispiele: Otto, Anna, Ara, Lageregal, Ehe. Schreibe eine Funktion (ohne Rückgabewert), die als Parameter das Testwort übergeben bekommt, und feststellt, ob es sich um ein Palindrom handelt (oder nicht).

    Tipp: Als Eingabe nur kleine Buchstaben benutzen, du testest innerhalb eines Wortes folgendermaßen auf Gleichheit/Ungleichheit (in der Variablen wort steht das zu testende Wort):

    wort[i] == wort[j] bzw. wort[i] != wort[j]

    Abspeichern unter palindrom.py

→ sp, , 2016-12-09