🍪 Privacy & Transparency

We and our partners use cookies to Store and/or access information on a device. We and our partners use data for Personalised ads and content, ad and content measurement, audience insights and product development. An example of data being processed may be a unique identifier stored in a cookie. Some of our partners may process your data as a part of their legitimate business interest without asking for consent. To view the purposes they believe they have legitimate interest for, or to object to this data processing use the vendor list link below. The consent submitted will only be used for data processing originating from this website. If you would like to change your settings or withdraw consent at any time, the link to do so is in our privacy policy accessible from our home page..

Vendor List | Privacy Policy
Skip to content

Technik Blog

Programmieren | Arduino | ESP32 | MicroPython | Python | Raspberry PI

Menu
  • Projekte
    • LED’s
    • Servo & Schrittmotoren
    • Sound
    • LCD’s
    • Kommunikation
    • Sicherheit
    • Weekend Project
  • Arduino
    • Tutorials
    • ProMini
      • Anschließen & Programmieren
    • Nano
      • Arduino Nano – Übersicht
    • UNO
      • Übersicht
    • MEGA 2560
      • Übersicht
    • Leonardo
      • Übersicht
    • NodeMCU
      • NodeMCU – “Einer für (fast) Alles!”
    • Lilypad
      • Arduino: Lilypad “Jetzt Geht’s Rund!”
    • WEMOS
      • WEMOS D1 – Arduino UNO kompatibles Board mit ESP8266 Chip
      • WEMOS D1 Mini – Übersicht
      • Wemos D1 mini Shields
    • STM32x
      • STM32F103C8T6 – Übersicht
    • Maker UNO
      • Maker UNO – Überblick und Test
    • ATTiny85
      • Mini Arduino mit ATTiny85 Chip
      • ATtiny85 mit dem Arduino UNO beschreiben
  • Android
  • Über mich
  • DeutschDeutsch
  • EnglishEnglish
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

Kategorien

Tools

  • 8×8 LED Matrix Tool
  • 8×16 LED Matrix Modul von Keyestudio
  • 16×16 LED Matrix – Generator
  • Widerstandsrechner
  • Rechner für Strom & Widerstände
  • ASCII Tabelle

Meta

  • Videothek
  • Impressum
  • Datenschutzerklärung
  • Disclaimer
  • Kontakt
  • Cookie-Richtlinie (EU)

Links

Blogverzeichnis Bloggerei.de Blogverzeichnis TopBlogs.de das Original - Blogverzeichnis | Blog Top Liste Blogverzeichnis trusted-blogs.com
©2023 Technik Blog | Built using WordPress and Responsive Blogily theme by Superb