Python Tutorial - Datentyp-Zeichenkette

  1. Strings in Python erzeugen
  2. Zugriff auf Elemente von Strings
  3. Python String Operationen
  4. Eingebaute Funktionen, die auf Strings anwendbar sind
  5. Python String-Formatierung
  6. Die String format() Methode

Wir werden in diesem Abschnitt den Datentyp Python String behandeln.

Ein String ist eine Folge von Zeichen, die im Computer durch binäre Daten repräsentiert wird. Und in Python ist ein String eine Sammlung von Unicode-Zeichen.

Info

Python Strings sind unveränderlich.

Strings in Python erzeugen

Eine Zeichenkette kann in einfachen oder doppelten Anführungszeichen erstellt werden. Ein mehrzeiliger String kann auch durch die Verwendung von dreifachen Anführungszeichen erzeugt werden.

x = "String of characters"
x = """Multiline
string"""

Zugriff auf Elemente von Strings

Der Slicing-Operator [] wird verwendet, um auf Zeichen von Strings zuzugreifen. Der Index beginnt wie bei anderen Python-Datentypen bei 0.

>>> x = 'Python Programming'
>>> print('x[0] =', x[0])
'P'
>>> print('x[4:15] =', x[4:15])
'on Programm'
>>> x[4] = 'l'
TypeError: 'str' object does not support item assignment
Warnung

Der Index muss ein Integer sein, sonst tritt TypeError auf.

Negative Indizierung

Es ist erlaubt, negative Indizes zu verwenden, um auf Zeichen in der Zeichenkette zuzugreifen. Zum Beispiel bezieht sich der Index -1 auf das letzte Zeichen. Ähnlich bezieht sich der Index -2 auf das vorletzte Zeichen.

>>> s = "Python"
>>> print(s[-1])
'n'
>>> print(s[-2])
'o'
>>> print(s[-3])
'h'

Zeichen aus einem String löschen

Da Strings unveränderlich sind, können die Zeichen eines Strings nicht gelöscht werden. Sie können aber eine neue Zeichenkette mit dem gleichen Namen zuweisen. Dies wird in dem folgenden Code demonstriert:

>>> s = 'Python'
>>> s = 'Program'
>>> s
'Program'

Der gesamte String kann mit dem Schlüsselwort del gelöscht werden:

>>> del s

Python String Operationen

Es gibt eine Reihe von Operationen, die auf Strings ausgeführt werden können; einige davon sind wie folgt:

Verkettete zwei oder mehr Strings

Zwei oder mehr Strings können durch den + Operator verkettet werden.

>>> s1 = 'Python '
>>> s2 = 'Programming'
>>> print(s1 + s2)
'Python Programming'

Wenn Sie zwei Zeichenketten zusammenschreiben, verkettet es die Zeichenketten wie der + Operator:

>>> print('Python ' 'Programming')
'Python Programming'

Klammern können auch verwendet werden, um zwei Zeichenketten zu verknüpfen, wenn die Zeichenketten in mehreren Zeilen sind.

>>> s = ('Python '
     'Programming')
>>> s
'Pyhton Programming'

Iterieren durch Zeichenketten

Sie können durch eine Liste iterieren, indem Sie eine for-Schleife verwenden:

s = 'Python'
for i in s:
    print(i)
P
y
t
h
o
n

String Membership Check

Das Schlüsselwort in wird verwendet, um die Existenz einer Teilzeichenkette in einem String zu überprüfen.

>>> s = 'Python'
>>> print('a' in s)
False
>>> print('o' in s)
True

Eingebaute Funktionen, die auf Strings anwendbar sind

Die Funktionen, die auf andere Arten von Sequenzen angewendet werden, können auch auf Strings anwendbar sein. Die häufig verwendeten Funktionen sind len(), um die Anzahl der Zeichen in einer Zeichenkette zu ermitteln, und enumerate(), die ein Objekt zurückgibt, das den Index und den Wert der Elemente in der Zeichenkette als Paar enthält.

