Python Zeichenketten
Zeichenketten sind der am häufigsten verwendete Datentyp in Python. Wir können Zeichenketten mit Anführungszeichen ('oder") erstellen.
Das Erstellen einer Zeichenkette ist einfach: Weisen Sie einfach einer Variablen einen Wert zu. Zum Beispiel:
var1 = 'Hello World!' var2 = "Python Example"
Python Zugriff auf Werte in Zeichenketten
Python unterstützt keinen Einzelzeichen-Typ; ein einzelnes Zeichen wird in Python auch als Zeichenkette verwendet.
Um in Python auf Teilzeichenketten zuzugreifen, können Sie eckige Klammern verwenden, um Zeichenketten zu schneiden, wie im folgenden Beispiel:
Beispiel (Python 2.0+)
Das Ausführungsergebnis des obigen Beispiels ist:
var1[0]: H var2[1:5]: ytho
Python-Zeichenkettenverkettung
Wir können Strings slicen und sie mit anderen Strings verketten, wie im folgenden Beispiel:
Beispiel (Python 2.0+)
Das Ausführungsergebnis des obigen Beispiels
输出 :- Hello Example!
Python-Escape-Zeichen
Wenn Sie Sonderzeichen in einem String verwenden müssen, verwendet Python einen Backslash (\Escape-Zeichen. Die folgende Tabelle:
| Escape-Zeichen | Beschreibung |
|---|---|
| \(am Ende der Zeile) | Zeilenfortsetzung |
| \\ | Backslash-Symbol |
| \' | Einfaches Anführungszeichen |
| \" | Doppeltes Anführungszeichen |
| \a | Glocke |
| \b | Rücktaste |
| \e | Escape |
| \000 | Leer |
| \n | Zeilenumbruch |
| \v | Vertikaltabulator |
| \t | Horizontaler Tabulator |
| \r | Wagenrücklauf |
| \f | Seitenvorschub |
| \oyy | Oktalzahl, y steht für ein Zeichen von 0~7, zum Beispiel: \012 repräsentiert einen Zeilenumbruch. |
| \xyy | Hexadezimale Zahl, beginnt mit \x, yy stellt das Zeichen dar, zum Beispiel: \x0a stellt einen Zeilenumbruch dar |
| \other | Andere Zeichen werden im normalen Format ausgegeben |
Python-String-Operatoren
In der folgenden Tabelle hat die Instanzvariable a den String-Wert "Hello", und die Variable b hat den Wert "Python":
| Operator | Beschreibung | Beispiel |
|---|---|---|
| + | String-Verkettung |
>>>a + b
'HelloPython'
|
| * | Zeichenkette wiederholt ausgeben |
>>>a * 2
'HelloHello'
|
| [] | Zeichen in Zeichenkette per Index abrufen |
>>>a[1]
'e'
|
| [ : ] | Einen Teil der Zeichenkette ausschneiden |
>>>a[1:4]
'ell'
|
| in | Mitgliedsoperator - Gibt True zurück, wenn die Zeichenkette das angegebene Zeichen enthält |
>>>"H" in a
True
|
| not in | Zugehörigkeitsoperator - Gibt True zurück, wenn die Zeichenkette das angegebene Zeichen nicht enthält |
>>>"M" not in a
True
|
| r/R | Raw-String - Raw-String: Alle Zeichenketten werden direkt nach ihrer wörtlichen Bedeutung verwendet, ohne Sonder- oder nicht druckbare Zeichen zu escapen. Abgesehen davon, dass der Buchstabe "r" (groß oder klein) vor das erste Anführungszeichen der Zeichenkette gesetzt wird, haben Raw-Strings fast genau dieselbe Syntax wie gewöhnliche Zeichenketten. | >>>print r'\n'
\n
>>> print R'\n'
\n |
| % | Formatzeichenkette | Siehe den nächsten Abschnitt |
Beispiel (Python 2.0+)
Das Ausführungsergebnis des obigen Programms ist:
a + b 输出结果: HelloPython a * 2 输出结果: HelloHello a[1] 输出结果: e a[1:4] 输出结果: ell H 在变量 a 中 M 不在变量 a 中 \n \n
Python-String-Formatierung
Python unterstützt formatierte String-Ausgabe. Obwohl dies sehr komplexe Ausdrücke umfassen kann, besteht die grundlegendste Verwendung darin, einen Wert mit dem String-Formatzeichen %s in einen String einzufügen.
In Python verwendet die String-Formatierung dieselbe Syntax wie die Funktion sprintf in C.
Das folgende ist ein Beispiel:
#!/usr/bin/python
print "My name is %s and weight is %d kg!" % ('Zara', 21)
Das Ausgabeergebnis des obigen Beispiels ist:
My name is Zara and weight is 21 kg!
Symbole für die Python-String-Formatierung:
| Symbol | Beschreibung |
|---|---|
| %c | Ein Zeichen und seinen ASCII-Code formatieren |
| %s | Einen String formatieren |
| %d | Eine ganze Zahl formatieren |
| %u | Eine vorzeichenlose ganze Zahl formatieren |
| %o | Eine vorzeichenlose Oktalzahl formatieren |
| %x | Eine vorzeichenlose Hexadezimalzahl formatieren |
| %X | Eine vorzeichenlose Hexadezimalzahl formatieren (Großbuchstaben) |
| %f | Formatiert eine Gleitkommazahl; die Genauigkeit nach dem Dezimalpunkt kann angegeben werden |
| %e | Formatiert eine Gleitkommazahl in wissenschaftlicher Notation |
| %E | Wie %e, formatiert eine Gleitkommazahl in wissenschaftlicher Notation |
| %g | Kurzform für %f und %e |
| %G | Kurzform für %F und %E |
| %p | Formatiert die Adresse einer Variablen als Hexadezimalzahl |
Hilfsdirektiven für Formatierungsoperatoren:
| Symbol | Funktion |
|---|---|
| * | Definiert die Breite oder die Genauigkeit nach dem Dezimalpunkt |
| - | Wird für linksbündige Ausrichtung verwendet |
| + | Zeigt ein Pluszeichen (+) vor positiven Zahlen an |
| <sp> | Zeigt ein Leerzeichen vor positiven Zahlen an |
| # | '0' vor Oktalzahlen anzeigen und '0x' oder '0X' vor Hexadezimalzahlen (abhängig davon, ob 'x' oder 'X' verwendet wird) |
| 0 | Mit '0' statt der standardmäßigen Leerzeichen vor angezeigten Zahlen auffüllen |
| % | '%%' gibt ein einzelnes '%' aus |
| (var) | Variablenzuordnung (Wörterbuchargumente) |
| m.n. | m ist die minimale angezeigte Gesamtbreite, n ist die Anzahl der Nachkommastellen (falls verfügbar) |
Ab Python 2.6 wurde eine neue Funktion zur Zeichenkettenformatierung hinzugefügtstr.format(), die die Zeichenkettenformatierungsfähigkeit erweitert.
Dreifache Anführungszeichen in Python
In Python können dreifache Anführungszeichen verwendet werden, um komplexe Zeichenketten zuzuweisen.
Dreifache Anführungszeichen in Python ermöglichen, dass sich eine Zeichenkette über mehrere Zeilen erstreckt. Die Zeichenkette kann Zeilenumbrüche, Tabulatoren und andere Sonderzeichen enthalten.
Die Syntax dreifacher Anführungszeichen ist ein Paar aufeinanderfolgender einfacher oder doppelter Anführungszeichen (normalerweise paarweise verwendet).
>>> hi = '''hi there''' >>> hi # repr() 'hi\nthere' >>> print hi # str() hi there
Dreifache Anführungszeichen befreien Programmierer aus dem Sumpf der Anführungszeichen und speziellen Zeichenketten und bewahren einen kleinen Block einer Zeichenkette von Anfang bis Ende im sogenannten WYSIWYG-Format (What You See Is What You Get).
Ein typischer Anwendungsfall ist, wenn Sie einen Block aus HTML oder SQL benötigen; in diesem Fall sollten Sie dreifache Anführungszeichen verwenden, um ihn zu kennzeichnen, da die Verwendung des traditionellen Escape-Zeichen-Systems sehr mühsam wäre.
errHTML = '''
<HTML><HEAD><TITLE>
Friends CGI Demo</TITLE></HEAD>
<BODY><H3>ERROR</H3>
<B>%s</B><P>
<FORM><INPUT TYPE=button VALUE=Back
ONCLICK="window.history.back()"></FORM>
</BODY></HTML>
'''
cursor.execute('''
CREATE TABLE users (
login VARCHAR(8),
uid INTEGER,
prid INTEGER)
''')
Unicode-Strings
In Python ist das Definieren eines Unicode-Strings so einfach wie das Definieren eines gewöhnlichen Strings:
>>> u'Hello World !' u'Hello World !'
Das kleingeschriebene „u“ vor den Anführungszeichen zeigt an, dass hier ein Unicode-String erstellt wird. Wenn Sie ein Sonderzeichen hinzufügen möchten, können Sie Pythons Unicode-Escape-Kodierung verwenden. Wie im folgenden Beispiel gezeigt:
>>> u'Hello\u0020World !' u'Hello World !'
Die ersetzte \u0020-Notation zeigt an, dass das Unicode-Zeichen mit dem Kodierungswert 0x0020 (Leerzeichen) an der angegebenen Position eingefügt wird.
In Python integrierte String-Funktionen
String-Methoden wurden schrittweise von Python 1.6 bis 2.0 hinzugefügt — sie wurden auch zu Jython hinzugefügt.
Diese Methoden implementieren die meisten Methoden des string-Moduls. Die folgende Tabelle listet die derzeit unterstützten integrierten String-Methoden auf. Alle Methoden umfassen Unicode-Unterstützung, und einige sind sogar speziell für Unicode.
| Methode | Beschreibung |
|---|---|
|
Den ersten Buchstaben des Strings großschreiben |
|
|
Gibt einen neuen String zurück, bei dem der ursprüngliche String zentriert und mit Leerzeichen auf die Länge width aufgefüllt wird |
|
|
Gibt die Anzahl der Vorkommen von str in string zurück; wenn beg oder end angegeben ist, wird die Anzahl der Vorkommen von str im angegebenen Bereich zurückgegeben |
|
|
Dekodiert string mit der durch encoding angegebenen Kodierung; wenn ein Fehler auftritt, wird standardmäßig eine ValueError-Ausnahme gemeldet, es sei denn, errors ist als 'ignore' oder 'replace' angegeben |
|
|
Kodiert string mit der durch encoding angegebenen Kodierung; wenn ein Fehler auftritt, wird standardmäßig eine ValueError-Ausnahme gemeldet, es sei denn, errors ist als 'ignore' oder 'replace' angegeben |
|
|
Prüft, ob die Zeichenkette mit obj endet. Wenn beg oder end angegeben ist, wird geprüft, ob sie innerhalb des angegebenen Bereichs mit obj endet. Wenn ja, wird True zurückgegeben; andernfalls False. |
|
|
Wandelt Tabulatorsymbole in der Zeichenkette in Leerzeichen um; die Standardanzahl von Leerzeichen für ein Tabulatorsymbol ist 8. |
|
|
Ermittelt, ob str in string enthalten ist; wenn beg und end einen Bereich angeben, wird geprüft, ob str im angegebenen Bereich enthalten ist; wenn ja, wird der Startindexwert zurückgegeben, andernfalls -1. |
|
|
Formatzeichenkette |
|
|
Gleich wie die Methode find(), außer dass sie eine Ausnahme auslöst, wenn str nicht in string enthalten ist. |
|
|
Wenn string mindestens ein Zeichen hat und alle Zeichen Buchstaben oder Ziffern sind, dann gib True zurück, andernfalls gib False zurück. |
|
|
Wenn string mindestens ein Zeichen hat und alle Zeichen Buchstaben sind, gib True zurück, andernfalls gib False zurück. |
|
|
Wenn string nur Dezimalziffern enthält, gib True zurück; andernfalls gib False zurück. |
|
|
Wenn string nur Ziffern enthält, gib True zurück; andernfalls gib False zurück. |
|
|
Wenn string mindestens ein Zeichen mit Groß-/Kleinschreibung enthält und alle derartigen Zeichen kleingeschrieben sind, gib True zurück; andernfalls gib False zurück. |
|
|
Wenn string nur numerische Zeichen enthält, gib True zurück; andernfalls gib False zurück. |
|
|
Wenn string nur Leerraumzeichen enthält, gib True zurück; andernfalls gib False zurück. |
|
|
Wenn string in Title-Case-Schreibweise ist (siehe title()), gib True zurück; andernfalls gib False zurück. |
|
|
Wenn string mindestens ein Zeichen mit Groß-/Kleinschreibung enthält und alle derartigen Zeichen großgeschrieben sind, gib True zurück; andernfalls gib False zurück. |
|
|
Mit string als Trennzeichen werden alle Elemente (ihre String-Darstellungen) in seq zu einer neuen Zeichenkette zusammengefügt. |
|
|
Gibt eine neue Zeichenkette zurück, wobei die ursprüngliche Zeichenkette linksbündig ausgerichtet und mit Leerzeichen auf die Länge width aufgefüllt wird. |
|
|
Wandelt alle Großbuchstaben in string in Kleinbuchstaben um. |
|
|
Entfernt die führenden Leerzeichen aus string. |
|
|
Die Methode maketrans() wird verwendet, um eine Übersetzungstabelle für die Zeichenzuordnung zu erstellen. Bei der einfachsten Aufrufmethode, die zwei Parameter akzeptiert, ist der erste Parameter eine Zeichenkette, die die umzuwandelnden Zeichen darstellt, und der zweite Parameter ist ebenfalls eine Zeichenkette, die das Konvertierungsziel darstellt. |
|
|
Gibt denstrgrößten Buchstaben in der Zeichenkette zurück. |
|
|
Gib denstrkleinsten Buchstaben in der Zeichenkette zurück. |
|
|
Etwas wie eine Kombination aus find() und split(); beginnend an der ersten Position, an der str erscheint, teilt die Zeichenkette in ein 3-Elemente-Tupel (string_pre_str, str, string_post_str) auf. Wenn str nicht in string enthalten ist, dann ist string_pre_str == string. |
|
|
Ersetze str1 in string durch str2; wenn num angegeben ist, ersetze höchstens num Mal. |
|
|
Ähnlich der Funktion find(); gibt die Position des letzten Vorkommens der Zeichenkette zurück oder -1, wenn es keine Übereinstimmung gibt. |
|
|
Ähnlich wie index(), gibt aber den Index des letzten übereinstimmenden Teilstrings zurück. |
|
|
Gibt eine neue Zeichenkette zurück, bei der die ursprüngliche Zeichenkette rechtsbündig ausgerichtet und mit Leerzeichen auf die Länge width aufgefüllt ist. |
|
|
Ähnlich der Funktion partition(), sucht jedoch von rechts. |
|
|
Entfernt die nachfolgenden Leerzeichen aus string. |
|
|
Mit str als Trennzeichen string aufteilen; wenn num einen angegebenen Wert hat, nurnum+1Teilzeichenfolgen aufteilen. |
|
|
Nach Zeilen ('\r', '\r\n', '\n') aufteilen und eine Liste zurückgeben, die jede Zeile als Element enthält. Wenn das Argument keepends False ist, werden Zeilenumbruchzeichen nicht eingeschlossen; wenn True, werden Zeilenumbruchzeichen beibehalten. |
|
|
Prüfen, ob die Zeichenkette mit obj beginnt; wenn ja, True zurückgeben, andernfalls False zurückgeben. Wenn beg und end Werte angeben, innerhalb des angegebenen Bereichs prüfen. |
|
|
lstrip() und rstrip() auf string anwenden. |
|
|
Die Groß-/Kleinschreibung in string vertauschen. |
|
|
Gibt eine Zeichenkette in Title-Case-Schreibweise zurück, bei der alle Wörter mit einem Großbuchstaben beginnen und die restlichen Buchstaben kleingeschrieben sind (siehe istitle()). |
|
|
Konvertiert die Zeichen von string gemäß der durch str angegebenen Tabelle (mit 256 Zeichen), die herauszufilternden Zeichen in den del-Parameter platzieren. |
|
|
Wandelt Kleinbuchstaben in string in Großbuchstaben um. |
|
|
Gibt eine Zeichenkette der Länge width zurück, wobei die ursprüngliche Zeichenkette rechtsbündig ausgerichtet und links mit Nullen aufgefüllt wird. |