Verschiedene String-Operationen in Python integriert

Vor

Jede Operation der Zeichenkette

Bis zum vorherigen Kapitel haben Sie grundlegende Python-Operationen, -Typen, integrierte Funktionen usw. kennengelernt. In diesem Kapitel lernen wir zusätzliche Operationen für Zeichenketten kennen (wir haben einige Operationsmethoden bis zum vorherigen Kapitel gelernt, aber es gibt verschiedene andere wichtige und bequeme Operationsmethoden, so dass wir sie lernen werden). ..

Es gibt so viele, und selbst wenn Sie sich nicht an alles erinnern, ist es in Ordnung, einfach zu sagen: "Übrigens gab es so etwas." Es ist kein Problem, wenn Sie jedes Mal suchen und sich daran erinnern können, wenn Sie es brauchen.

String-Index und Slice

Sie haben im beschreibungsbezogenen Abschnitt der Liste etwas über das Schneiden gelernt (z. B. das Extrahieren nur bis zu einem bestimmten Wertebereich in der Liste), aber Sie können das gleiche Schneiden auch mit Zeichenfolgen durchführen. Wie im Fall der Liste kann sie durch Angabe des Indexbereichs mithilfe von Klammern, Zahlen und Doppelpunkten wie "[1: 3]" gesteuert werden.

Jedem Zeichen werden Indexnummern zugewiesen. Wie bei der Liste beginnt sie bei 0.

Wenn die Zeichenfolge beispielsweise "Apple" lautet, wird der Index wie folgt zugewiesen.

Man kann sagen, dass "eine Zeichenfolge wie eine Liste mit Zeichen ist".

Versuchen wir, Code zu schreiben, um tatsächlich auf den Wert des Index in einer Liste zu verweisen.

Versuchen Sie zunächst, den Inhalt eines bestimmten Index auszugeben (geben Sie beispielsweise "[0]" oder "[1]" an). Sie können bestätigen, dass nur das entsprechende Zeichen ausgegeben wird.

str_value = 'Apple'
print(str_value[0])

Inhalt der Ausgabe des Codeausführungsergebnisses:

A

str_value = 'Apple'
print(str_value[1])

Ausgabeinhalt des Ergebnisses der Codeausführung:

p

Versuchen Sie als Nächstes, eine Zeichenfolge in einem bestimmten Bereich durch Schneiden zu extrahieren, z. B. "nach dem Index von XX und weniger als dem Index von XX". Wie bei der Liste steht die Zahl auf der linken Seite des Doppelpunkts für "nach dem Index von XX", und die Zahl auf der rechten Seite des Doppelpunkts ist "kleiner als der Index von XX". Mit anderen Worten, wenn Sie "[1: 4]" angeben, lautet die Bedingung "1 oder mehr und weniger als 4" (für Indizes von 1, 2, 3), und wenn Sie sie für das Zeichen "Apple" festlegen, lautet sie "ppl". Das Teil kann extrahiert werden.

str_value = 'Apple'
print(str_value[1:4])

Ausgabeinhalt des Ergebnisses der Codeausführung:

ppl

Natürlich können Sie wie bei Slices in der Liste auch nur die Nummer auf der linken Seite des Doppelpunkts und nur die Bedingung "nach XX" oder nur die Nummer auf der rechten Seite und nur die Bedingung "kleiner als XX" angeben. können.

Finden Sie heraus, ob der Anfang einer Zeichenfolge eine bestimmte Zeichenfolge ist: Starts mit der Methode

Mit den Zeichenfolgen mit Methode können Sie den booleschen Wert abrufen, ob die Zielzeichenfolge mit der als erstes Argument übergebenen Zeichenfolge beginnt.

Da es in Englisch geschrieben ist, wie "beginnt mit XX-Zeichenfolge", was "beginnt mit XX-Zeichenfolge" bedeutet, wird der Methodenname daraus abgeleitet.

In Programmen werden Variablennamen und Konstantennamen häufig geschrieben, indem die Werte derselben Gruppe vereinheitlicht werden und mit einer bestimmten Zeichenfolge begonnen wird, die auch als Präfix bezeichnet wird. pre hat die Bedeutung von" before "und wird wie" was am Anfang hinzugefügt wird "(und andere) verwendet.

Beispielsweise kann eine Konstante mit dem Präfix "ITEM_ID_" so etwas wie "ITEM_ID_〇〇" benannt werden.

Die Methode beginwith ist nützlich, um zu überprüfen, ob ein solches Präfix die Zielzeichenfolge ist. Wie in einem späteren Kapitel erwähnt wird, können Variablennamen und Konstantennamen im Programm auch als Zeichenfolgen abgerufen werden, sodass die Verarbeitung gesteuert werden kann, wenn es sich um ein bestimmtes Präfix handelt.

Wenn Sie als erstes Argument ein Präfix angeben, wird der boolesche Wert True oder False zurückgegeben.

Fall, in dem True zurückgegeben wird, weil die Zeichenfolge mit dem angegebenen Präfix beginnt:

str_value = 'FRUIT_ID_APPLE'
print(str_value.startswith('FRUIT_ID_'))

Ausgabeinhalt des Ergebnisses der Codeausführung:

True

Fall, in dem False zurückgegeben wird, weil die Zeichenfolge nicht mit dem angegebenen Präfix beginnt:

str_value = 'FRUIT_ID_APPLE'
print(str_value.startswith('ITEM_ID'))

Ausgabeinhalt des Ergebnisses der Codeausführung:

False

Überprüfen Sie, ob das Ende einer Zeichenfolge mit einer bestimmten Zeichenfolge endet: Endswith-Methode

Die Endswith-Methode ähnelt der Startswith-Methode, die Starts-Methode zielt jedoch auf den Anfang der Zeichenfolge ab, während sie auf das Ende abzielt.

Die Zeichenfolge am Ende wird als Suffix bezeichnet.

Wie die Startswith-Methode wird auch die Endswith-Methode verwendet, indem als erstes Argument ein Suffix angegeben wird. Das Ergebnis wird auch als boolescher Wert zurückgegeben.

Fall, in dem True zurückgegeben wird, weil die Zeichenfolge mit dem angegebenen Suffix endet:

str_value = 'CAT_NAME'
print(str_value.endswith('_NAME'))

Ausgabeinhalt des Ergebnisses der Codeausführung:

True

Fall, in dem False zurückgegeben wird, weil die Zeichenfolge nicht mit dem angegebenen Suffix endet:

str_value = 'CAT_AGE'
print(str_value.endswith('_NAME'))

Ausgabeinhalt des Ergebnisses der Codeausführung:

False

Obwohl die Methoden beginwith und endwith mit Slices dasselbe tun können ...

Wie im vorherigen Abschnitt erwähnt, können Zeichenfolgen in Scheiben geschnitten werden, um eine Reihe von Zeichenfolgen zu extrahieren. Sie können beispielsweise den Präfixteil einer beliebigen Anzahl von Zeichen abrufen, indem Sie die folgenden Schritte ausführen.

str_value = 'FRUIT_ID_APPLE'
print(str_value[:6])

Ausgabeinhalt des Ergebnisses der Codeausführung:

FRUIT_

Wie wir in einem späteren Kapitel erfahren werden, können Sie in Python zwei gleiche Symbole mit halber Breite und beliebige Werte links und rechts angeben, z. B. "Wert auf der linken Seite == Wert auf der rechten Seite" und wenn die Werte auf beiden Seiten eins sind. Wenn Sie dies tun, ist es wahr, und wenn es nicht übereinstimmt, ist es falsch.

Beispiel, das wahr ist, weil die Werte auf beiden Seiten übereinstimmen:

int_value = 100
print(int_value == 100)

Ausgabeinhalt des Ergebnisses der Codeausführung:

True

Beispiel, das falsch ist, weil die Werte auf beiden Seiten nicht übereinstimmen:

int_value = 95
print(int_value == 100)

Ausgabeinhalt des Ergebnisses der Codeausführung:

False

Mit Slices und diesen beiden gleichen Symbolen können Sie dasselbe tun wie mit den Methoden beginwith und endwithwith. Wenn Sie beispielsweise "[: 9]" als Slice angeben (siehe Abbildung unten), können Sie die ersten 9 Zeichen abrufen. Wenn Sie also das Präfix angeben, das eine Zeichenfolge auf der linken und rechten Seite sein soll, verwenden Sie die Methode "beginwith". Sie können den booleschen Wert von True oder False genau wie bei erhalten.

str_value = 'FRUIT_ID_APPLE'
print(str_value[:9] == 'FRUIT_ID_')

Ausgabeinhalt des Ergebnisses der Codeausführung:

True

Diese Schreibmethode verhält sich jedoch nicht wie erwartet, wenn Sie beim Zählen der Anzahl der Zeichen einen Fehler machen oder versehentlich die Anzahl im Slice angeben. Beispielsweise trifft der folgende Code nicht die erwartete Beurteilung.

str_value = 'FRUIT_ID_APPLE'
print(str_value[:9] == 'FRUIT_ID')

Ausgabeinhalt des Ergebnisses der Codeausführung:

False

Mit dieser Schreibmethode ist es schwierig, den Punkt "Was ist falsch ...?" Auf den ersten Blick sofort zu verstehen, und der Inhalt des Codes scheint auch schwer zu lesen zu sein. Der Vergleich von Präfixen (Buchstabenanfang) ist auf der Suffixseite (Buchstabenende) noch schwieriger zu lesen.

In Bezug auf die Fehleranfälligkeit hier ist festgelegt, dass beginnend mit und endend mit auch in PEP 8 des Python-Codierungsstandards verwendet werden sollte.

Verwenden Sie ''. Startswith () und ''. Endswith () anstelle von String Slicing, um zu überprüfen, ob ein String ein bestimmtes Präfix oder Suffix hat.

Verwenden Sie Startswith () und Endswith () für sauberen, fehlerfreien Code: Python Code Style Guide

Wenn Sie sich etwas Zeit nehmen, während andere den Code lesen, können Sie den Inhalt fest erfassen. Da die Zeit in Ihrer täglichen Arbeit jedoch begrenzt ist, ist es ideal, dass der Code sofort so gut wie möglich erfasst werden kann.

Sofern Sie keinen bestimmten Grund haben, beginnt die Verwendung mit usw. anstelle von Slices gemäß PEP8.

Suchen Sie die Position in einer Zeichenfolge, die eine bestimmte Zeichenfolge enthält: find-, rfind-, index- und rindex-Methoden

In diesem Abschnitt lernen Sie vier Methoden zum Suchen von Zeichenfolgen kennen: rfind, index und rindex. Die Suchmethode wird häufig verwendet, die anderen drei werden jedoch möglicherweise relativ selten benötigt.

Die Suchmethode wird verwendet, um herauszufinden, wo eine bestimmte Zeichenfolge in einer Zeichenfolge enthalten ist.

Geben Sie zur Verwendung die Zeichenfolge an, nach der Sie im ersten Argument suchen möchten. Der Rückgabewert wird an der ersten gefundenen Stelle indiziert. Wie bei Indizes wie Listen beginnen Indexwerte bei 0 (das erste Zeichen ist 0 im Index, das zweite Zeichen ist 1 im Index usw.).

Der folgende Code sucht beispielsweise nach dem Wort "cat". Da das Ergebnis 3 zurückgegeben wird, können Sie überprüfen, ob der Index 3 (4. Zeichen) ein Zeichen "cat" enthält.

str_value = 'Ich bin eine Katze. Es gibt noch keinen Namen.'
print(str_value.find('Katze'))

Inhalt der Ausgabe des Codeausführungsergebnisses:

3

