Python Tutorial - Datentyp-Zeichenkette
- Strings in Python erzeugen
- Zugriff auf Elemente von Strings
- Python String Operationen
- Eingebaute Funktionen, die auf Strings anwendbar sind
- Python String-Formatierung
-
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.
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
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'
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook