Skip to content

Technik Blog

Programmieren | Arduino | ESP32 | MicroPython | Python | Raspberry Pi | Raspberry Pi Pico

Menu
  • Smarthome
  • Arduino
  • ESP32 & Co.
  • Raspberry Pi & Pico
  • Solo Mining
  • Über mich
  • Deutsch
  • English
Menu

Python #28 – arbeiten mit Strings / Zeichenketten

Posted on 20. Januar 202130. April 2023 by Stefan Draeger

In diesem Beitrag möchte ich dir ein paar sehr nützliche Funktionen vorstellen mit welchen du Zeichenketten bzw. Strings be- /verarbeiten kannst. Im Beitrag Python #2: Variablen, Zahlen und Strings habe ich dir bereits 2 sollcher Funktionen vorgestellt (upper() & lower()) und gezeigt wie einfach man 2 Strings miteinander verbinden kann.

  • Groß -/Kleinschreiben von Strings in Python3
  • prüfen eines Strings in Python3
    • startswith & endswith
  • manipulieren von Strings in Python3
    • überzählige Zeichen entfernen
    • suchen von Zeichen in einem String
    • ersetzen von Zeichen
  • Zeichenketten formatieren

Groß -/Kleinschreiben von Strings in Python3

Schauen wir uns nochmal kurz (der Vollständigkeitshalber) die beiden Funktionen upper() & lower() an.

Wenn wir nun eine Zeichenkette wie „Hallo Welt!“ haben und möchten alle Buchstaben in Großschrift haben so müssen wir auf dieser Zeichenkette nur die Funktion upper() ausführen.

greeting = "Hallo Welt!"
print(greeting.upper())
Python3 - String, Funktion upper()
Python3 – String, Funktion upper()

Genauso einfach wie wir den Text in Großschrift umgewandelt haben können wir auch den Text in Kleinschrift umwandeln.

greeting = "Hallo Welt!"
print(greeting.lower())
Python3 - String, Funktion lower()
Python3 – String, Funktion lower()

prüfen eines Strings in Python3

startswith & endswith

Möchtest du prüfen ob ein String mit einem bestimmten Buchstaben oder einer Zeichenkette startet oder endet so kannst du die Funktionen startswith bzw. endswith verwenden.

greeting = "Hallo Welt!"
print(greeting.startswith("h"))
print(greeting.endswith("weld!"))
print(greeting.startswith("H"))
print(greeting.endswith("Welt!"))
Python3 - Strings, Funktionen startswith & endswidth
Python3 – Strings, Funktionen startswith & endswidth

manipulieren von Strings in Python3

überzählige Zeichen entfernen

In dem Beitrag Python #23 – Datenstrukturen habe ich dir bereits die Funktion „strip()“ vorgestellt mit welcher du überzählige Leerzeichen aus einer Zeichenkette entfernen kannst. 

Die Funktion strip() entfernt nur die Leerzeichen am Anfang und am Ende einer Zeichenkette!

text = "   Hier steht ein Text!    "
print(text.strip())
text2 = "Hier steht     ein Text!    "
print(text2.strip())
Python3 - überzählige Leerzeichen entfernen
Python3 – überzählige Leerzeichen entfernen

Man erkennt in der letzten Ausgabe des Textes dass, die Leerzeichen in der Mitte des Textes nicht entfernt wurden.

Du kannst der Funktion strip() aber auch die Zeichen übergeben welche am Anfang & Ende entfernt werden sollen.

text = "+++++Hier steht ein Text!+++++"
print(text.strip('+'))
Python3 - entfernen von Benutzerdefinierten Zeichen aus einem String
Python3 – entfernen von Benutzerdefinierten Zeichen aus einem String

Wenn du nur die Zeichen auf der rechten bzw. linken Seite eines Strings manipulieren möchtest dann kannst du die Funktionen rstrip() bzw. lstrip() verwenden. (Der erste Buchstabe verrät dir auch gleich welche Seite der Zeichenkette geprüft wird.)

text = "+++++Hier steht ein Text!+++++"
print(text.strip('+'))
print(text.rstrip('+'))
print(text.lstrip('+'))
Python3 - Strings manipulieren mit strip, rstrip, lstrip
Python3 – Strings manipulieren mit strip, rstrip, lstrip