Wenn Sie die erhaltene Index-Ganzzahl (diesmal 3) in der Zeichenfolge angeben, können Sie bestätigen, dass die Position mit dem Zeichen "cat" übereinstimmt.

str_value = 'Ich bin eine Katze. Es gibt noch keinen Namen.'
print(str_value[3])

Inhalt der Ausgabe des Codeausführungsergebnisses:

Katze

Wenn Sie anstelle des Buchstabens "cat" eine Zeichenfolge wie "cat" angeben, wird der Index zurückgegeben, an dem diese Zeichenfolge beginnt. Daher ist in diesem Beispiel die Index-Ganzzahl, die zurückgegeben wird, wenn das Zeichen "cat" angegeben wird, der gleiche Wert von 3.

str_value = 'Ich bin eine Katze. Es gibt noch keinen Namen.'
print(str_value.find('Sei eine Katze'))

Ausgabeinhalt des Ergebnisses der Codeausführung:

3

Wenn die in der Suche angegebene Zeichenfolge nicht gefunden wird, wird -1 zurückgegeben.

str_value = 'Ich bin eine Katze. Es gibt noch keinen Namen.'
print(str_value.find('Hund'))

Inhalt der Ausgabe des Codeausführungsergebnisses:

-1

Auf diese Weise kann auch beurteilt werden, ob eine bestimmte Zeichenfolge enthalten ist, je nachdem, ob -1 zurückgegeben wird.

Das zweite Argument ist der Startwert des zu durchsuchenden Indexbereichs. Wenn beispielsweise 4 angegeben ist, lautet das Verhalten "Suche nach Zeichenfolgen im Indexbereich nach 4" (wenn nicht angegeben, wird die Suche ab dem ersten Index 0 ausgeführt).

Im folgenden Beispiel werden 3 und 4 als zweites Argument angegeben, und es wird bestätigt, dass sich das Ergebnis ändert, ob die Zeichenfolge gefunden wurde oder nicht.

Beispielfall, in dem das entsprechende Zeichen gefunden wird:

str_value = 'Ich bin eine Katze.'
print(str_value.find('Katze', 3))

Inhalt der Ausgabe des Codeausführungsergebnisses:

3

Beispielfall, in dem das entsprechende Zeichen aufgrund des Einflusses des Startindex nicht gefunden wird:

str_value = 'Ich bin eine Katze.'
print(str_value.find('Katze', 4))

Inhalt der Ausgabe des Codeausführungsergebnisses:

-1

Das dritte Argument ist der Endwert des zu durchsuchenden Index. Wenn nicht angegeben, wird die Suche bis zur letzten Zeichenfolge ausgeführt.

Bitte beachten Sie, dass der hier angegebene Wert keine Bedingung von "kleiner oder gleich" ist, sondern eine Bedingung von "kleiner als". Wenn also 3 angegeben ist, wird Index 3 nicht in das Indexziel aufgenommen und bis zu 2 werden durchsucht.

Als Ergebnis der Angabe von 3 für das dritte Argument ein Beispielfall, in dem bei der Suche kein Treffer gefunden wurde:

str_value = 'Ich bin eine Katze.'
print(str_value.find('Katze', 0, 3))

Ausgabeinhalt des Ergebnisses der Codeausführung:

-1

Durch die Angabe von 4 für das dritte Argument ist der Bereich kleiner als 4, sodass ein Beispielfall vorliegt, in dem ein Zeichen mit einem Index von 3 getroffen wird:

str_value = 'Ich bin eine Katze.'
print(str_value.find('Katze', 0, 4))

Inhalt der Ausgabe des Codeausführungsergebnisses:

3


Neben der Suchmethode befindet sich die Methode rfind.

Im Gegensatz zur find-Methode sucht die rfind-Methode von der rechten Seite der Zeichenfolge. r ist richtig r im Sinne von "von der rechten Seite".

Wenn Sie beispielsweise in der Zeichenfolge "Ich bin eine Katze. Ich denke manchmal, während ich eine Katze bin." Nach dem Zeichen "Katze" suchen, ist die Suche von rechts und die Position des ersten Treffers der Rückgabewert. Da es verwendet wird, ist die Position des zweiten "Katzen" -Zeichens das Ziel.

str_value = 'Ich bin eine Katze. Obwohl ich eine Katze bin, denke ich manchmal darüber nach.'
print(str_value.rfind('Katze'))

Inhalt der Ausgabe des Codeausführungsergebnisses:

11

Es ist zu beachten, dass obwohl die Suche selbst von rechts durchgeführt wird, die Indexnummer des Ergebnisses als normaler Index zurückgegeben wird, der von links gezählt wird.

Wie in der Liste im vorherigen Kapitel erwähnt, wenn Sie im Index "-1", "-2", "-3", ... angeben, das Zeichen ganz rechts, das zweite Zeichen vom rechten Ende bzw. das dritte Zeichen vom rechten Ende. Sie können auch nach Index basierend auf dem rechten Ende der Zeichenfolge zugreifen, z. B. Zeichen ..., aber die Methode rfind gibt den Wert des normalen Index basierend auf dem linken Ende zurück. Wenn Sie also den Index wie gewohnt angeben Sie können das entsprechende Zeichen erhalten.

str_value = 'Ich bin eine Katze. Obwohl ich eine Katze bin, denke ich manchmal darüber nach.'
index = str_value.rfind('Katze')
print(str_value[index])

Ausgabeinhalt des Ergebnisses der Codeausführung:

Katze

Das zweite und dritte Argument sind der Startwert und der Endwert (kleiner als) des zu durchsuchenden Indexbereichs, wie bei der Suchmethode. Auch hier ist die Indexnummer nicht von rechts, aber die Indexnummer von links wird wie ein normaler Index verwendet. Die Suche wird "von der rechten Seite" innerhalb des angegebenen Indexbereichs durchgeführt.

str_value = 'Ich bin eine Katze. Obwohl ich eine Katze bin, denke ich manchmal darüber nach.'
print(str_value.rfind('Katze', 11))

Inhalt der Ausgabe des Codeausführungsergebnisses:

11

str_value = 'Ich bin eine Katze. Obwohl ich eine Katze bin, denke ich manchmal darüber nach.'
print(str_value.rfind('Katze', 12))

Inhalt der Ausgabe des Codeausführungsergebnisses:

-1


Die Indexmethode verhält sich ähnlich wie die Suchmethode. Dies ist auch das Verhalten beim Durchsuchen der Zeichenfolge und beim Abrufen der Nummer des gefundenen Index.

Bei der Suchmethode wurde jedoch -1 zurückgegeben, wenn die gesuchte Zeichenfolge nicht gefunden wurde. Bei der Indexmethode tritt jedoch anstelle von -1 ein Fehler auf.

Beispielfall, der sich wie find verhält, weil die entsprechende Zeichenfolge vorhanden ist:

str_value = 'Ich bin eine Katze.'
print(str_value.index('Katze'))

Inhalt der Ausgabe des Codeausführungsergebnisses:

3

Beispielfall, in dem ein Fehler auftritt, weil die entsprechende Zeichenfolge nicht gefunden werden kann:

str_value = 'Ich bin eine Katze.'
print(str_value.index('Hund'))
ValueError: substring not found

Teilzeichenfolge bedeutet einen Teil einer bestimmten Zeichenfolge. Bei diesen Methoden bezieht es sich auf die zu suchende Zeichenfolge als erstes Argument. Daher lautet die Fehlermeldung etwa "Die in der Suche angegebene Zeichenfolge wurde nicht gefunden."


Wie Sie dem Namen entnehmen können, verhält sich die letzte rindex-Methode wie ein Fehler, wenn die Suche wie die rfind-Methode von rechts ausgeführt wird und die für die Suche angegebene Zeichenfolge nicht wie die index-Methode gefunden wird.

str_value = 'Ich bin eine Katze. Obwohl ich eine Katze bin, denke ich manchmal darüber nach.'
print(str_value.rindex('Katze'))

Ausgabeinhalt des Ergebnisses der Codeausführung:

11

str_value = 'Ich bin eine Katze. Obwohl ich eine Katze bin, denke ich manchmal darüber nach.'
str_value.rindex('Hund')
ValueError: substring not found

Ersetzen Sie die Zeichenfolge durch eine andere Zeichenfolge: Ersetzen, Übersetzen, Maketrans-Methoden

In diesem Abschnitt erfahren Sie mehr über das Ersetzen von Zeichenfolgen. Steuerelemente wie das Ersetzen eines bestimmten Zeichenfolgenteils durch eine andere Zeichenfolge sind anwendbar. Es zielt auf drei Methoden ab: Ersetzen, Übersetzen und Maketrans. Insbesondere die Ersetzungsmethode wird häufig verwendet.


Lassen Sie uns zunächst über die Ersetzungsmethode sprechen. Die Methode replace sucht nach einer bestimmten Zeichenfolge und ersetzt diese Zeichenfolge durch eine andere.

Geben Sie die Zeichenfolge an, nach der im ersten Argument gesucht werden soll, und die Zeichenfolge nach dem Ersetzen im zweiten Argument. Wenn Sie beispielsweise den Teil "cat" in der Zeichenfolge durch "dog" ersetzen möchten, schreiben Sie wie folgt.

str_value = 'Ich bin eine Katze. Obwohl ich eine Katze bin, denke ich manchmal darüber nach.'
print(str_value.replace('Katze', 'Hund'))

Inhalt der Ausgabe des Codeausführungsergebnisses:

Ich bin ein Hund. Obwohl ich ein Hund bin, denke ich manchmal darüber nach.

Das dritte Argument ist die Anzahl der Ersetzungen. Wenn nicht angegeben, werden alle gesuchten und getroffenen Zeichenketten ersetzt. Wenn 1 angegeben ist, wird es nur einmal ersetzt, und wenn 2 angegeben wird, wird es nur zweimal ersetzt. Im folgenden Code wird 1 für das dritte Argument angegeben, sodass nur der erste Zeichenteil "cat" ersetzt wird.

str_value = 'Ich bin eine Katze. Obwohl ich eine Katze bin, denke ich manchmal darüber nach.'
print(str_value.replace('Katze', 'Hund', 1))

Ausgabeinhalt des Ergebnisses der Codeausführung:

Ich bin ein Hund. Obwohl ich eine Katze bin, denke ich manchmal darüber nach.


Verwenden Sie die Methoden translate und maketrans zusammen. Sie können mehrere Zeichen gleichzeitig ersetzen, indem Sie eine bestimmte Kombination des Zeichens vor dem Ersetzen und des Zeichens nach dem Ersetzen angeben.

Außerdem ist das Ziel "ein Zeichen". Sie können es nicht für mehrere Zeichenfolgen verwenden. Verwenden Sie daher die Ersetzungsmethode. Wenn Sie viele Zeichen ersetzen müssen, können Sie sie mit der Übersetzungsmethode schnell und durch einfachen Code ersetzen.

Die maketrans-Methode ist eine Methode zum Erstellen von Daten für die Kombination von Ersetzungen. Es kann mit einer Instanz einer Zeichenfolge verwendet werden, es ist jedoch üblicher, die Klasse, die später berührt werden soll, direkt anzugeben (schreiben Sie sie als "str.maketrans").

Der Methodenname stammt aus der englischen Satzübersetzungstabelle. Da Übersetzung Übertragung oder Interpreter bedeutet und Tabelle Tabelle bedeutet, bedeutet dies, eine Konvertierungstabelle von Zeichen zu Zeichen zu erstellen.

Es gibt zwei Möglichkeiten, den Wert in der maketrans-Methode anzugeben: "die Methode, die durch den Schlüssel und den Wert des Wörterbuchs angegeben werden soll" und "die Methode, die durch zwei Sätze des ersten und des zweiten Arguments angegeben werden soll".