Python String-Formatierung

Fluchtsequenz

Escape-Sequenzen werden verwendet, wenn Sie die speziellen Symbole (die in Python eine besondere Bedeutung haben) auf den Ausgabestrom drucken wollen. Zum Beispiel, wenn Sie drucken wollen:

James asked, "Do you know Andrew's place?"

Hier können Sie weder einfache noch doppelte Anführungszeichen verwenden, da der Text beide Anführungszeichen enthält. Wenn Sie versuchen, diese Zeichenketten in einfache oder doppelte Anführungszeichen zu setzen, haben Sie SyntaxError.

>>> print("James asked, "Do you know Andrew's place?"")
SyntaxError: invalid syntax
>>> print('James asked, "Do you know Andrew's place?"')	  
SyntaxError: invalid syntax

Die Lösung für dieses Problem ist, dass Sie entweder dreifache Anführungszeichen oder Escape-Sequenzen verwenden. In Python beginnt eine Escape-Sequenz mit einem Backslash. Ein Backslash ist eine Anweisung an den Interpreter.

Wenn Sie einfache Anführungszeichen in der Druckanweisung verwenden, dann sollten alle einfachen Anführungszeichen des Textes escaped werden. Genauso sollten doppelte Anführungszeichen aus dem Text entfernt werden, wenn Sie doppelte Anführungszeichen zur Darstellung einer Zeichenkette verwenden.

#using triple quotation marks
print('''James asked, "Do you know Andrew's place?"''')

#escaping single quotes
print('James asked, "Do you know Andrew\'s place?"')

#escaping double quotes
print("James asked, \"Do you know Andrew's place?\"")

Betrachten Sie die folgende Tabelle, in der Escape-Sequenzen von Python beschrieben werden:

Fluchtabfolge Beschreibung
\\ entgeht Backslash
\' Entgeht einfachen Anführungszeichen
\" Entgeht doppelten Anführungszeichen
\a ein ASCII-Alarm oder eine Glocke
\b erzeugt eine Rücktaste
\f generiert Formfeed
\n erzeugt eine neue Zeile.
\r Wagenrücklauf
\t Erzeugt eine horizontale Registerkarte
\v Erzeugt eine vertikale Registerkarte
\ooo Oktalzeichen ooo
\xHH Hexadezimalzeichen HH
>>> print("C:\\User\\Python36-32\\Lib")
C:\User\Python36-32\Lib
    
>>> print("First Line\nSecond Line")
First Line
Second Line

Raw String r to Ignore Escape Sequence

Sie können die Escape-Sequenz in einer Zeichenkette ignorieren, indem Sie sie zu einer Rohzeichenkette machen, die durch r oder R vor der Zeichenkette angezeigt wird.

In einem Raw-String werden Escape-Sequenzen ignoriert. Siehe das folgende Beispiel:

#without r
>>> print("C:\\User\\Python36-32\\Lib")
C:\User\Python36-32\Lib

#with r  
>>> print(r"C:\\User\\Python36-32\\Lib")
C:\\User\\Python36-32\\Lib

Sie könnten hier sehen, dass die Escape-Sequenz ignoriert wird.

Die String format() Methode

Die format() Methode ist ein mächtiges Werkzeug zum Formatieren von Strings. In den formatierten Strings haben Sie Platzhalter {}, die durch die format() Methode ersetzt werden.

#default placeholder
>>> s1 = "{}, {} and {}".format('Bread', 'Butter', 'Chocolate')
>>> print(s1)
'Bread, Butter and Chocolate'

#positional arguments
>>> s2 = "{1}, {2} and {0}".format('Bread', 'Butter', 'Chocolate')	  
>>> print(s2)
'Butter, Chocolate and Bread'

#keyword arguments
>>> s3 = "{a}, {x} and {c}".format(x = 'Bread', c = 'Butter', a = 'Chocolate')	  
>>> print(s3)
'Chocolate, Bread and Butter'