Strings - Learn Python 3 - Snakify

Lesson 5
Saiten


1. Saiten

Ein String kann mit der Funktion input() aus der Standardeingabe gelesen oder in einfachen oder doppelten Anführungszeichen definiert werden. Zwei Zeichenketten können verkettet werden, und wir können auch eine Zeichenkette n Mal wiederholen, indem wir sie mit einer Ganzzahl multiplizieren:

print('>_< ' * 5)  # &gt; _ &lt;&gt; _ &lt;&gt; _ &lt;&gt; _ &lt;&gt; _ &lt;

Eine Zeichenfolge in Python ist eine Zeichenfolge. Die Funktion len(some_string) zurück, wie viele Zeichen in einer Zeichenfolge enthalten sind:

print(len('abcdefghijklmnopqrstuvwxyz'))  # 26

Jedes Objekt in Python kann mit der Funktion str(some_object) in einen String konvertiert werden. Also können wir Zahlen in Strings konvertieren:

s = str(2 ** 100)
print(s)  # 1267650600228229401496703205376
print(len(s))  # 31
Advertising by Google, may be based on your interests

2. Slices: einzelnes Zeichen

Ein Slice gibt von der angegebenen Zeichenfolge ein Zeichen oder ein Fragment aus: Teilzeichenfolge oder Teilsequenz.

Es gibt drei Arten von Scheiben. Die einfachste Form der Scheibe: Eine einzelne Zeichenscheibe S[i] ergibt das i te Zeichen der Saite. Wir zählen Zeichen beginnend mit 0. Das heißt, wenn S = 'Hello' , S[0] == 'H' , S[1] == 'e' , S[2] == 'l' , S[3] == 'l' , S[4] == 'o' . Beachten Sie, dass es in Python keinen separaten Typ für Zeichen der Zeichenfolge gibt. S[i] hat auch den Typ str , genau wie die Quellzeichenfolge.

Nummer i in S[i] heißt ein Index .

Wenn Sie einen negativen Index angeben, wird er vom Ende beginnend mit der Nummer -1 . Das heißt, S[-1] == 'o' , S[-2] == 'l' , S[-3] == 'l' , S[-4] == 'e' , S[-5] == 'H' .

Fassen wir es in der Tabelle zusammen:

Zeichenfolge S H e l l O
Index S [0] S [1] S [2] S [3] S [4]
Index S [-5] S [-4] S [-3] S [-2] S [-1]

Wenn der Index in der Schicht S[i] größer oder gleich len(S) oder kleiner als -len(S) , wird der folgende Fehler verursacht IndexError: string index out of range .

Advertising by Google, may be based on your interests

3. Slices: Teilstring

Slice mit zwei Parametern S[a:b] liefert den Teilstring der Länge b - a beginnend mit dem Zeichen bei Index a und dauert bis zum Zeichen bei Index b , ohne den letzten. Zum Beispiel, S[1:4] == 'ell' , und Sie können die gleiche Teilkette mit S[-4:-1] . Sie können positive und negative Indizes im selben Slice mischen, zum Beispiel ist S[1:-1] eine Teilzeichenkette ohne das erste und das letzte Zeichen der Zeichenkette (die Scheibe beginnt mit dem Zeichen mit Index 1 und endet mit einem Index von -1, nicht inklusive).

Slices mit zwei Parametern verursachen niemals IndexError . Zum Beispiel gibt die Scheibe S[1:5] für S == 'Hello' die Zeichenkette 'ello' , und das Ergebnis ist dasselbe, auch wenn der zweite Index sehr groß ist, wie S[1:100] .

Wenn Sie den zweiten Parameter weglassen (aber den Doppelpunkt beibehalten), wird das Segment an das Ende der Zeichenfolge gesetzt. Um beispielsweise das erste Zeichen aus der Zeichenfolge zu entfernen (sein Index ist 0), nehmen Sie die Scheibe S[1:] . Wenn Sie den ersten Parameter weglassen, nimmt Python den Slice vom Anfang des Strings. Das heißt, um das letzte Zeichen aus der Zeichenfolge zu entfernen, können Sie das Segment S[:-1] . Die Scheibe S[:] stimmt mit der Saite S selbst überein.

Advertising by Google, may be based on your interests

4. Scheiben: Unveränderlichkeit der Saiten

Jedes Segment einer Zeichenfolge erstellt eine neue Zeichenfolge und ändert die ursprüngliche Zeichenfolge nie. In Python sind Strings unveränderlich, dh sie können nicht als Objekte verändert werden. Sie können die Variable nur der neuen Zeichenfolge zuweisen, die alte bleibt jedoch im Speicher.

Tatsächlich gibt es in Python keine Variablen. Es gibt nur die Namen, die mit irgendwelchen Objekten verknüpft sind. Sie können zuerst einen Namen mit einem Objekt verknüpfen und dann - mit einem anderen. Können mehreren Namen ein und dasselbe Objekt zugeordnet werden?