Lassen Sie uns zunächst sehen, wie Sie im Wörterbuch festlegen. Geben Sie das Wörterbuch als erstes Argument der maketrans-Methode an, geben Sie das Zeichen vor dem Ersetzen des Schlüssels und das Zeichen nach dem Ersetzen des Werts an. Wenn Sie mehrere Ziele haben, geben Sie mehrere Schlüssel- / Wertesätze an.

Dieses Mal werde ich versuchen, den Code zu verwenden, der die Satzzeichen durch die folgenden Kombinationen ersetzt (links steht vor dem Ersetzen, rechts steht nach dem Ersetzen).

trans_table = str.maketrans(
    {
        '、': ',',
        '。': '.',
    }
)

Alternativ können Sie im ersten Argument eine Zeichenfolge angeben, in der die Zeichen vor dem Ersetzen jeweils zeichenweise festgelegt werden (in diesem Beispiel die Zeichenfolgen , .), und im zweiten Argument werden die Zeichenfolgen nach dem Ersetzen zeichenweise geordnet. Sie können auch den Zeichenkettensatz angeben (in diesem Beispiel die Zeichenkette , .). Stellen Sie sicher, dass die Reihenfolge der Zeichen im ersten und zweiten Argument identisch ist. Diese Schreibmethode hat das gleiche Verhalten wie bei Verwendung eines Wörterbuchs.

trans_table = str.maketrans('、。', ',.')

Verwenden wir die translate-Methode mit den Daten, die mit der maketrans-Methode erstellt wurden. Geben Sie im ersten Argument die von der maketrans-Methode erstellten Daten an.

str_value = 'Miau, ich habe versucht, es zu versuchen, aber niemand kam.'
print(str_value.translate(trans_table))

Ausgabeinhalt des Ergebnisses der Codeausführung:

Miau,Miauと試みにやって見たが誰も来ない.


In diesem Abschnitt haben Sie Informationen zum Ersetzen von Zeichen zu Zeichen oder Zeichen zu Zeichenfolgen erhalten. Es gibt auch eine Ersetzungsmethode (und eine bequeme) wie "Ersetzen Sie etwas, das einem bestimmten Muster entspricht" mithilfe eines sogenannten regulären Ausdrucks.

Wir werden später im Kapitel über reguläre Ausdrücke mehr über reguläre Ausdrücke sprechen.

Geteilte Zeichenfolgen: Split-, Rsplit-, Splitlines-, Partitions- und Partitionsmethoden

In diesem Abschnitt erfahren Sie mehr über das Teilen von Zeichenfolgen. Es werden fünf Methoden angestrebt: Split, Rsplit, Splitlines, Partition und Partition. Besonders die grundlegendste Split-Methode wird häufig verwendet.

Das Ergebnis der Aufteilung der Zeichenfolge ist eine Liste mit den Zeichenfolgen. Es wird in Fällen verwendet, in denen jeder Wert eine Bedeutung mit einem bestimmten Zeichenbegrenzer hat, z. B. einem Komma-Trennzeichen, einem Leerzeichen-Trennzeichen und einem Tabulator-Trennzeichen.


Beginnen wir mit der Split-Methode. split ist ein Wort, das "split" bedeutet.

Wenn Sie im ersten Argument ein beliebiges Trennzeichen angeben, wird eine Liste mit den durch das Trennzeichen getrennten Zeichenfolgen zurückgegeben.

Im folgenden Beispiel werden die Zeichenfolgen durch Kommas mit halber Breite geteilt, um eine Liste zu erstellen, in der jede Zeichenfolge gespeichert ist. Bei der Split-Methode ist die durch Splitting (, in diesem Beispiel) angegebene Zeichenfolge nicht in der Ergebnisliste enthalten.

str_value = '100,200,300'
print(str_value.split(','))

Inhalt der Ausgabe des Codeausführungsergebnisses:

['100', '200', '300']

Das zweite Argument ist die maximale Anzahl von Teilungen. Wenn Sie beispielsweise 2 angeben, wird es zweimal aufgeteilt und die Anzahl der Ergebnisse in der Liste beträgt 3. Der Teil der Zeichenfolge, der die Anzahl überschreitet, wird nicht geteilt und bleibt so, wie er am letzten Wert in der Ergebnisliste ist.

str_value = '100,200,300,400,500'
print(str_value.split(',', 2))

Inhalt der Ausgabe des Codeausführungsergebnisses:

['100', '200', '300,400,500']

Wenn das zweite Argument weggelassen wird, wird die Division mit allen Trennzeichen durchgeführt.


Die rsplit-Methode führt wie jede andere Methode mit einem r am Anfang den Teilungsprozess "von der rechten Seite" aus. Wenn jedoch das zweite Argument weggelassen wird, wird die Division für alle Begrenzer ausgeführt, sodass das gleiche Ergebnis erzielt wird, unabhängig davon, ob die Division von links oder von rechts stammt. Mit anderen Worten, es verhält sich genauso wie die Split-Methode.

Codebeispiel für rsplit, das das gleiche Ergebnis wie split liefert:

str_value = '100,200,300'
print(str_value.rsplit(','))

Inhalt der Ausgabe des Codeausführungsergebnisses:

['100', '200', '300']

Wenn das zweite Argument (maximale Anzahl von Unterteilungen) angegeben wird, wird die Unterteilung "von rechts" ausgeführt, sodass die ungeteilte Zeichenfolge am Anfang (linkes Ende) der Liste verbleibt.

str_value = '100,200,300,400,500'
print(str_value.rsplit(',', 2))

Ausgabeinhalt des Ergebnisses der Codeausführung:

['100,200,300', '400', '500']


Die Splitlines-Methode teilt die Zeichenfolge durch Zeilenumbrüche auf. Linie ist ein Wort, das auch Linie bedeutet.

Sollte ich eine Unterbrechung in der Aufteilungsmethode angeben? Der Ausdruck von Zeilenumbrüchen kann sich jedoch je nach Umgebung wie Betriebssystem und Version ändern. Wenn Sie also alles hinzufügen, wird der Code kompliziert.

Zeilenumbrüche werden durch "\ n" in der Zeichenfolge, "\ r \ n", "\ r" oder durch die Verwendung von drei Anführungszeichen in der Zeichenfolge dargestellt, je nach Umgebung. Sie können auch eingeben.

Wenn Sie versuchen, eine Zeichenkette mit den Zeichen \ n und \ r \ n mit Jupyter unter Windows mit der Druckfunktion auszugeben, werden beide als Zeilenumbrüche angezeigt.

print('a\nb')

Ausgabeinhalt des Ergebnisses der Codeausführung:

a
b

print('a\r\nb')

Ausgabeinhalt des Ergebnisses der Codeausführung:

a
b

Wie Sie sehen, gibt es mehrere Ausdrücke für Zeilenumbrüche. Was ist jedoch, wenn Sie versuchen, sie mit der Split-Methode zu teilen? Wenn die Split-Methode beispielsweise Zeilenumbrüche angibt, die durch "\ n" getrennt sind, wenn die Daten eingehen, für die die Zeilenumbrüche durch "\ r \ n" dargestellt werden.

Wenn ich es versuche, bleibt der Teil "\ r" im Ergebnis, wie unten gezeigt, und es ist nicht das, was ich erwartet habe.

str_value = '100\r\n200\r\n300'
print(str_value.split('\n'))

Ausgabeinhalt des Ergebnisses der Codeausführung:

['100\r', '200\r', '300']

Wenn ich mich mit einem Programm befasse, möchte ich einfach "durch Zeilenumbrüche teilen", ohne mir Gedanken über den Unterschied in den Zeilenumbruchausdrücken in diesem Bereich zu machen. In solchen Fällen wird eine Splitlines-Methode bereitgestellt. Mit dieser Methode können Sie einfach durch Zeilenumbrüche teilen, ohne komplizierten Code schreiben zu müssen.

Sie können sehen, dass das gleiche Ergebnis erzielt werden kann, indem Sie es in einer Zeichenfolge ausführen, die verschiedene Zeilenumbrüche enthält, wie unten gezeigt.

Geteiltes Beispiel für den Fall, dass der Zeilenumbruch durch \ n dargestellt wird:

str_value = '100\n200\n300'
print(str_value.splitlines())

Ausgabeinhalt des Ergebnisses der Codeausführung:

['100', '200', '300']

Geteiltes Beispiel für den Fall, dass der Zeilenumbruch durch \ r \ n dargestellt wird:

str_value = '100\r\n200\r\n300'
print(str_value.splitlines())

Inhalt der Ausgabe des Codeausführungsergebnisses:

['100', '200', '300']

Geteiltes Beispiel für den Fall, dass der Zeilenumbruch durch \ r dargestellt wird:

str_value = '100\r200\r300'
print(str_value.splitlines())

Inhalt der Ausgabe des Codeausführungsergebnisses:

['100', '200', '300']

Geteiltes Beispiel für den Fall, dass die Zeilenumbrüche direkt in eine Zeichenfolgendarstellung mit drei aufeinander folgenden Anführungszeichen geschrieben werden:

str_value = """100
200
300
"""
print(str_value.splitlines())

Ausgabeinhalt des Ergebnisses der Codeausführung:

['100', '200', '300']


Die Partitionsmethode führt wie die Teilungsmethode eine Teilung durch Angabe eines Trennzeichens durch. Es unterscheidet sich jedoch in den folgenden Punkten von der Aufteilungsmethode.

Ich werde den Code tatsächlich schreiben und es versuchen. Wenn Sie es mit einer Zeichenfolge versuchen, die einen Doppelpunkt als Beispiel enthält, können Sie sehen, dass das Ergebnis zwischen den Zeichenfolgen links und rechts vom Doppelpunkt aufgeteilt wird.

str_value = '100:200'
print(str_value.partition(':'))

Ausgabeinhalt des Ergebnisses der Codeausführung:

('100', ':', '200')

Selbst wenn die Zeichenfolge mehrere Trennzeichen enthält, wird sie nur einmal aufgeteilt. Das Trennzeichen bleibt im Wert rechts vom Taple.

str_value = '100:200:300:400'
print(str_value.partition(':'))

Ausgabeinhalt des Ergebnisses der Codeausführung:

('100', ':', '200:300:400')

Wenn im Argument in der Zeichenfolge kein Trennzeichen angegeben ist, wird die ursprüngliche Zeichenfolge in den ersten Index des Taples eingefügt, und im zweiten und dritten Index werden Leerzeichen gesetzt. Das Trennzeichen ist nicht enthalten. Die Anzahl der Taple-Werte bleibt bei 3.

str_value = '100:200'
print(str_value.partition(','))

Inhalt der Ausgabe des Codeausführungsergebnisses:

('100:200', '', '')


Die endgültige Partitionsmethode wird "von rechts" aufgeteilt, wie Sie anhand des Methodennamens erraten können. Anderes Verhalten ist dasselbe wie Partition.

str_value = '100:200:300:400:500'
print(str_value.rpartition(':'))

Ausgabeinhalt des Ergebnisses der Codeausführung:

('100:200:300:400', ':', '500')

Fügen Sie Variablen usw. in Zeichenfolgen ein oder fügen Sie Werte in einem bestimmten Format ein:% Symbol, Format, format_map-Methode, f-Zeichenfolgen

Beim Erstellen einer Zeichenfolge mit dem Wert einer eingefügten Variablen gibt es eine Methode zum Verketten der Zeichenfolgen mit dem Symbol "+". Schreiben Sie beispielsweise wie folgt.

name = 'Tama'
concatenated_str = 'Der Name meiner Katze ist' + name + 'ist.'
print(concatenated_str)

