English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Online-Tools

Python Grundtutorials

Python Funktion

Python Datentypen

Python Flusskontrolle

O

Python Objekte und Klassen

Python Datum und Zeit

Erweiterte Kenntnisse in Python

Python Zeichenkette (String)

Python Referenzhandbuch

In diesem Tutorial werden Sie lernen, wie man mit Python Strings erstellt, formatiert, ändert und löscht. Darüber hinaus werden verschiedene String-Operationen und Funktionen vorgestellt.

Was sind Strings in Python?

Strings sind eine Zeichenfolge.26Zeichen sind nur Symbole. Zum Beispiel hat Englisch

Computer verarbeiten keine Zeichen, sie verarbeiten Zahlen (Binär). Selbst wenn Sie Zeichen auf dem Bildschirm sehen, werden sie intern als 0 und 1 gespeichert und manipuliert.1Kombination.

Diese Art der Umwandlung von Zeichen in Zahlen wird als Kodierung bezeichnet, und der umgekehrte Prozess ist die Dekodierung. ASCII und Unicode sind einige gebräuchliche Kodierungen.

In Python sind Strings eine Sequenz von Unicode-Zeichen. Die Einführung von Unicode umfasst alle Zeichen aller Sprachen und bringt eine einheitliche Kodierung mit sich. Mehr Informationen finden Sie hierErfahren Sie mehr über Unicode.

Wie erstellt man in Python Strings?

Man kann Strings durch das Einklammern von Zeichen in einfache oder doppelte Anführungszeichen erstellen. In Python kann auch dreifache Anführungszeichen verwendet werden, die jedoch normalerweise für mehrzeilige Strings und Dokumentationsstrings verwendet werden.

