Python Strings

Table of Contents

 

In diesem Tutorial lernen Sie, Strings in Python zu erstellen, zu formatieren, zu ändern und zu löschen. Außerdem werden Sie in verschiedene String-Operationen und -Funktionen eingeführt.

 

What is String in Python?

 

Ein String ist eine Folge von Zeichen.

Ein Zeichen ist einfach ein Symbol. Die englische Sprache hat beispielsweise 26 Zeichen.

Computer verarbeiten keine Zeichen, sondern Zahlen (binär). Auch wenn Sie möglicherweise Zeichen auf Ihrem Bildschirm sehen, werden sie intern als eine Kombination aus 0 und 1 gespeichert und manipuliert.

Diese Umwandlung eines Zeichens in eine Zahl wird als Kodierung bezeichnet, und der umgekehrte Vorgang ist die Dekodierung. ASCII und Unicode sind einige der gebräuchlichsten Codierungen.

In Python ist ein String eine Folge von Unicode-Zeichen. Unicode wurde eingeführt, um jedes Zeichen in allen Sprachen einzuschließen und eine einheitliche Codierung zu erreichen. Sie können mehr über Unicode erfahren von Python Unicode.

 


 

 

How to create a string in Python?

Strings können erstellt werden, indem Zeichen in einfache Anführungszeichen oder doppelte Anführungszeichen eingeschlossen werden. Sogar dreifache Anführungszeichen können in Python verwendet werden, werden aber im Allgemeinen verwendet, um mehrzeilige Strings und Docstrings darzustellen.

# Strings in Python definieren
# alle der folgenden sind gleichwertig
my_string = 'Hallo'
print(my_string)

my_string = "Hallo"
print(my_string)

my_string = '''Hallo'''
print(my_string)

# String mit dreifachen Anführungszeichen kann mehrere Zeilen verlängern
my_string = """Hallo, willkommen zu
           die Welt von Python"""
print(my_string)

 

Wenn Sie das Programm ausführen, lautet die Ausgabe:

Hallo
Hallo
Hallo
Hallo, willkommen zu
           die Welt von Python

 


 

 

How to access characters in a string?

 

Wir können auf einzelne Zeichen mittels Indexierung und auf einen Zeichenbereich mittels Slicing zugreifen. Der Index beginnt bei 0. Der Versuch, auf ein Zeichen außerhalb des Indexbereichs zuzugreifen, führt zu einem IndexError. Der Index muss eine ganze Zahl sein. Wir können keine Schwimmer oder andere Typen verwenden, dies führt zu TypeError.

 

Python erlaubt eine negative Indizierung für seine Sequenzen.

Der Index von -1 bezieht sich auf den letzten Punkt, -2 zum vorletzten Element usw. Wir können auf eine Reihe von Elementen in einer Zeichenfolge zugreifen, indem wir den Slicing-Operator verwenden :(colon).

#Auf String-Zeichen in Python zugreifen
str = 'programes'
print('str = ', str)

#erster Charakter
print('str[0] = ', str[0])

#letztes Zeichen
print('str[-1] = ', str[-1])

#slicing 2nd to 5th Charakter
print('str[1:5] = ', str[1:5])

#slicing 6th to 2nd last Charakter
print('str[5:-2] = ', str[5:-2])

 

Wenn wir das obige Programm ausführen, erhalten wir die folgende Ausgabe:

 

str =  programiz
str[0] =  p
str[-1] =  s
str[1:5] =  rogr
str[5:-2] =  am

 

Wenn wir versuchen, auf einen Index außerhalb des Bereichs zuzugreifen oder andere Zahlen als eine ganze Zahl zu verwenden, erhalten wir Fehler.

 

# Index muss im Bereich liegen
>>> my_string[15]  
...
IndexError: String-Index außerhalb des zulässigen Bereichs

# Index muss eine ganze Zahl sein
>>> my_string[1.5] 
...
TypeError: String-Indizes müssen ganze Zahlen sein

 

Das Slicing lässt sich am besten visualisieren, indem man den Index als zwischen den Elementen liegend betrachtet, wie unten gezeigt.

Wenn wir auf einen Bereich zugreifen möchten, benötigen wir den Index, der den Teil aus dem String herausschneidet.

 

How to change or delete a string?

 

Strings sind unveränderlich. Das bedeutet, dass Elemente eines Strings nicht mehr geändert werden können, wenn sie einmal zugewiesen wurden. Wir können einfach verschiedene Zeichenfolgen demselben Namen zuweisen.

 

>>> my_string = 'programes'
>>> my_string[5] = 'a'
...
TypeError: 'str' object does not support item assignment
>>> my_string = 'Python'
>>> my_string
'Python'

 