Inhalt der Ausgabe des Codeausführungsergebnisses:

Der Name meiner Katze ist Tama.

Wenn der Wert der Variablen jedoch ein anderer Wert als eine Zeichenfolge ist, z. B. eine Ganzzahl, führt diese Methode zu einem Fehler. Wenn Sie beispielsweise versuchen, eine ganzzahlige Variable namens "age" wie unten gezeigt zu verketten, tritt ein Fehler auf.

age = 5
concatenated_str = 'Wie alt ist deine Katze?' + age + 'Ich bin alt.'
TypeError: can only concatenate str (not "int") to str

Da Verketten ein Wort ist, das "verketten" bedeutet, lautet die Fehlermeldung etwa "Nur eine Zeichenfolge und eine Zeichenfolge (keine Ganzzahl) können verkettet werden".

Wenn Sie eine Variable eines anderen Typs als eine Ganzzahl oder eine andere Zeichenfolge verwenden möchten, um die Zeichenfolgen zu verketten, müssen Sie die Zielvariable zu einer Zeichenfolge mit einem Prozess namens cast machen (cast wird in einem späteren Kapitel beschrieben). ).

Das Umwandeln in eine Zeichenfolge kann erreicht werden, indem die Zielvariable usw. an das Argument der Funktion str () übergeben wird. Wenn Sie den Code, der den Fehler früher ausgegeben hat, so umschreiben, dass er in eine Zeichenfolge umgewandelt wird, damit der Fehler nicht auftritt, sieht er wie folgt aus.

age = 5
concatenated_str = 'Wie alt ist deine Katze?' + str(age) + 'Ich bin alt.'
print(concatenated_str)

Ausgabeinhalt des Ergebnisses der Codeausführung:

Meine Katze ist 5 Jahre alt.

Selbst mit dieser Schreibmethode konnte ich den Zweck erreichen, "Variablen in Zeichenketten einzufügen und sie zu verketten". Die Beschreibung ist jedoch etwas kompliziert (+ Symbol, Cast-Teil usw.), und der Teil, der eine Variable in der Zeichenfolge sein sollte, wird auf irgendeine Weise zu einem Wert eines anderen Typs, sodass ich vergessen habe, ihn zu konvertieren. Es ist nicht ungewöhnlich, dass ein Fehler auftritt.

Die Einführung wurde verlängert, aber in diesem Abschnitt erfahren Sie, wie Sie in solchen Fällen Variablen in einer einfacheren und besser lesbaren Form in Zeichenfolgen einfügen.


Zuerst lernen wir, wie man mit dem Symbol% schreibt. Wie im vorherigen Kapitel erwähnt, kann das Symbol "%" als Ganzzahl verwendet werden, um den Rest (Rest) zu berechnen.

6 % 4

Inhalt der Ausgabe des Codeausführungsergebnisses:

2

Andererseits wird in einer Zeichenfolge eine Variable mit dem Symbol "%" in die Zeichenfolge eingefügt. Verwenden Sie das Symbol% zusammen mit den alphabetischen Zeichen, die ein bestimmtes Format in der Zeichenfolge darstellen. Schreiben Sie zunächst den Beispielcode mit einer Zeichenfolge in der Notation "% s", wobei "s" als "Format wie es ist" hinzugefügt wird.

Teilen Sie den Abstand zwischen der Zeichenfolge und der Variablen, die Sie einfügen möchten, mit dem Symbol% und schreiben Sie Folgendes in Form einer Zeichenfolge links und einer Variablen rechts.

age = 5
concatenated_str = 'Wie alt ist deine Katze?%Ich bin s Jahre alt.' % age
print(concatenated_str)

Ausgabeinhalt des Ergebnisses der Codeausführung:

Meine Katze ist 5 Jahre alt.

Der Teil, in den die Variable eingefügt wird, ist nur "% s", und mehrere "+" Symbole usw. sind verschwunden, was zu einer sauberen Beschreibung führt. Außerdem kann die Umwandlung (str ()) der Zielvariablen in die Zeichenfolge weggelassen werden.

Zusätzlich zu "% s" gibt es verschiedene Spezifikationen wie "% d", "% .3f" und "% x". Ich habe verschiedene Dinge in der Formatfunktion im Kapitel über eingebaute Funktionen erwähnt, aber jede hat die folgende Bedeutung und das folgende Verhalten (es gibt verschiedene Dinge außer den hier erwähnten. Ich habe verschiedene Dinge im Abschnitt über die Formatfunktion erklärt, also hier 10 Ich werde die Erklärung von Basiszahlen und Hexadezimalzahlen weglassen.

--% s-> string. Es wird wie eine Zeichenfolge behandelt (ähnlich wie beim Casting mit der Funktion str ()). Ich denke, dass es am häufigsten verwendet wird, wenn der Wert einer Variablen in eine Zeichenfolge eingefügt wird. --% d-> Ziffer. Es wird als Dezimalwert im Bereich von 0 bis 9 in die Zeichenfolge eingefügt, der im Alltag verwendet wird. --% .3f-> float. Es wird als Gleitkommazahl in die Zeichenfolge eingefügt. Der Teil wie 3 ist eine beliebige Zahl und gibt an, wie viele Stellen nach dem Dezimalpunkt angezeigt werden sollen. Wenn Sie 3 angeben, wird dies in der Zeichenfolge mit einem numerischen Wert wie "0,000" wiedergegeben. --% x-> hex. Es wird hexadezimal in die Zeichenfolge eingefügt.

Lassen Sie uns tatsächlich einen anderen Code als% s schreiben und das Verhalten überprüfen. Erstens ist "% d". % d fügt den Wert als Dezimalzahl in die Zeichenfolge ein. Selbst wenn Sie einen Wert angeben, der einen Bruch wie "5.5" enthält, wird dieser in eine Ganzzahl konvertiert, sodass er als Zeichenfolge mit einem Wert wie "5" ausgegeben wird.

age = 5.5
concatenated_str = 'Wie alt ist deine Katze?%Ich bin d Jahre alt.' % age
print(concatenated_str)

Inhalt der Ausgabe des Codeausführungsergebnisses:

Meine Katze ist 5 Jahre alt.

Wenn "% d" verwendet wird, muss der Wert der angegebenen Variablen usw. ein "numerischer Wert sein, der in eine Ganzzahl konvertiert werden kann". Sie können Gleitkommazahlen und Ganzzahlen angeben. Wenn Sie jedoch eine andere Zeichenfolge angeben, z. B. eine Zeichenfolge, tritt ein Fehler auf (wenn Sie eine Zeichenfolge einfügen müssen, verwenden Sie "% s" usw.). ..

name = 'Tama'
concatenated_str = 'Der Name meiner Katze ist%Es ist d.' % name
TypeError: %d format: a number is required, not str

Die Fehlermeldung lautet etwa "Das% d-Format erfordert eine Zahl, keine Zeichenfolge."

Mit % .3f wird der Wert der angegebenen Variablen als Zeichenfolge mit einer bestimmten Anzahl von Nachkommastellen eingefügt. Wenn Sie das Format als "% .3f" mit einer Variablen mit dem Wert "5.5" angeben, wird es in die Zeichenfolge mit dem Wert "5.500" eingefügt. Wenn Sie "% .2f" einstellen, wird es bis zur zweiten Stelle nach dem Dezimalpunkt angezeigt und mit einem Wert wie "5,50" eingefügt.

age = 5.5
concatenated_str = 'Wie alt ist deine Katze?%.Ich bin 3f Jahre alt.' % age
print(concatenated_str)

Inhalt der Ausgabe des Codeausführungsergebnisses:

Meine Katze ist 5 Jahre alt.Ich bin 500 Jahre alt.

Wenn Sie mehrere Variablen in eine Zeichenfolge einfügen möchten, verwenden Sie tapple Klammern, um die mehreren Variablen anzugeben. Schreiben Sie in tapple, zum Beispiel "(Name, Alter)".

name = 'Tama'
age = 5
concatenated_str = \
    'Der Name meiner Katze ist%s. Alter ist%Ich bin s Jahre alt.' % (name, age)
print(concatenated_str)

Ausgabeinhalt des Ergebnisses der Codeausführung:

Der Name meiner Katze ist Tama. Ich bin 5 Jahre alt.

Wenn die Angabe wie "% s" in der Zeichenfolge und die Anzahl der Werte im Taple nicht übereinstimmen, tritt ein Fehler auf (ähnlich einem Fehler, wenn die Anzahl im Argument der Funktion nicht übereinstimmt). nicht wahr).

Im folgenden Code gibt es drei "% s" -Spezifikationen in der Zeichenfolge, aber es gibt nur zwei Variablen auf der Taple-Seite, sodass ein Fehler auftritt.

name = 'Tama'
age = 5
concatenated_str = \
    'ich habe%Der Name von s ist%s. Alter ist%Ich bin s Jahre alt.' % (name, age)
TypeError: not enough arguments for format string

Die Fehlermeldung ist eine Meldung wie "Es sind nicht genügend Argumente (jede Variable) zum Formatieren der Zeichenfolge erforderlich (hier Variablen einfügen)".

Ein Fehler tritt auch dann auf, wenn die Anzahl der Fälle auf der Taple-Seite groß ist.

name = 'Tama'
age = 5
concatenated_str = \
    'Der Name meiner Katze ist%s. Ich bin 3 Jahre alt.' % (name, age)
TypeError: not all arguments converted during string formatting

Eine Fehlermeldung wie "Während der Formatierung von Zeichenfolgen (Einfügen von Variablen) konnten nicht alle Argumente (jede Variable im Taple) konvertiert (eingefügt) werden (aufgrund einer unzureichenden Anzahl von"% s ")". Es wird der Inhalt sein.

Da Taples zum Einfügen mehrerer Werte verwendet werden, funktioniert es nicht so, wie es ist, wenn Sie die Taples selbst einfügen möchten. Wenn Sie eine Tapple-Variable angeben, die nur eine Notation wie "% s" hat und mehrere Werte speichert, wird festgestellt, dass die Zahlen nicht wie oben beschrieben übereinstimmen, und es tritt ein Fehler auf. In einem solchen Fall ist eine Steuerung wie das Gießen des Taples in eine Zeichenkette erforderlich.

Ebenso wie es schwierig wird zu lesen, wenn die Anzahl der Argumente in der Funktion zunimmt, ist es leicht, Fehler durch Steuern der Reihenfolge usw. zu machen, wenn die Beschreibung von "% s" in der Zeichenkette zunimmt. Es wird sein. Ich möchte eine Funktion wie ein Schlüsselwortargument.

Um das Problem der Steuerung um "%" zu verbessern, wurde die später beschriebene Formatmethode in der Python-Version nach der Steuerung durch "%" hinzugefügt.


Nach dem Steuern mit dem Symbol "%" lernen wir die Formatierungsmethode kennen. Es kann auf die gleiche Weise verwendet werden wie das Einfügen eines Werts wie einer Variablen mit dem Symbol "%" in eine Zeichenfolge. Dies ist jedoch eine neuere Funktion in der Python-Version, und die Menge des geschriebenen Codes wird ein wenig zunehmen, aber verschiedene Dinge Die Anzahl der Funktionen hat zugenommen und die Probleme wurden verbessert.

Um es zu verwenden, fügen Sie zuerst die Klammern {} in die Zeichenfolge ein, in die Sie den Wert der Variablen einfügen möchten. Führen Sie danach die Formatmethode mit dieser Zeichenfolge aus und geben Sie die Variable an, die Sie als Argument einfügen möchten. Ein einfaches Beispiel würde so aussehen:

