English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Python Referenzhandbuch
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.
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
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.
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
Zeichenfolgen können viele Operationen ausführen, was sie zuIn PythonAm häufigsten verwendeteEiner der Datentypen.
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'
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')
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
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))
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-Sequenz | Beschreibung |
---|---|
\newline | Backslash und Zeilenumbruch werden ignoriert |
\\ | Backslash |
\' | Einzelnes Anführungszeichen |
\" | Doppeltes Anführungszeichen |
\a | ASCII-Glocke |
\b | ASCII-Rücktaste |
\f | ASCII-Seitennummer |
\n | ASCII-Zeile |
\r | ASCII-Return |
\t | ASCII-Tabsymbol |
\v | ASCII-Zeilenumbruch |
\ooo | Zeichen mit oktalen Wert |
\xHH | Zeichen 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
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
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|'
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
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'