# Alle diese sind äquivalent
my_string = 'Hallo'
print(my_string)
my_string = "Hallo"
print(my_string)
my_string = '''Hallo'''
print(my_string)
# Drei Anführungszeichen-Strings können über mehrere Zeilen erweitert werden
my_string = "Hallo, willkommen hier
           die Welt der Python"""
print(my_string)

Wenn das Programm ausgeführt wird, lautet die Ausgabe:

Hallo
Hallo
Hallo
Hallo, willkommen hier
           die Welt der Python

Wie kann man Zeichen in einem String ansprechen?

Wir können einzelne Zeichen mit Indizes ansprechen und eine Reihe von Zeichen mit Schnitten ansprechen. Der Index beginnt bei 0. Der Zugriff auf Zeichen außerhalb des Indexbereichs löst einen IndexError aus. Der Index muss ein Integer sein. Wir können keine float oder andere Typen verwenden, da dies einen TypeError verursachen würde.

Python ermöglicht negative Indizes für seine Sequenzen.

Index-1bedeutet das Letzte.-2bedeutet das zweite von hinten. Nach und nach können wir den Schiebeoperator (Doppelpunkt) verwenden, um eine Reihe von Projekten in einer Zeichenfolge zu erreichen.

str = 'oldtoolbag.com'
print('str = ', str)
# Erstes Zeichen
print('str[0] = ', str[0])
# Letztes Zeichen
print('str[-1] = '', str[-1]
# Schnitt von der zweiten bis zur fünften Zeichen
print('str[1:5] = '', str[1:5]
# Schnitt von der zweiten6bis zur zweiten von hinten2Zeichen
print('str[5:-2] = '', str[5:-2]

Ausgabenergebnis:

str = ''oldtoolbag.com
str[0] = ''n
str[-1] = ''m
str[1:5] = ''hooo
str[5:-2] = ''

Es wird ein Fehler aufgetreten, wenn versucht wird, auf Indizes außerhalb des Bereichs zuzugreifen oder Dezimalzahlen zu verwenden.

# Der Index muss im Bereich liegen
>>> my_string[15]  
>>> print('He said, \"What\'s there?\"')
IndexError: string index out of range
# Der Index muss ein Integer sein
>>> my_string[1.5] 
>>> print('He said, \"What\'s there?\"')
TypeError: string indices must be integers

Durch Berücksichtigung der Tatsache, dass Indizes zwischen Elementen liegen, kann die Schnittstelle am besten wie folgt visualisiert werden.

Um einen Bereich zu erreichen, ist ein Index erforderlich, der ein Teil der Zeichenfolge ausnimmt.

Wie ändere oder lösche ich eine Zeichenfolge?

Zeichenfolgen sind unveränderlich. Dies bedeutet, dass die Elemente einer Zeichenfolge nach der Zuweisung nicht geändert werden können. Wir können einfach verschiedene Zeichenfolgen an denselben Namen zuweisen.

>>> my_string = 'oldtoolbag.com'
>>> my_string[5] = 'a'
>>> print('He said, \"What\'s there?\"')
TypeError: 'str' object does not support item assignment
>>> my_string = 'Python'
>>> my_string
'Python'

Wir können keine Zeichen in einer Zeichenfolge löschen oder löschen. Aber mit dem Schlüsselwort del können wir die Zeichenfolge vollständig löschen.

>>> del my_string[1]
>>> print('He said, \"What\'s there?\"')
TypeError: 'str' object doesn't support item deletion
>>> del my_string
>>> my_string
>>> print('He said, \"What\'s there?\"')
NameError: name 'my_string' is not defined

Python-Zeichenfolgenoperationen

Zeichenfolgen können viele Operationen ausführen, was sie zuIn PythonAm häufigsten verwendeteEiner der Datentypen.

Verknüpfung von zwei oder mehreren Zeichenfolgen

Die Verbindung von zwei oder mehreren Strings zu einem einzigen String wird als Verkettung bezeichnet.

+ Der Operator führt in Python die Verkettungsoperationen aus. Einfach zwei String-Texte zusammen schreiben, oder sie verbinden.

* Der Operator kann verwendet werden, um einen String eine bestimmte Anzahl von Malen zu wiederholen.

str1 = 'Hello'
str2 ='World!'
# using +
print('str1 + str2 = ', str1 + str2)
# using *
print('str1 * 3 =, str1 * 3)

Zusammen geschriebene zwei String-Texte schreiben auch wie+Die Operatoren verbinden sie ebenfalls.

Um Strings in verschiedenen Zeilen zu verbinden, können Klammern verwendet werden.

>>> # Zusammenfassung von zwei String-Texten
>>> 'Hello ''World!'
'Hello World!'
>>> # Verwendung von Klammern
>>> s = ('Hello '
...          'World')
>>> s
'Hello World'

durchlaufen Strings

Verwenden Siefor-SchleifeMan kann Strings durchlaufen. Dies ist ein Beispiel, um die Anzahl der 'l' im String zu berechnen.

count = 0
for letter in 'Hello World':
    if(letter == 'l'):
        count += 1
print(count, 'letters found')

String-Mitgliedschaftstest

Man kann den Schlüsselwort 'in' verwenden, um zu testen, ob ein Unterstring im String vorhanden ist.

>>> 'a' in 'program'
True
>>> 'at' not in 'battle'
False

Verwenden Sie die eingebauten Funktionen von Python

Man kann verschiedene eingebauten Funktionen für Sequenzen und Strings verwenden.

Einige häufig verwendete sind enumerate() und len(). Die enumerate()-Funktion dient dazu: Sie gibt ein Enumerationsobjekt zurück. Es enthält als Paar den Index und den Wert aller Elemente im String. Dies ist sehr nützlich für Iterationen.

Gleichzeitig gibt len() die Länge des Strings zurück (Zeichenanzahl).

str = 'cold'
# enumerate()
list_enumerate = list(enumerate(str))
print('list(enumerate(str) = ', list_enumerate)
# Zeichenanzahl
print('len(str) = ', len(str))

Python-String-Format

Escape-Sequenz

Wenn wir einen Text ausgeben möchten-Er sagte: „Was gibt es da?“-Wir können keine einfachen oder doppelten Anführungszeichen verwenden. Dies führt zu einem SyntaxError, da der Text selbst einfache und doppelte Anführungszeichen enthält.

>>> print("He said, \"What\'s there?\"")
>>> print('He said, \"What\'s there?\"')
...
>>> print("He said, \"What\'s there?\"")
>>> print('He said, \"What\'s there?\"')
...

SyntaxError: ungültige Syntax

Eine Lösung für dieses Problem ist die Verwendung von dreifachen Anführungszeichen. Alternativ können wir Escape-Sequenzen verwenden.

Escape-Sequenzen beginnen mit einem Backslash und werden auf verschiedene Weise interpretiert. Wenn wir einen String mit einfachen Anführungszeichen darstellen, müssen wir alle Anführungszeichen im String escapen. Dies gilt auch für doppelte Anführungszeichen. Dies ist die Methode zur Darstellung des obigen Textes.
# Verwenden Sie drei einfache Anführungszeichen
# Escape-einzelnes Anführungszeichen
print('He said, \"What\'s there?\"')
# Escape-Zeilenumbruch
print("He said, \"What\'s there?\"")

Dies ist eine Liste aller Escape-Sequenzen, die Python unterstützt.

Escape-Sequenzen in Python
Escape-SequenzBeschreibung
\newlineBackslash und Zeilenumbruch werden ignoriert
\\Backslash
\'Einzelnes Anführungszeichen
\"Doppeltes Anführungszeichen
\aASCII-Glocke
\bASCII-Rücktaste
\fASCII-Seitennummer
\nASCII-Zeile
\rASCII-Return
\tASCII-Tabsymbol
\vASCII-Zeilenumbruch
\oooZeichen mit oktalen Wert
\xHHZeichen mit hexadezimalen Wert HH

Hier sind einige Beispiele

>>> print("C:\\Python32\\Lib)
C:\Python32\Lib
>>> print("Dies wird gedruckt\nin zwei Zeilen")
Dies wird gedruckt
in zwei Zeilen
>>> print("Dies ist \x48\x45\x58 Darstellung)
Dies ist die HEX-Darstellung

Originalstrings ignorieren Zeilenumbrüche

Manchmal möchten wir möglicherweise Zeilenumbrüche in Strings ignorieren. Dafür können wir sie vor dem String r oder R platzieren. Dies bedeutet, dass es sich um einen Originalstring handelt, und alle Zeilenumbrüche werden ignoriert.

>>> print("Dies ist \x61 guter Beispiel))
Dies ist eine
guter Beispiel
>>> print(r"Dies ist \x61 guter Beispiel))
Dies ist \x61 guter Beispiel

Strings mit dem format() -Methoden formatieren

Der format() -Methoden für string-Objekte ist sehr universell und sehr leistungsstark bei der Formatierung von Strings. Formatierungsstrings enthalten Klammern {} als Platzhalter oder zu ersetzende Ersetzungsfelder.

Wir können die Reihenfolge mit Positions- oder Schlüsselwortparametern angeben.

# Standard (implizite) Reihenfolge
default_order = "{}, {} und {}".format('John','Bill','Sean')
print('\n--- Standardreihenfolge ---)
print(default_order)
# Sortierung mit Positionsparametern
positional_order = "{1, {0} und {2}".format('John','Bill','Sean')
print('\n--- Positionelle Reihenfolge ---)
print(positional_order)
# Sortierung mit Schlüsselwortparametern
keyword_order = "{s}, {b} und {j}".format(j='John',b='Bill',s='Sean')
print('\n--- Schlüsselwortreihenfolge ---)
print(keyword_order)

Die format() Methode kann optionale Formatierungsregeln haben. Sie verwenden Doppelpunkte, um Feldnamen zu trennen. Zum Beispiel können wir Strings im gegebenen Raum linksbündig <, rechtssbündig > oder zentriert ^ ausrichten. Wir können auch Ganzzahlen in Binär-, Hexadezimal-Format formatieren und Fließkommazahlen aufgerundet oder in Exponentenformat darstellen. Viele Formate sind möglich. Besuchen Sie hier, umum die format() zu erhaltenMethodenverfügbarenalleZeichenformat.

>>> # Formatierung von Ganzzahlen
>>> "Binärdarstellung von {0} ist {0:b}".format(12)
"Binärdarstellung von 12 ist 1100'
>>> # Formatierung von Fließkommazahlen
>>> "Exponentenrepräsentation: {0:e}".format(1566.345)
"Exponentenrepräsentation: 1.566345e+03"
>>> # Rundung
>>> "Ein Drittel beträgt: {0:.3f}".format(1/3)
"Ein Drittel beträgt: 0.333"
>>> # Zeichenausrichtung
>>> "|{:<10|{:^10|{:}>10|".format('butter','bread','ham')
'|butter | bread | ham|'

Alte Formatierungsweise

Wir können sogar Strings wie in der alten Art und Weise mit sprintf() in der C-Programmiersprache formatieren. Wir verwenden den %-Operator, um diese Aufgabe zu erledigen.

>>> x = 12.3456789
>>> print('Der Wert von x ist %',3.2f' %x)
Der Wert von x ist 12.35
>>> print('Der Wert von x ist %',3.4f' %x)
Der Wert von x ist 12.3457

Gängige Python-Stringmethoden

Stringobjekte haben viele verfügbare Methoden. Eine davon ist die erwähnte format() -Methode. Häufig verwendete Methoden sind lower(), upper(), join(), split(), find(), replace() usw. Hier ist die vollständige Liste thereofEingebaute Methoden zur Verarbeitung von Strings in Python.

>>> 'w3codebox.lower()
'w3codebox
>>> 'w3codebox.upper()
'w3codebox
>>> 'Dies wird alle Wörter teilen in eine Liste'.split()
['Dies', 'wird', 'teilen', 'alle', 'Wörter', 'in', 'eine', 'Liste', 'teilen']
>>> ' '.join(['Dies', 'wird', 'verbinden', 'alle', 'Wörter', 'zu', 'einem', 'String'])
'Dies wird alle Wörter zu einem String verbinden'
>>> 'Happy New Year'.find('ew')
7
>>> 'Happy New Year'.replace('Happy','Brilliant')
'Brilliant New Year'