name = 'Tama'
formatted_str = 'Der Name meiner Katze ist{}ist.'
formatted_str = formatted_str.format(name)

print(formatted_str)

Ausgabeinhalt des Ergebnisses der Codeausführung:

Der Name meiner Katze ist Tama.

Wenn Sie mehrere Variablen einfügen möchten, setzen Sie die Klammern {} in mehrere Zeichenfolgen.

name = 'Tama'
age = 5
formatted_str = 'Der Name meiner Katze ist{}ist. Alter ist{}Ich bin alt.'
formatted_str = formatted_str.format(name, age)

print(formatted_str)

Ausgabeinhalt des Ergebnisses der Codeausführung:

Der Name meiner Katze ist Tama. Ich bin 5 Jahre alt.

Wenn mehrere Argumente angegeben werden, werden die Werte der Reihe nach im Teil {} festgelegt. Wenn beispielsweise "(Name, Alter)" im Argument angegeben wird, wird der Wert des Arguments "Name" im ersten "{}" Teil der Zeichenfolge und "Alter" im nächsten "{}" Teil festgelegt. Der Wert des Arguments von wird wiedergegeben.

Wenn Sie diese Reihenfolge anpassen möchten, setzen Sie einen ganzzahligen Wert in die Klammern von "{}" und schreiben Sie etwas wie "{0}" oder "{1}". Die Ganzzahl in Klammern ist die Nummer des Arguments ab 0 (das erste Argument ist 0, das nächste ist 1, das nächste ist 2 ...).

Wenn Sie den Code tatsächlich wie folgt schreiben, wird das dritte Argument (name) in der Zeichenfolge vor dem Wert des zweiten Arguments ( age) gesetzt. Kann bestätigt werden.

animal = 'Katze'
name = 'Tama'
age = 5
formatted_str = 'ich habe{0}Ist der Name{2}ist. Alter ist{1}Ich bin alt.'
formatted_str = formatted_str.format(animal, age, name)

print(formatted_str)

Ausgabeinhalt des Ergebnisses der Codeausführung:

Der Name meiner Katze ist Tama. Ich bin 5 Jahre alt.

Wenn Sie die Klammern von "{}" unverändert verwenden und auch Variablen in die Formatmethode einfügen möchten, können Sie "{{}}" und die Klammern doppelt schreiben. Es wird als normale Klammerzeichenfolge ({}) behandelt, die von der Formatmethode ignoriert wird (manchmal auch als Escapezeichen für diese Steuerelemente bezeichnet).

Im folgenden Beispiel sehen Sie, dass die maskierten Klammern "{}" in der Ausgabe verbleiben, auch wenn Sie die Formatmethode verwenden.

name = 'Tama'
age = 5
formatted_str = 'ich habe{{Katze}}Ist der Name{}ist. Alter ist{}Ich bin alt.'
formatted_str = formatted_str.format(name, age)

print(formatted_str)

Ausgabeinhalt des Ergebnisses der Codeausführung:

ich habe{Katze}Der Name ist Tama. Ich bin 5 Jahre alt.

Sie können auch eine Zusammenführung von Variablen wie ein Schlüsselwortargument angeben, indem Sie den Argumentnamen in Klammern schreiben, z. B. "{name}" oder "{age}". Sie können Fehler in der Reihenfolge der Argumente vermeiden und den Code auch bei vielen Argumenten leicht lesbar machen.

cat_name = 'Tama'
cat_age = 5
formatted_str = 'Der Name meiner Katze ist{name}ist. Alter ist{age}Ich bin alt.'
formatted_str = formatted_str.format(
    name=cat_name,
    age=cat_age,
)

print(formatted_str)

Inhalt der Ausgabe des Codeausführungsergebnisses:

Der Name meiner Katze ist Tama. Ich bin 5 Jahre alt.

Schreibstile, die dieses Schlüsselwortargument verwenden, werden häufig bei der Arbeit verwendet. Für das einfache Einfügen von Variablenwerten wird häufig die Verarbeitung mit dem Symbol "%" verwendet. Wenn jedoch die Anzahl der Variablen groß ist (3 oder mehr usw.), werden unter dem Gesichtspunkt der Lesbarkeit Schlüsselwörter in der Formatmethode verwendet. Es wird oft mit Argumenten beschrieben. Wenn die Anzahl der Argumente zunimmt, wird es schwierig zu lesen und es wird leicht, Fehler zu machen. Verwenden wir daher aktiv Schlüsselwortargumente.

Das Folgende ist eine etwas fortgeschrittenere Schreibweise und wird weniger wahrscheinlich verwendet. Wenn der in den Klammern von {} angegebene Wert jedoch eine Liste oder ein Wörterbuch ist, kann er als Index bezeichnet werden.

Zum Beispiel bezieht sich das Schreiben von "{0}" auf die Variable des ersten Arguments. Wenn der Wert des ersten Arguments jedoch ein Wörterbuch mit dem Schlüssel "Name" ist, schreiben Sie "{0 [Name]}". Sie können den Wert des Namensnamens im Wörterbuch in eine Zeichenfolge mit erweitern. In diesem Beispiel wird das erste Argument ({0}) verwendet, aber natürlich kann es nach dem zweiten Argument verwendet werden.

dict_value = {
    'name': 'Tama',
    'age': 5,
}
formatted_str = \
    'Der Name meiner Katze ist{0[name]}ist. Alter ist{0[age]}Ich bin alt.'
formatted_str = formatted_str.format(dict_value)

print(formatted_str)

Inhalt der Ausgabe des Codeausführungsergebnisses:

Der Name meiner Katze ist Tama. Ich bin 5 Jahre alt.

Sie können dasselbe mit Listen tun. Wenn Sie beispielsweise eine Variable in der Liste als erstes Argument angeben und "{0 [0]}" schreiben, den Wert von Index 0 des ersten Arguments, und wenn Sie "{0 [1]}" schreiben, den Index 1 des ersten Arguments Der Wert wird erweitert.

list_value = [
    'Tama',
    5,
]
formatted_str = 'Der Name meiner Katze ist{0[0]}ist. Alter ist{0[1]}Ich bin alt.'
formatted_str = formatted_str.format(list_value)

print(formatted_str)

Ausgabeinhalt des Ergebnisses der Codeausführung:

Der Name meiner Katze ist Tama. Ich bin 5 Jahre alt.

Wenn Sie diesen Stil häufig verwenden, kann es schwierig sein, den Code zu lesen, da die Klammern und Indexnummern fortlaufend sind. Selbst wenn Sie eine Liste oder ein Wörterbuch verwenden, können Sie den Wert des Schlüsselwortarguments allein in der Zeichenfolge festlegen (z. B. in Form von "{name}") und bei der Angabe des Arguments auf den Index verweisen. Wenn der Code schwer zu lesen ist, wird empfohlen, nur das Schlüsselwortargument zu schreiben. Unten finden Sie ein Beispiel für das Umschreiben.

list_value = [
    'Tama',
    5,
]
formatted_str = 'Der Name meiner Katze ist{name}ist. Alter ist{age}Ich bin alt.'
formatted_str = formatted_str.format(
    name=list_value[0],
    age=list_value[1],
)

print(formatted_str)

Ausgabeinhalt des Ergebnisses der Codeausführung:

Der Name meiner Katze ist Tama. Ich bin 5 Jahre alt.

Ich habe die Notation "{0}" als erstes Argument im Beispiel verwendet, aber Sie können sie natürlich auch auf andere Weise schreiben, z. B. mithilfe von Schlüsselwortargumenten. Sie können beispielsweise "{name_dict [cat_name]}" schreiben (im Beispiel ist die Zeichenfolge länger geworden, sodass die Klammern und Zeilenumbrüche von "()" verwendet werden).

name_dict = {'cat_name': 'Tama'}
age_list = [5]

formatted_str = (
    'Der Name meiner Katze ist{name_dict[cat_name]}ist.'
    'Alter ist{age_list[0]}Ich bin alt.'
).format(
    name_dict=name_dict,
    age_list=age_list,
)

print(formatted_str)

Inhalt der Ausgabe des Codeausführungsergebnisses:

Der Name meiner Katze ist Tama. Ich bin 5 Jahre alt.

Beachten Sie, dass Sie keine Variablen für Schlüssel verwenden können, um auf das Wörterbuch für einen bestimmten Schlüsselwert in einer Zeichenfolge zuzugreifen.

Sie können Variablen als Schlüssel verwenden, um auf die Werte in einem normalen Wörterbuch zu verweisen. Sie können beispielsweise auf die folgenden Wörterbuchwerte zugreifen (geschrieben als "[name_key]").

dict_value = {'cat_name': 'Tama'}
name_key = 'cat_name'
print(dict_value[name_key])

Inhalt der Ausgabe des Codeausführungsergebnisses:

Tama

Andererseits wird die Referenz des Wörterbuchwertschlüssels in der Zeichenfolge nicht als "{dict_value ['name']}" geschrieben, sondern direkt ohne Anführungszeichen ("Symbol" usw.) wie "[Name]" beschrieben. Machen. In diesem Fall erfolgt der Zugriff mit dem Schlüsselnamen "Name" anstelle des Variablennamens "Name". Wenn Sie einen Wert mit einer Variablen für einen bestimmten Schlüssel in eine Zeichenfolge einfügen möchten, können Sie keine Variable für den Schlüssel in der Zeichenfolge verwenden, also an der durch das Argument außerhalb der Zeichenfolge angegebenen Stelle () Es muss gesetzt sein (schriftlich name = dict_value [name_key] ).

name_key = 'name'
age_key = 'age'
dict_value = {
    name_key: 'Tama',
    age_key: 5,
}

formatted_str = 'Der Name meiner Katze ist{name}ist. Alter ist{age}Ich bin alt.'
formatted_str = formatted_str.format(
    name=dict_value[name_key],
    age=dict_value[age_key],
)

print(formatted_str)

Ausgabeinhalt des Ergebnisses der Codeausführung:

Der Name meiner Katze ist Tama. Ich bin 5 Jahre alt.

Dann lernen Sie, wie man mit einem Doppelpunkt in der Klammer {} schreibt. Setzen Sie einen Doppelpunkt mit halber Breite in Klammern und setzen Sie die Zielvariable (der Teil, der gemäß der Reihenfolge der Argumente als "{0}" oder "{1}" oder "{name}" nach Schlüsselwortargument geschrieben wird) auf die linke Seite des Doppelpunkts. Sie können einen Wert in ein bestimmtes Format einfügen, indem Sie ihn schreiben und rechts vom Doppelpunkt eine Formatzeichenfolge (z. B. ".3f") angeben. Schreiben Sie mit einem Doppelpunkt wie "{0: .3f}" oder "{name: .3f}".

Der Teil, der beim Schreiben mit dem Symbol "%" "%" wie "% d" und "% .3f" ausschließt, ist anwendbar, und die Funktion funktioniert genauso wie diese (z. B. ".3f"). Wenn Sie angeben, ist das Verhalten dasselbe, z. B. Anzeige in Form einer Zeichenfolge bis zur dritten Ziffer nach dem Dezimalpunkt.

Im folgenden Beispiel wird das Schlüsselwortargument "age" eingefügt und die Angabe "{age: .3f}" in der Zeichenfolge angegeben, um bis zur dritten Ziffer nach dem Dezimalpunkt anzuzeigen. Sie können sehen, dass die Zeichenfolge des Ausgabeergebnisses "5.500" in Form einer Anzeige bis zur dritten Stelle anstelle des ursprünglichen Werts "5.5" ist.

age = 5.5
formatted_str = 'Das Alter der Katze{0:.3f}Ich bin alt.'
formatted_str = formatted_str.format(
    age,
)

print(formatted_str)