Lassen Sie uns das demonstrieren:

s = 'Hello'
t = s  # s und t zeigen auf dieselbe Zeichenfolge
t = s[2:4]  # Jetzt zeigt t auf die neue Zeichenfolge &#39;ll&#39;
print(s)  # druckt &#39;Hallo&#39;, da s nicht geändert wird
print(t)  # Drucke &#39;ll&#39;
Advertising by Google, may be based on your interests

5. Scheiben: Unterfolge

Wenn Sie ein Segment mit drei Parametern S[a:b:d] angeben, gibt der dritte Parameter den Schritt an, genau wie für den Funktionsbereich range() . In diesem Fall werden nur die Zeichen mit dem folgenden Index verwendet: a a + d , a + 2 * d und so weiter, bis das Zeichen mit dem Index b . Wenn der dritte Parameter gleich 2 ist, nimmt die Scheibe jedes zweite Zeichen, und wenn der Schritt der Scheibe gleich -1 , gehen die Zeichen in umgekehrter Reihenfolge. Zum Beispiel können Sie eine Zeichenfolge wie S[::-1] umkehren: S[::-1] . Lass uns die Beispiele sehen:

s = 'abcdefg'
print(s[1])
print(s[-1])
print(s[1:3])
print(s[1:-1])
print(s[:3])
print(s[2:])
print(s[:-1])
print(s[::2])
print(s[1::2])
print(s[::-1])
Beachten Sie, dass der dritte Parameter des Slices dem dritten Parameter des Funktionsbereichs range() ähnelt:
s = 'abcdefghijklm'
print(s[0:10:2])
for i in range(0, 10, 2):
    print(i, s[i])
Advertising by Google, may be based on your interests

6. String-Methoden: find () und rfind ()

Eine Methode ist eine Funktion, die an das Objekt gebunden ist. Wenn die Methode aufgerufen wird, wird die Methode auf das Objekt angewendet und führt einige Berechnungen durch. Methoden werden als object_name.method_name(arguments) aufgerufen. Zum Beispiel wird in s.find("e") die String-Methode find() auf die Zeichenfolge s mit einem Argument "e" angewendet.

Die Methode find() durchsucht eine Teilzeichenfolge, die als Argument übergeben wurde, in die Zeichenfolge, in der sie aufgerufen wurde. Die Funktion gibt den Index des ersten Vorkommens der Teilzeichenfolge zurück. Wenn die Teilzeichenfolge nicht gefunden wird, gibt die Methode -1 zurück.

s = 'Hello'
print(s.find('e'))
# 1
print(s.find('ll'))
# 2
print(s.find('L'))
# -1

In ähnlicher Weise gibt die Methode rfind() den Index des letzten Vorkommens der Teilzeichenkette zurück.

s = 'abracadabra'
print(s.find('b'))
# 1
print(s.rfind('b'))
# 8

Wenn Sie find() mit drei Argumenten s.find(substring, left, right) , wird die Suche innerhalb des Slices s[left:right] . Wenn Sie nur zwei Argumente, wie angeben s.find(substring, left) , wird die Suche in der Scheibe durchgeführt s[left:] , das heißt, mit dem Zeichen bei Index beginnend left bis zum Ende des Strings. Die Methode s.find(substring, left, right) gibt den absoluten Index relativ zur gesamten Zeichenfolge s und nicht zum Slice zurück.

s = 'my name is bond, james bond, okay?'
print(s.find('bond'))
# 11
print(s.find('bond', 12))
# 23
Advertising by Google, may be based on your interests

7. Zeichenkettenmethoden: replace ()

Die Methode replace() ersetzt alle Vorkommen einer gegebenen Teilkette durch eine andere. Syntax: s.replace(old, new) nimmt den String S und ersetzt alle Vorkommen von Teilstring old durch den Teilstring new . Beispiel:

print('a bar is a bar, essentially'.replace('bar', 'pub'))
# &quot;Eine Kneipe ist eine Kneipe, im Wesentlichen&quot;

Man kann das dritte Argument übergeben count , wie folgt aus : s.replace(old, new, count) . Ersetzt replace() , um nur die ersten count zu ersetzen, und stoppt dann.

print('a bar is a bar, essentially'.replace('bar', 'pub', 1))
# &quot;Eine Kneipe ist eine Bar, im Wesentlichen&quot;
Advertising by Google, may be based on your interests

8. Zeichenkettenmethoden: count ()

Diese Methode zählt die Anzahl der Vorkommen einer Zeichenfolge in einer anderen Zeichenfolge. Die einfachste Form ist diese: s.count(substring) . Nur nicht überlappende Ereignisse werden berücksichtigt:

print('Abracadabra'.count('a'))
# 4
print(('aaaaaaaaaa').count('aa'))
# 5

Wenn Sie drei Parameter s.count(substring, left, right) angeben, wird die Zählung innerhalb des Slice s[left:right] .

Advertising by Google, may be based on your interests