suchen von Zeichen in einem String

Mit Hilfe der Funktion „find“ kannst du die Position von einem bestimmten Zeichen in einem String ausgeben. Wenn dieses Zeichen nicht enthalten ist wird die negative Zahl -1 ausgegeben.

text = "Hier steht ein Text!"
print(text.find("e"))
print(text.find("g"))
Python3 - Zeichen in einem String mit "find()" suchen
Python3 – Zeichen in einem String mit „find()“ suchen

Es wird jedoch nur die erste gefundene Position des Zeichens ausgegeben, d.h. wenn dieses Zeichen mehrfach vorkommt dann musst du dieses über einen Regulären Ausdruck lösen. (siehe https://stackoverflow.com/questions/250271/python-regex-how-to-get-positions-and-values-of-matches)

import re
text = "Hier steht ein Text!"
p = re.compile("e")
for m in p.finditer(text):
    print(m.start(), m.group())
Python3 - finde alle Zeichen inkl. Position in einem String
Python3 – finde alle Zeichen inkl. Position in einem String

ersetzen von Zeichen

Wenn du ein oder mehrere Zeichen in einem String ersetzen möchtest so nimmst du die Funktion „replace“ und übergibst dieser die Zeichen sowie deine zu manipulierende Zeichenkette.

text = "Hier steht ein Text!"
print(text.replace('e','k'))
print(text.replace('Hier', 'Dort'))
Python3 - ersetzen von Zeichen in einem String
Python3 – ersetzen von Zeichen in einem String

Mit der Funktion „replace“ suchst du jedoch nach einer bestimmten Zeichenkette in einer anderen Zeichenkette und ersetzt alle vorkommen, du kannst somit nicht einzelne Zeichen ersetzen!

Zeichenketten formatieren

Du kannst dir in einer Zeichenkette auch Platzhalter für andere Zeichen / Zeichenketten setzen um so deinen String zu formatieren. 

Bisher haben wir Texte wie folgt formatiert:

anzahl = 2
text = "Ich habe "+str(anzahl)+" Zwergkaninchen!"
print(text)

Und die Ausgabe war auch richtig aber wir haben hier einen festen Text und die Konkatination mit dem Plus Zeichen kostet doch etwas (zusätzliche CPU Zeit sowie Speicher), daher möchte ich dir nun eine bessere und vor allem dynamischere Methode zeigen.

text2 = "Ich habe {0} Zwergkaninchen!"
print(text2.format(anzahl))
Python3 - Formatieren von Strings mit der Funktion format
Python3 – Formatieren von Strings mit der Funktion format

Ein großer Vorteil dieser Methode ist es das wir den Text zbsp. übersetzen können. 

#Variable für die Anzahl der Tiere
anzahl = 2
#Dictionary mit den Texten sowie den Platzhalter für die Anzahl
translations = {
    "de" : "Ich habe {0} Zwergkaninchen!",
    "en" : "I got {0} rabbits!"
    }

#Ausgeben des deutschen Textes
print(translations["de"].format(anzahl))
#Ausgeben des englischen Textes
print(translations["en"].format(anzahl))
Python3 - formatieren eines Strings mit Übersetzung
Python3 – formatieren eines Strings mit Übersetzung

Du kannst natürlich beliebig viele Platzhalter in einem String unterbringen um so deinen Text beliebig zu formatieren.

anzahl = 2
tier = "Kaninchen"
text = "Ich habe {0} {1}!"
print(text.format(anzahl, tier))
Python3 - Zeichenkette mit 2 Platzhalter
Python3 – Zeichenkette mit 2 Platzhalter

Wir können die Platzhalter aber auch mit einem sprechenden Namen belegen und haben somit mehr Kontrolle über unsere Ausgabe.

anzahl = 2
tier = "Kaninchen"
text = "Ich habe {count} {pet}!"
print(text.format(count=anzahl, pet=tier))

Der Vorteil ist auch das wir nun die Reihenfolge der Parameter beliebig ändern können.

Python3 - formatieren eines Strings
Python3 – formatieren eines Strings

Möchtest du noch mehr zur Funktion „format“ erfahren, so empfehle ich dir die offizielle Dokumentation, welche du unter https://docs.python.org/3/tutorial/inputoutput.html#the-string-format-method findest.

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Fragen oder Feedback?

Du hast eine Idee, brauchst Hilfe oder möchtest Feedback loswerden?
Support-Ticket erstellen

Newsletter abonnieren

Bleib auf dem Laufenden: Erhalte regelmäßig Updates zu neuen Projekten, Tutorials und Tipps rund um Arduino, ESP32 und mehr – direkt in dein Postfach.

Jetzt Newsletter abonnieren

Unterstütze meinen Blog

Wenn dir meine Inhalte gefallen, freue ich mich über deine Unterstützung auf Tipeee.
So hilfst du mit, den Blog am Leben zu halten und neue Beiträge zu ermöglichen.

draeger-it.blog auf Tipeee unterstützen

Vielen Dank für deinen Support!
– Stefan Draeger

Kategorien

Tools

  • Unix-Zeitstempel-Rechner
  • ASCII Tabelle
  • Spannung, Strom, Widerstand und Leistung berechnen
  • Widerstandsrechner
  • 8×8 LED Matrix Tool
  • 8×16 LED Matrix Modul von Keyestudio
  • 16×16 LED Matrix – Generator

Links

Blogverzeichnis Bloggerei.de TopBlogs.de das Original - Blogverzeichnis | Blog Top Liste Blogverzeichnis trusted-blogs.com

Stefan Draeger
Königsberger Str. 13
38364 Schöningen

Tel.: 01778501273
E-Mail: info@draeger-it.blog

Folge mir auf

  • Impressum
  • Datenschutzerklärung
  • Disclaimer
  • Cookie-Richtlinie (EU)
©2025 Technik Blog | Built using WordPress and Responsive Blogily theme by Superb
Cookie-Zustimmung verwalten
Wir verwenden Technologien wie Cookies, um Geräteinformationen zu speichern und/oder darauf zuzugreifen. Wir tun dies, um das Surferlebnis zu verbessern und um personalisierte Werbung anzuzeigen. Wenn Sie diesen Technologien zustimmen, können wir Daten wie das Surfverhalten oder eindeutige IDs auf dieser Website verarbeiten. Wenn Sie Ihre Zustimmung nicht erteilen oder zurückziehen, können bestimmte Funktionen beeinträchtigt werden.
Funktional Immer aktiv
Die technische Speicherung oder der Zugang ist unbedingt erforderlich für den rechtmäßigen Zweck, die Nutzung eines bestimmten Dienstes zu ermöglichen, der vom Teilnehmer oder Nutzer ausdrücklich gewünscht wird, oder für den alleinigen Zweck, die Übertragung einer Nachricht über ein elektronisches Kommunikationsnetz durchzuführen.
Vorlieben
Die technische Speicherung oder der Zugriff ist für den rechtmäßigen Zweck der Speicherung von Präferenzen erforderlich, die nicht vom Abonnenten oder Benutzer angefordert wurden.
Statistiken
Die technische Speicherung oder der Zugriff, der ausschließlich zu statistischen Zwecken erfolgt. Die technische Speicherung oder der Zugriff, der ausschließlich zu anonymen statistischen Zwecken verwendet wird. Ohne eine Vorladung, die freiwillige Zustimmung deines Internetdienstanbieters oder zusätzliche Aufzeichnungen von Dritten können die zu diesem Zweck gespeicherten oder abgerufenen Informationen allein in der Regel nicht dazu verwendet werden, dich zu identifizieren.
Marketing
Die technische Speicherung oder der Zugriff ist erforderlich, um Nutzerprofile zu erstellen, um Werbung zu versenden oder um den Nutzer auf einer Website oder über mehrere Websites hinweg zu ähnlichen Marketingzwecken zu verfolgen.
Optionen verwalten Dienste verwalten Verwalten von {vendor_count}-Lieferanten Lese mehr über diese Zwecke
Einstellungen anzeigen
{title} {title} {title}