Ausgabeinhalt des Ergebnisses der Codeausführung:

Das Alter der Katze beträgt 5 Jahre.Ich bin 500 Jahre alt.


Die letzte Methode in diesem Abschnitt ist format_map.

Die format_map-Methode verhält sich ähnlich wie die format-Methode. Das Argument besteht jedoch in der Angabe eines Wörterbuchs. Jeder im Argumentwörterbuch festgelegte Schlüssel und Wert wird erweitert, als ob das Schlüsselwortargument in der Formatmethode verwendet worden wäre, und jeder Wert wird in der Zeichenfolge erweitert.

dict_value = {
    'name': 'Tama',
    'age': 5,
}
formatted_str = 'Der Name meiner Katze ist{name}ist. Alter ist{age}Ich bin alt.'
formatted_str = formatted_str.format_map(dict_value)
print(formatted_str)

Ausgabeinhalt des Ergebnisses der Codeausführung:

Der Name meiner Katze ist Tama. Ich bin 5 Jahre alt.

Wie im Kapitel über Funktionen erwähnt, habe ich erfahren, dass die Schlüssel und Werte im Wörterbuch als Schlüsselwortargumente erweitert werden, wenn Sie beim Ausführen einer Funktion (oder Methode) zwei Sternchen halber Breite und ein Wörterbuch als Argumente angeben. .. Durch Kombinieren dieser Schreibmethode mit der Formatierungsfunktion können Sie tatsächlich dasselbe Verhalten erzielen, ohne die format_map-Methode zu verwenden. Wenn Sie beispielsweise im Argument der Formatmethode "** dict_value" wie unten gezeigt angeben, erhalten Sie das gleiche Ergebnis wie bei Verwendung der format_map-Methode.

dict_value = {
    'name': 'Tama',
    'age': 5,
}
formatted_str = 'Der Name meiner Katze ist{name}ist. Alter ist{age}Ich bin alt.'
formatted_str = formatted_str.format(**dict_value)
print(formatted_str)

Inhalt der Ausgabe des Codeausführungsergebnisses:

Der Name meiner Katze ist Tama. Ich bin 5 Jahre alt.

Warum wird die format_map-Methode bereitgestellt, wenn die format-Methode das gleiche Ergebnis wie die format_map-Methode liefert? Die Gründe sind wie folgt. Die format_map-Methode wird jedoch selten benötigt, wenn eine Feinsteuerung erforderlich ist, und die format_map-Methode wird weniger häufig verwendet.


Am Ende dieses Abschnitts werden wir auch auf F-Strings eingehen.

f-Strings ist eine Funktion, mit der Sie Variablen usw. in eine Zeichenfolge einfügen oder Python-Code ausführen können, indem Sie das Zeichen f vor das Anführungszeichen (einfaches Anführungszeichen usw.) der Zeichenfolge stellen.

Fügen Sie den Variablenteil und den Python-Codeteil wie die Formatmethode in Klammern ein.

Der einfache Beispielcode lautet wie folgt. Beachten Sie, dass der Buchstabe f am Anfang des Zeichenfolgenteils von "cat ..." hinzugefügt wird und dass die Variable "name" ohne Methoden wie format in der resultierenden Zeichenfolge enthalten ist. Bitte.

name = 'Tama'
txt = f'Der Name der Katze ist{name}ist.'
print(txt)

Inhalt der Ausgabe des Codeausführungsergebnisses:

Der Name der Katze ist Tama.

Die Verwendung von F-Strings hat den Vorteil, dass die Codemenge verkürzt werden kann, da Variablen direkt eingefügt und die Formatmethode aufgerufen werden können. Obwohl die Schreibmethode sehr unterschiedlich ist, ähnelt der Inhalt der Formatmethode.

Sie können die Verarbeitung in Python auch in Klammern von {} in f-Strings schreiben. Sie können die Zeichenfolge beispielsweise wie folgt hinzufügen.

age = 5
print(f'nächstes Jahr{age + 1}Ich werde alt sein')

Ausgabeinhalt des Ergebnisses der Codeausführung:

Ich werde nächstes Jahr 6 Jahre alt.

Sie können auch Funktionen in der Zeichenfolge ausführen.

def get_name():
    return 'Tama'


print(f'Der Name der Katze ist{get_name()}ist.')

Inhalt der Ausgabe des Codeausführungsergebnisses:

Der Name der Katze ist Tama.

Um das Format (z. B. wie viele Stellen nach dem Dezimalpunkt die Zeichenfolge sein soll) in der Schreibmethode unter Verwendung des Symbols% oder der Formatmethode anzugeben, entspricht das Doppelpunktsymbol halber Breite (:) der Formatmethode. ) Und geben Sie das Format auf der rechten Seite an.

value = 123.456789
print(f'Der Wert einschließlich der dritten Ziffer nach dem Dezimalpunkt ist{value:.3f}ist.')

Ausgabeinhalt des Ergebnisses der Codeausführung:

Der Wert einschließlich der dritten Ziffer nach dem Dezimalpunkt ist 123.Es ist 457.

Dieser Formatspezifikationsteil (der Teil, der im Code ".3f" ist) wird als Formatspezifizierer bezeichnet. Wenn Sie den Code in Python lesen, lautet der Argumentname usw. format_spec usw., dieser Argumentname wird jedoch vom Formatbezeichner abgeleitet.

In f-Strings können Sie auch eine Variable im Formatbezeichnerteil angeben, indem Sie eine weitere {}} Klammer (als Verschachtelung bezeichnet) in diesen Formatbezeichnerteil einfügen (Format gemäß den Bedingungen). Sie können den Bezeichner ändern.

format_spec = '.2f'
value = 123.456789
print(f'Der Wert einschließlich der zweiten Ziffer nach dem Dezimalpunkt ist{value:{format_spec}}ist.')

Ausgabeinhalt des Ergebnisses der Codeausführung:

Der Wert einschließlich der zweiten Ziffer nach dem Dezimalpunkt ist 123.Es ist 46.

Verbinden Sie die Listenwerte zu einer einzelnen Zeichenfolge mit einer beliebigen Zeichenfolge: join-Methode

Die Join-Methode verknüpft Werte wie eine Liste mit einer beliebigen Zeichenfolge mit der angegebenen Zeichenfolge dazwischen.

Variablen können auch für die zwischen ihnen eingeschlossene Zeichenfolge verwendet werden, aber feste Zeichen und Zeichenfolgen werden häufig direkt angegeben. Wenn Sie beispielsweise durch Kommas getrennte Listenwerte verketten möchten, können Sie diese in der Form ','. Join schreiben. Geben Sie die Liste (oder den Wert wie Taple) an, die Sie im ersten Argument der Methode verketten möchten.

Beispiel für Verkettungslisten (Variablen, die als "Tiere" bezeichnet werden), die durch Kommas getrennt sind:

animals = ['Katze', 'Hund', 'Hase']
print(','.join(animals))

Ausgabeinhalt des Ergebnisses der Codeausführung:

Katze,Hund,Hase

Beispiel zum Verketten von Listen mit zwei Unterstrichen (__):

animals = ['Katze', 'Hund', 'Hase']
print('__'.join(animals))

Ausgabeinhalt des Ergebnisses der Codeausführung:

Katze__Hund__Hase

Ein Fehler tritt auf, wenn der Inhalt der Liste keine Zeichenfolgen (numerische Werte usw.) enthält.

int_list = [1, 2, 3]
print(','.join(int_list))
TypeError: sequence item 0: expected str instance, int found

Speicher geordneter Werte wie Listen und Tapples werden auch gemeinsam als Sequenzen bezeichnet. Daher lautet die Fehlermeldung etwa "Das Index 0-Element (Element) der Sequenz (Liste) hatte an der erwarteten Instanz der Zeichenfolge (str) einen ganzzahligen Wert (int)".

Ermitteln Sie, wie oft eine bestimmte Zeichenfolge in einer string: count-Methode angezeigt wird

Die count-Methode gibt die Anzahl der Fälle zurück, in denen die im ersten Argument angegebene Zeichenfolge in der Zielzeichenfolge enthalten ist.

4 wird zurückgegeben, da die Zeichenfolge 4 Zeichen "cat" enthält. Beispiel:

txt = (
    'Ich bin eine Katze.'
    'Danach habe ich viele Katzen getroffen, aber ich habe noch nie ein einziges Rad getroffen.'
    'Die Katze kam und die Katze kam und fing sogar nachts an laut zu weinen.'
)
print(txt.count('Katze'))

Ausgabeinhalt des Ergebnisses der Codeausführung:

4

Das zweite Argument ist der Startindex des Suchbereichs, und das dritte Argument ist der Wert minus 1 vom Endindex des Suchbereichs.

Beispiel für die Suche im Zeichenfolgenbereich des Index von 0 bis 11:

txt = (
    'Ich bin eine Katze.'
    'Danach habe ich viele Katzen getroffen, aber ich habe noch nie ein einziges Rad getroffen.'
    'Die Katze kam und die Katze kam und fing sogar nachts an laut zu weinen.'
)
print(txt.count('Katze', 0, 12))

Ausgabeinhalt des Ergebnisses der Codeausführung:

2

Entspricht den Werten der Ganzzahl rechts und der Ganzzahl rechts des im Slice verwendeten Doppelpunkts. Mit anderen Worten, Sie können den Bereich des Suchziels überprüfen, indem Sie in die folgende Zeichenfolge schneiden (geben Sie 0 des zweiten Arguments und 12 des dritten Arguments des obigen Codebeispiels in Slices an. Ich habe).

print(txt[0:12])

Ausgabeinhalt des Ergebnisses der Codeausführung:

Ich bin eine Katze. Dann Katze

Entfernen Sie bestimmte Zeichen, z. B. Leerzeichen, von den Rändern der Zeichenfolge: Strip-, Lstrip- und Rstrip-Methoden

Die Strip-Methode entfernt bestimmte Zeichen am Anfang und Ende der Zeichenfolge. Streifen ist ein Wort, das "entfernen" bedeutet.

Sie können eine bestimmte Zeichenfolge auch löschen, indem Sie mit der Ersetzungsmethode ein leeres Zeichen (durch ein leeres Zeichen ersetzen) angeben. Die Strip-Methode weist jedoch die folgenden Unterschiede zur Ersetzungsmethode auf.

Lassen Sie uns zunächst das Verhalten in dem Fall überprüfen, in dem das Argument weggelassen wird. Fahren Sie mit einer Zeichenfolge fort, die Leerzeichen wie Leerzeichen und Zeilenumbrüche enthält (\ n ist das Zeichen, das einen Zeilenumbruch darstellt), und zwar an beiden Enden der folgenden Zeichenfolge.

txt = 'Ich bin eine Katze.\n\n'
print(txt)

Ausgabeinhalt des Ergebnisses der Codeausführung:

Ich bin eine Katze.


Wenn Sie die Strip-Methode durchsehen, können Sie feststellen, dass die Leerzeichen an beiden Enden entfernt wurden.

txt = 'Ich bin eine Katze.\n\n'
print(txt.strip())

Ausgabeinhalt des Ergebnisses der Codeausführung:

Ich bin eine Katze.

Wenn als erstes Argument eine Zeichenfolge angegeben wird, wird der Löschvorgang an beiden Enden jeweils ein Zeichen in dieser Zeichenfolge ausgeführt. Wenn Sie beispielsweise die Zeichenfolge "cat dog" als Argument angeben, wird der Löschvorgang ausgeführt, bis die Zeichen nicht mehr an beiden Enden "cat" oder "dog" sind.

txt = 'Katze Hund Katze Kaninchen Wolf Hund Katze Hund'
print(txt.strip('Katze Hund'))