Wir können keine Zeichen aus einer Zeichenfolge löschen oder entfernen. Das vollständige Löschen der Zeichenfolge ist jedoch mit dem möglich del Stichwort.

>>> del my_string[1]
...
TypeError: 'str' object doesn't support item deletion
>>> del my_string
>>> my_string
...
NameError: name 'my_string' is not defined

 


 

Python String Operations

 

Es gibt viele Operationen, die mit Strings ausgeführt werden können, was ihn zu einem der am häufigsten verwendeten Datentypen in Python macht.

Um mehr über die in Python verfügbaren Datentypen zu erfahren, besuchen Sie: Python-Datentypen.

 

Concatenation of Two or More Strings

 

Das Zusammenfügen von zwei oder mehr Strings zu einem einzigen wird als Verkettung bezeichnet.

 

Der + Operator macht dies in Python. Das einfache Zusammenschreiben von zwei Zeichenfolgenliteralen verkettet sie ebenfalls.

Der * Operator kann verwendet werden, um die Zeichenfolge für eine bestimmte Anzahl von Malen zu wiederholen.

# Python-String-Operationen
str1 = 'Hello'
str2 ='World!'

# using +
print('str1 + str2 = ', str1 + str2)

# using *
print('str1 * 3 =', str1 * 3)

 

Wenn wir das obige Programm ausführen, erhalten wir die folgende Ausgabe:

str1 + str2 =  HelloWorld!
str1 * 3 = HelloHelloHello

 

Das Zusammenschreiben von zwei String-Literalen verkettet sie auch wie + operator.

Wenn wir Strings in verschiedenen Zeilen verketten möchten, können wir Klammern verwenden.

 

>>> # zwei String-Literale zusammen
>>> 'Hello ''World!'
'Hello World!'

>>> # Klammern verwenden
>>> s = ('Hello '
...      'World')
>>> s
'Hello World'

 


 

Iterating Through a string

 

Wir können einen String mit einer for Schleife  durchlaufen. Hier ist ein Beispiel, um die Anzahl der ‘l’s in einem String zu zählen.

 

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

 

Wenn wir das obige Programm ausführen, erhalten wir die folgende Ausgabe:

3 letters foun

 


 

String Membership Test

 

Wir können testen, ob ein Teilstring innerhalb eines Strings existiert oder nicht, mit dem Schlüsselwort in.

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

 


 

 

Built-in functions to Work with Python

Verschiedene eingebaute Funktionen, die mit Sequenzen arbeiten, arbeiten auch mit Strings.

 

Einige der am häufigsten verwendeten sind enumerate() und len(). Das enumerate()
Funktion gibt ein Aufzählungsobjekt zurück. Es enthält den Index und den Wert aller Elemente in der Zeichenfolge als Paare. Dies kann für die Iteration nützlich sein.

 

Ähnlich, len() gibt die Länge (Anzahl der Zeichen) des Strings zurück.

str = 'cold'

# enumerate()
list_enumerate = list(enumerate(str))
print('list(enumerate(str) = ', list_enumerate)

#character count
print('len(str) = ', len(str))

 

Wenn wir das obige Programm ausführen, erhalten wir die folgende Ausgabe:

list(enumerate(str) =  [(0, 'c'), (1, 'o'), (2, 'l'), (3, 'd')]
len(str) =  4

 


 

 

Python String Formatting

Escape Sequence

 

Wenn wir einen Text drucken möchten wie Er sagte: “Was ist da?”, wir dürfen weder einfache noch doppelte Anführungszeichen verwenden. Dies führt zu einem SyntaxError da der Text selbst sowohl einfache als auch doppelte Anführungszeichen enthält.

>>> print("Er sagte: "Was ist da?"")
...
SyntaxError: invalid syntax
>>> print('Er sagte: "Was ist da?"')
...
SyntaxError: invalid syntax

 

Eine Möglichkeit, dieses Problem zu umgehen, besteht darin, dreifache Anführungszeichen zu verwenden. Alternativ können wir Escape-Sequenzen verwenden.

Eine Escape-Sequenz beginnt mit einem Backslash und wird unterschiedlich interpretiert. Wenn wir ein einfaches Anführungszeichen verwenden, um einen String darzustellen, müssen alle einfachen Anführungszeichen innerhalb des Strings maskiert werden. Ähnlich verhält es sich mit doppelten Anführungszeichen. Hier ist, wie es getan werden kann, um den obigen Text darzustellen.

 

# using triple quotes
print('''He said, "What's there?"''')

# escaping single quotes
print('He said, "What\'s there?"')

# escaping double quotes
print("He said, \"What's there?\"")

 

Wenn wir das obige Programm ausführen, erhalten wir die folgende Ausgabe:

He said, "What's there?"
He said, "What's there?"
He said, "What's there?"

 

 

Hier ist eine Liste aller Escape-Sequenzen, die von Python unterstützt werden.

 

Escape Sequence Description
\newline Backslash and newline ignored
\\ Backslash
\’ Single quote
\” Double quote
\a ASCII Bell
\b ASCII Backspace
\f ASCII Formfeed
\n ASCII Linefeed
\r ASCII Carriage Return
\t ASCII Horizontal Tab
\v ASCII Vertical Tab
\ooo Character with octal value ooo
\xHH Character with hexadecimal value HH

 

 

Hier sind einige Beispiele

>>> print("C:\\Python32\\Lib")
C:\Python32\Lib

>>> print("Das ist gedruckt\nin zwei Zeilen")
Das ist gedruckt
in zwei Zeilen

>>> print("Das ist \x48\x45\x58 darstellung")
Das ist HEX Darstellung

 


 

Raw String to ignore escape sequence

 

Manchmal möchten wir vielleicht die Escape-Sequenzen innerhalb eines Strings ignorieren. Dazu können wir platzieren r oder R vor der Schnur. Dies bedeutet, dass es sich um einen Rohstring handelt und jede darin enthaltene Escape-Sequenz ignoriert wird.

>>> print("This is \x61 \ngood example")
This is a
good example
>>> print(r"This is \x61 \ngood example")
This is \x61 \ngood example

 


 

 

The format() Method for Formatting Strings

 

Die format() mit dem String-Objekt verfügbare Methode ist sehr vielseitig und leistungsstark beim Formatieren von Strings. Formatzeichenfolgen enthalten geschweifte Klammern {} als Platzhalter oder Ersatzfelder, die ersetzt werden.

Wir können Positionsargumente oder Schlüsselwortargumente verwenden, um die Reihenfolge anzugeben.

# Python string format() method

# default(implicit) order
default_order = "{}, {} and {}".format('John','Bill','Sean')
print('\n--- Default Order ---')
print(default_order)

# order using positional argument
positional_order = "{1}, {0} and {2}".format('John','Bill','Sean')
print('\n--- Positional Order ---')
print(positional_order)

# order using keyword argument
keyword_order = "{s}, {b} and {j}".format(j='John',b='Bill',s='Sean')
print('\n--- Keyword Order ---')
print(keyword_order)

 

Wenn wir das obige Programm ausführen, erhalten wir die folgende Ausgabe:

--- Default Order ---
John, Bill and Sean

--- Positional Order ---
Bill, John and Sean

--- Keyword Order ---
Sean, Bill and John

 

Die format() Methode kann optionale Formatspezifikationen haben. Sie werden durch Doppelpunkt vom Feldnamen getrennt. Zum Beispiel können wir linksbündig ausrichten <, rechtsbündig > oder Mitte ^ eine Zeichenfolge im angegebenen Raum.

 

Wir können auch ganze Zahlen als binär, hexadezimal usw. formatieren und Gleitkommazahlen können gerundet oder im Exponentenformat angezeigt werden. Es gibt unzählige Formatierungen, die Sie verwenden können. Hier finden Sie alle verfügbaren Zeichenfolgenformatierungen mit dem format() methode.

>>> # formatting integers
>>> "Binary representation of {0} is {0:b}".format(12)
'Binary representation of 12 is 1100'

>>> # formatting floats
>>> "Exponent representation: {0:e}".format(1566.345)
'Exponent representation: 1.566345e+03'

>>> # round off
>>> "One third is: {0:.3f}".format(1/3)
'One third is: 0.333'

>>> # string alignment
>>> "|{:<10}|{:^10}|{:>10}|".format('butter','bread','ham')
'|butter    |  bread   |       ham|'

 

 


 

 

Old style formatting

 

Wir können sogar Strings wie die alten formatieren sprintf() stil, der in der Programmiersprache C verwendet wird. Wir benutzen das % betreiber, um dies zu erreichen.

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

 


 

 

Common Python String Methods

 

Es gibt zahlreiche Methoden, die mit dem String-Objekt zur Verfügung stehen. Die format() Methode, die wir oben erwähnt haben, ist eine davon. Einige der am häufigsten verwendeten Methoden sind lower(), upper(), join(), split(), find(), replace() usw. Hier ist eine vollständige Liste aller integrierten Methoden zum Arbeiten mit Strings in Python.

>>> "PrOgRaMeS".lower()
'programiz'
>>> "PrOgRaMeS".upper()
'PROGRAMES'
>>> "This will split all words into a list".split()
['This', 'will', 'split', 'all', 'words', 'into', 'a', 'list']
>>> ' '.join(['This', 'will', 'join', 'all', 'words', 'into', 'a', 'string'])
'This will join all words into a string'
>>> 'Happy New Year'.find('ew')
7
>>> 'Happy New Year'.replace('Happy','Brilliant')
'Brilliant New Year'