Ausgabeinhalt des Ergebnisses der Codeausführung:

Kaninchenwolf


Die lstrip-Methode ist eine Methode, die Zeichen nur am linken Ende der strip-Methode löscht. l wird l links.

Die Verwendung und die Argumente sind dieselben wie bei der Strip-Methode. Im folgenden Code sehen Sie, dass die Buchstaben "Katze" und "Hund" ganz rechts erhalten bleiben.

txt = 'Katze Hund Katze Kaninchen Wolf Hund Katze Hund'
print(txt.lstrip('Katze Hund'))

Ausgabeinhalt des Ergebnisses der Codeausführung:

Kaninchen Wolf Hund Katze Hund


Wie Sie aus dem Ablauf der lstrip-Methode usw. ersehen können, löscht die rstrip-Methode Zeichen nur am rechten Ende. Das r am Anfang des Methodennamens ist das r von rechts. Die Verwendung entspricht der Strip- und der Lstrip-Methode.

txt = 'Katze Hund Katze Kaninchen Wolf Hund Katze Hund'
print(txt.rstrip('Katze Hund'))

Ausgabeinhalt des Ergebnisses der Codeausführung:

Katze Hund Katze Kaninchen Wolf

Machen Sie die Zeichenfolge in Großbuchstaben: obere Methode

Die obere Methode konvertiert die Zeichenfolge in Großbuchstaben. Der Zeichenketten-Teil des Alphabets wird konvertiert.

Der Methodenname stammt aus Großbuchstaben, was "Großbuchstaben" bedeutet.

txt = 'Apple and orange'
print(txt.upper())

Ausgabeinhalt des Ergebnisses der Codeausführung:

APPLE AND ORANGE

Auf die gleiche Weise können nicht nur Zeichen mit halber Breite, sondern auch Zeichen mit voller Breite konvertiert werden.

txt = 'Apple'
print(txt.upper())

Ausgabeinhalt des Ergebnisses der Codeausführung:

APPLE

Machen Sie die Zeichenfolge alle niedriger: niedrigere Methode

Die untere Methode konvertiert im Gegensatz zur oberen Methode den oberen Teil des Alphabets in einen unteren Teil. Da es im Kleinbuchstaben "Kleinbuchstaben" bedeutet, wird der Methodenname daraus abgeleitet.

Die Verwendung und das Verhalten sind die gleichen wie bei der Großmethode, nur die Konvertierung zwischen Groß- und Kleinschreibung wird umgekehrt.

txt = 'Apple And Orange'
print(txt.lower())

Ausgabeinhalt des Ergebnisses der Codeausführung:

apple and orange

Füllen Sie eine Zahlenfolge mit Nullen: zfill-Methode

Der Vorgang des Hinzufügens von 0 zur linken Seite einer beliebigen Ganzzahl bis zum Erreichen einer bestimmten Anzahl von Zeichen wird als Null-Auffüllung oder Null-Auffüllung bezeichnet.

Wenn Sie beispielsweise die Zeichen "135" auf 5 Zeichen ohne Auffüllung auffüllen, erhalten Sie "00135".

Die zfill-Methode behandelt diesen Nullfüllprozess. Geben Sie im ersten Argument die Anzahl der Zeichen im Ergebnis als Ganzzahl an. Wenn Sie 5 angeben, wird 0 angegeben, bis es 5 Zeichen wird, und wenn Sie 7 angeben, wird 0 angegeben, bis es 7 Zeichen wird.

txt = '135'
print(txt.zfill(5))

Ausgabeinhalt des Ergebnisses der Codeausführung:

00135

Fügen Sie einer Zeichenfolge Zeichen hinzu, bis eine bestimmte Anzahl von Zeichen erreicht ist: rjust, ljust, center-Methode

Die Methoden rjust, ljust und center verhalten sich auch wie zfill, um Zeichen zu füllen, bis sie eine beliebige Anzahl von Zeichen erreichen. Das folgende Verhalten unterscheidet sich jedoch von zfill.


Die Methode rjust platziert die Zeichenfolge rechts und füllt den linken Rand mit einem beliebigen Zeichen. Rechtsbündig bedeutet "rechts ausrichten", und der Methodenname leitet sich daraus ab.

Geben Sie die letzte Ganzzahl der Anzahl der Zeichen im ersten Argument und des Zeichens an, das im zweiten Argument ausgefüllt werden soll.

txt = 'Hund Hund'
print(txt.rjust(5, 'Katze'))

Ausgabeinhalt des Ergebnisses der Codeausführung:

Katze Katze Katze Hund Hund


Die ljust-Methode richtet die ursprüngliche Zeichenfolge links aus und füllt die rechte mit der fehlenden Anzahl von Zeichen.

txt = 'Hund Hund'
print(txt.ljust(5, 'Katze'))

Ausgabeinhalt des Ergebnisses der Codeausführung:

Hund Hund Katze Katze Katze


Die Mittelmethode richtet die ursprüngliche Zeichenfolge in der Mitte aus und füllt sowohl den linken als auch den rechten Rand mit den ventral nummerierten Zeichen.

txt = 'Hund'
print(txt.center(5, 'Katze'))

Ausgabeinhalt des Ergebnisses der Codeausführung:

Katze Katze Hund Katze Katze

Wenn die Anzahl der links und rechts zu füllenden Zeichen ungerade ist, wird das linke Ende mehr gefüllt.

txt = 'Hund'
print(txt.center(5, 'Katze'))

Ausgabeinhalt des Ergebnisses der Codeausführung:

Katze Katze Hund Katze Katze

Machen Sie den ersten Buchstaben oben und die anderen unten: Großschreibungsmethode

Wichtigkeit: ★★ ☆☆☆ (Sie müssen es zuerst nicht wissen)


Die Großschreibmethode konvertiert den ersten Buchstaben des Alphabets in Großbuchstaben und die anderen in Unterbuchstaben. Dies ist nützlich für englische Sätze.

Das Wort großschreiben selbst hat eine geldbezogene Bedeutung wie "kapitalisieren" sowie eine Bedeutung "mit Kapital beginnen", und der Methodenname leitet sich daraus ab.

txt = 'apple and orange'
print(txt.capitalize())

Ausgabeinhalt des Ergebnisses der Codeausführung:

Apple and orange

Es werden nicht nur Kleinbuchstaben konvertiert, sondern wenn die Zeichenfolge Großbuchstaben enthält, werden alle außer dem ersten Buchstaben von Groß- in Kleinbuchstaben konvertiert.

txt = 'APPLE AND ORANGE'
print(txt.capitalize())

Ausgabeinhalt des Ergebnisses der Codeausführung:

Apple and orange

Großschreiben Sie den ersten Buchstaben jedes englischen Wortes: Titelmethode

Die Titelmethode konvertiert den ersten Buchstaben jedes Wortes im Alphabet in obere Buchstaben und die anderen in untere Buchstaben.

Im Englischen werden Titel und Überschriften oft als "Großschreibung des ersten Buchstabens des Hauptworts und Senkung des Restbuchstabens" geschrieben, und diese Art des Schreibens wird als Titelfall bezeichnet. Ich werde. Der Name der Titelmethode stammt aus der Groß- und Kleinschreibung.

Als Einschränkung werden Wörter wie "und" und "das" normalerweise in Kleinbuchstaben belassen, und Wörter wie "Nomenklatur" werden im Titel durch Groß- und Kleinschreibung des Anfangs (z. B. "Apple und Orange") wiedergegeben. Bei der Python-Titelmethode wird jedoch der erste Buchstabe jedes Wortes groß geschrieben.

txt = 'apple and orange'
print(txt.title())

Ausgabeinhalt des Ergebnisses der Codeausführung:

Apple And Orange

Swapcase: Swapcase-Methode

Bei der Swapcase-Methode werden Kleinbuchstaben in Großbuchstaben und Großbuchstaben in Kleinbuchstaben geschrieben. Swap hat die Bedeutung von "Austausch".

txt = 'Apple And Orange'
print(txt.swapcase())

Ausgabeinhalt des Ergebnisses der Codeausführung:

aPPLE aND oRANGE

Überprüfen Sie, ob alle Zeichenfolgen in Großbuchstaben geschrieben sind: isupper-Methode

Die isupper-Methode gibt den booleschen Wert True zurück, wenn das Alphabet in der Zeichenfolge nur in Großbuchstaben geschrieben ist, andernfalls False. Wie in anderen Abschnitten erwähnt, bedeutet "Großbuchstabe" Großbuchstaben, daher lautet der Methodenname isupper in Form der Rückgabe eines Booleschen Werts mit der Bedeutung "Zeichenfolge ist Großbuchstaben".

txt = 'APPLE AND ORANGE'
print(txt.isupper())

Inhalt der Ausgabe des Codeausführungsergebnisses:

True

Wenn die Zeichenfolge Kleinbuchstaben enthält, wird False anstelle von True zurückgegeben.

txt = 'Apple And Orange'
print(txt.isupper())

Ausgabeinhalt des Ergebnisses der Codeausführung:

False

Überprüfen Sie, ob alle Zeichenfolgen niedriger sind: islower-Methode

Die islower-Methode ist das Gegenteil der isupper-Methode und gibt den booleschen Wert True zurück, wenn das String-Alphabet alle niedriger ist. "Kleinbuchstaben" bedeutet Kleinbuchstaben.

txt = 'apple and orange'
print(txt.islower())

Ausgabeinhalt des Ergebnisses der Codeausführung:

True

Wenn auch nur ein Zeichen Großbuchstaben enthält, ist es falsch.

txt = 'Apple and Orange'
print(txt.islower())

Ausgabeinhalt des Ergebnisses der Codeausführung:

False

Die Isupper-Methode ist dieselbe, aber selbst wenn sie andere Symbole als Großbuchstaben oder Japanisch enthält, haben sie keinen Einfluss auf das Urteil. Voraussetzung ist, dass die Zeichenfolge Kleinbuchstaben und keine Großbuchstaben enthält.

txt = 'Apfel Apfel'
print(txt.islower())

Ausgabeinhalt des Ergebnisses der Codeausführung:

True

Überprüfen Sie, ob der erste Buchstabe jedes Wortes ganz oben und der andere unten ist: istitle-Methode

Die istitle-Methode gibt den booleschen Wert zurück, ob der Titel (der erste Buchstabe jedes Wortes ist ein Großbuchstabe) vor einiger Zeit im Abschnitt der title-Methode erwähnt wurde (wenn auch nicht streng).

txt = 'Apple And Orange'
print(txt.istitle())

Inhalt der Ausgabe des Codeausführungsergebnisses:

True

Das Ergebnis ist False, wenn eines der Wörter nicht mit einem Großbuchstaben beginnt.

txt = 'Apple and orange'
print(txt.istitle())

Inhalt der Ausgabe des Codeausführungsergebnisses:

False

Überprüfen Sie, ob die Zeichenfolge vollständig alphanumerisch ist: isdecimal, isdigit, isnumeric, isascii

In diesem Abschnitt erfahren Sie mehr über jede Methode, die den booleschen Wert erhält, um festzustellen, ob der Inhalt einer Zeichenfolge eine bestimmte Zeichenfolge ist (ob es sich um eine Zeichenfolge mit nur einer Dezimalzahl, eine Zeichenfolge nur um ein Alphabet usw. handelt). Gehen.


Die isdezimale Methode gibt den booleschen Wert zurück, ob die Zeichenfolge eine ganzzahlige Zeichenfolge ist, die durch eine Dezimalzahl dargestellt werden kann (eine numerische Darstellung von 10 Zahlen von 0 bis 9, die im täglichen Leben verwendet wird). (Dezimalzahl bedeutet Dezimalzahl). Wenn ein anderer Bruch (oder ein anderes Bruchzeichen) als eine Ganzzahl enthalten ist, ist dies False. Es ist falsch, auch wenn es Symbole und Nicht-Ganzzahlen wie Japanisch und Englisch enthält.

Eine Folge von Zahlen, zum Beispiel 150, ist True.

txt = '150'
print(txt.isdecimal())

Inhalt der Ausgabe des Codeausführungsergebnisses:

True

Selbst wenn es in voller Breite ist, ist das Ergebnis True, wenn der Inhalt nur Ganzzahlen ist.

txt = '150'
print(txt.isdecimal())

Ausgabeinhalt des Ergebnisses der Codeausführung:

True

Wenn ein anderer Wert als eine Ganzzahl, z. B. ein Dezimalpunkt, enthalten ist, ist er False.

txt = '3.14'
print(txt.isdecimal())

Inhalt der Ausgabe des Codeausführungsergebnisses:

False

Wenn ein Symbol oder ein Leerzeichen enthalten ist, ist es False. Selbst wenn am linken Ende ein Leerzeichen vorhanden ist, wie unten gezeigt, ist es beispielsweise False. Wenn Sie bei einem Programm, das solche Leerzeichen enthalten kann, die im vorherigen Abschnitt erwähnte Strip-Methode verwenden, um die zusätzlichen Leerzeichen zu löschen und zu verarbeiten, kann die Beurteilung zu unerwarteten Ergebnissen führen. Sie können es vermeiden.

txt = '  150'
print(txt.isdecimal())

Ausgabeinhalt des Ergebnisses der Codeausführung:

False


Die isdigit-Methode ist eine Methode, die sich wie isdezimal verhält und den booleschen Wert zurückgibt, ob es sich um eine Ganzzahl handelt oder nicht. Dies sind jedoch nicht nur die üblichen Zahlen von "0 bis 9", sondern auch die Zeichen eingekreister Zahlen wie "①" und "②", die die Zahlen mit "〇" und die Zeichen des Exponenten umgeben (3 Teile von 2 bis 3. Potenz). Einige Sonderzeichen wie (kleine Zahlen mit einem oberen Rand) sind zulässig (mehr Bedingungen sind wahr als bei der isdezimalen Methode).

Wie der Name schon sagt, ist isdecimal eine Dezimalzahl, während die Ziffer die Bedeutung "arabische Zahl (Zeichen wie 123)" hat. Isdigit ist also ein Urteil darüber, ob es sich um eine arabische Zahl mit Sonderzeichen handelt. ..

Ein Beispiel, das mit einer normalen Ganzzahl wie isdecimal True wird:

txt = '150'
print(txt.isdigit())

Inhalt der Ausgabe des Codeausführungsergebnisses:

True

Ein Beispiel, das zu False wird, weil es andere Zeichen als Ganzzahlen wie isdecimal enthält:

txt = '150 Yen'
print(txt.isdigit())

Inhalt der Ausgabe des Codeausführungsergebnisses:

False

Beispiel, um zu bestätigen, dass auch spezielle eingekreiste Zeichen wie ":" wahr sind:

txt = '①②'
print(txt.isdigit())

Ausgabeinhalt des Ergebnisses der Codeausführung:

True

Beispiel zur Bestätigung, dass auch spezielle Exponentialzeichen wie ² wahr sind (Da die Konvertierung schwierig ist, kopieren Sie bitte das Codebeispiel, wenn Sie den Code ausführen):

txt = '²³⁴'
print(txt.isdigit())

Ausgabeinhalt des Ergebnisses der Codeausführung:

True


Die isnumerische Methode hebt auch die Einschränkung "arabische Zahlenzeichen" der isdigit-Methode auf (es werden mehr Zeichen als isdigit als Ziel ausgewählt). True, wenn alle Zeichenfolgen Zahlen darstellen.

Da die Beschränkung der arabischen Zahlen aufgehoben ist, wird True auch für römische Zahlen wie "Ⅲ" zurückgegeben.

txt = 'ⅠⅢⅥ'
print(txt.isnumeric())

Inhalt der Ausgabe des Codeausführungsergebnisses:

True

Außerdem ist sogar eine Kanji-Zeichenfolge True.

txt = '753'
print(txt.isnumeric())

Ausgabeinhalt des Ergebnisses der Codeausführung:

True


Die isascii-Methode gibt True zurück, wenn die Zeichenfolge nur aus Zeichen besteht, die als ASCII-Codes bezeichnet werden, z. B. alphanumerische Zeichen halber Breite, einige Symbole (z. B. das Symbol @) und Sonderzeichen wie Zeilenumbrüche. ..

txt = '~@abcABC123'
print(txt.isascii())

Ausgabeinhalt des Ergebnisses der Codeausführung:

True

Für Zeichen voller Breite wird False zurückgegeben.

txt = 'ABC'
print(txt.isascii())

Inhalt der Ausgabe des Codeausführungsergebnisses:

False


Es gibt andere Methoden wie isalpha und isalnum, aber dies scheint weniger häufig verwendet zu werden, und es scheint, dass der Name alphabetisch (alphabetisch) (isalpha) und alphanumerisch (isalnum) ist. Zeichen in voller Breite wie Kanji sind ebenfalls ein wenig eingängig, daher werde ich die Erklärung hier weglassen.

Überprüfen Sie, ob alle Zeichenfolgen leer sind: isspace

Die isspace-Methode gibt den booleschen Wert zurück, ob die Zeichenfolge nur aus leeren Zeichen besteht. Leerzeichen sind Leerzeichen halber Breite, Leerzeichen voller Breite, Zeilenumbrüche (in der Zeichenfolge häufig als "\ n" geschrieben), Tabulatoren (in der Zeichenfolge häufig als "\ t" geschrieben). Und so weiter.

txt = '  \n\t'
print(txt.isspace())

Inhalt der Ausgabe des Codeausführungsergebnisses:

True

Selbst wenn es Leerzeichen enthält, ist es False, wenn die Zeichenfolge andere Zeichen enthält.

txt = 'Katze Hund\n\t'
print(txt.isspace())

Ausgabeinhalt des Ergebnisses der Codeausführung:

False

Zeichencode konvertieren: codieren. Decodieren

Die Codierungs- und Decodierungsmethoden konvertieren den Zeichencode einer Zeichenfolge. Grundsätzlich ist beim Umgang mit Text in Python der Zeichencode UTF-8 fast identisch, es gibt jedoch gelegentlich Fälle, in denen Sie abhängig von der alten Datei, Umgebung, dem Dateiformat usw. andere Zeichencodes (Shift_JIS usw.) verarbeiten müssen. Tritt ein.

Es gibt jedoch viele Fälle, in denen diese Zeichencodes beim Lesen oder Schreiben einer Textdatei oder dergleichen angegeben werden, anstatt die Codierungs- oder Decodierungsmethode einer Zeichenfolge zu verwenden.

Ich glaube nicht, dass die Methode der Zeichenkette selbst sehr oft verwendet wird, deshalb werde ich sie hier leicht berühren (ich werde in einem späteren Kapitel mehr über Dateioperationen usw. erfahren).

Erstens ist die Codierungsmethode. Die encode-Methode konvertiert eine normale Zeichenfolge in Python in einen Wert mit einem bestimmten Zeichencode. Der konvertierte Wert ist eine Instanz der Byte-Klasse. Wenn Sie ihn beispielsweise in Shift_JIS konvertieren, handelt es sich um einen Wert wie "\ x94L", der auf den ersten Blick nicht lesbar ist.

Geben Sie den Zeichencode im ersten Argument der Codierungsmethode an. Da ich es dieses Mal in Shift_JIS konvertieren werde, geben Sie den Wert "sjis" an (es gibt verschiedene andere feste Werte wie "utf-8").

txt = 'Katze Hund'
sjis_txt = txt.encode('sjis')
print('Textinhalt:', sjis_txt, '\n Typ:', type(sjis_txt))

Inhalt der Ausgabe des Codeausführungsergebnisses:

Textinhalt: b'\x94L\x8c\xa2' 
Schimmel: <class 'bytes'>

Die Decodierungsmethode funktioniert im Gegensatz zur Codierungsmethode. Mit anderen Worten, der in einen Zeichencode wie Shift_JIS konvertierte Wert wird in eine normale Zeichenfolge zurückgegeben, die wieder in Python verwendet werden kann (eine Zeichenfolge, die von Menschen normal gelesen werden kann, z. B. "cat dog"). Geben Sie im ersten Argument an, welcher Zeichencode der Zielwert ist.

txt = sjis_txt.decode('sjis')
print(txt)

Ausgabeinhalt des Ergebnisses der Codeausführung:

Katze Hund

Referenzen / Site Summary

Recommended Posts

Verschiedene String-Operationen in Python integriert
Verschiedene Zeichenkettenoperationen
Eingebaute Python
Python-String
Python: Strings kombinieren
Python-String-Format
Python String Slice
Integriertes Python-Objekt
Integriertes Python-Objekt
# 3 [python3] Verschiedene Operatoren
Python2-Zeichenfolgentyp
Python-String-Format
Python # String-Typ
Python-String-Inversion
[Python] Kapitel 02-05 Grundlagen von Python-Programmen (Zeichenfolgenoperationen / -methoden)
Verschiedene Numpy-Operationen (Korrektur)
Dateioperationen in Python
[Python] Datei- / Verzeichnisoperation
String-Manipulation in Python
[Python] Mehrzeilige Zeichenfolgenzuweisung
Python-String-Manipulations-Master
Dateimanipulation mit Python
[Python2] Datumszeichenfolge → UnixTime → Datumszeichenfolge
Zufällige String-Generierung (Python)
Zusammenfassung der Zeichenfolgenoperationen
In Python integrierte Funktion ~ Zip ~
Python3> Dokumentationszeichenfolge / Dokumentzeichenfolge
Integrierte Funktionen von Wrap Python
Abbildung zur Verarbeitung von Python-Zeichenfolgen
Verschiedene Verarbeitung von Python
Ich habe versucht, die String-Operationen von Python zusammenzufassen
[Python] Datum in Zeichenfolge konvertieren
Verschiedene Leerzeichen löschen [Python]
Zusammenfassung der Python-Dateivorgänge
Zusammenfassung der Python3-Listenoperationen
Python-Einzug und String-Format
Vier Regeln für Python
String-Objektmethoden in Python
[Python] Verwenden Sie eine Zeichenfolgenfolge
Über verschiedene Codierungen von Python 3
Bearbeiten Sie verschiedene Datenbanken mit Python
Wrapping von Git-Operationen in Python
[Python 2/3] Analysiert die Formatzeichenfolge
Informationen zu Python-Zeichenfolgenvergleichsoperatoren
Datumsmanipulation von Strings in Python
Python f-Zeichen (formatierte Zeichenfolge)
String-Format mit Python% -Operator
Informationen zu Python- und Betriebssystemoperationen
Scala-ähnliche Erfassungsoperation in Python
Zusammenfassung verschiedener Operationen in Tensorflow
String-Ersetzung durch regulären Python-Ausdruck
Python-Betriebssystemdateien, Unterverzeichnisoperationen
6 Möglichkeiten zum Stringen von Objekten in Python
Python-Memo ① Ordner- und Dateivorgänge
Python String Processing Map und Lambda
ORC, Parkettdateivorgänge in Python
Python - Symbole, die beim Ausführen von Operationen verwendet werden
Erstellen Sie eine zufällige Zeichenfolge in Python
[Python] [Ergänzung] Kapitel 04-09 Verschiedene Datenstrukturen (Mengenlehre und Arithmetik in Mengen)