Hallo und Herzlich Willkommen =)
In dieser Lektion werfen wir einen genaueren Blick auf String Variablen und darauf wie in Python damit arbeiten kannst.
 
Wie du bereits gelernt hast musst du beim Programmieren mit Python zum Zeitpunkt der Erstellung einer Variable nicht ihren Datentyp definieren.
Das heißt also, dass du einfach nur eine Variable deklarieren und ihr mit „=“ einen Text zuweisen kannst.
Das Programm weist dann bei der Ausführung automatisch den Datentyp String zu.
Ein Text ist in Python immer dadurch gekennzeichnet, dass er von einfachen oder doppelten Anführungszeichen umschlossen wird:
 
testString = "Hello World =)"
print(type(testString), testString)
testString2 = 'Das ist ein anderer Text.'
print(type(testString2), testString2)
 
### ERGEBNIS / AUSGABE ###
<class 'str'> Hello World =)
<class 'str'> Das ist ein anderer Text.
 
Wenn du Anführungszeichen in deinem Text verwenden möchtest, dann kann Python natürlich nicht unterscheiden ob das zweite Anführungszeichen das Ende des Strings kennzeichnet, oder Teil vom Text sein soll.
Für diesen Fall gibt es den Backslash „/“ als Escape Zeichen, der Funktionalität des direkt darauffolgenden Zeichens außer Kraft setzen.
 
print("Ich möchte gern ein \" in meinem Text haben.")
 
### ERGEBNIS / AUSGABE ###
Ich möchte gern ein " in meinem Text haben. 
 
Der Backslash wird auch für sogenannte String Literale genutzt, um beispielsweise mit „\n“ Zeilenumbrüche in einem Text einzufügen.
 
print("Ich möchte gern \nin zwei Zeilen schreiben.")
 
### ERGEBNIS / AUSGABE ###
Ich möchte gern
in zwei Zeilen schreiben. 
 
Du kannst mehrere Strings verketten indem du den „+“ Operator verwendest.
 
print("Will" + "kom" + "men =)")
 
### ERGEBNIS / AUSGABE ###
Willkommen =) 
 
Wenn du einen Text formatieren möchtest, indem du verschiedene Werte von Variablen einfügst, kannst du dafür die string.format() Funktion verwenden.
 
wer = "Peter"
wieViele = 3
print("{1} hat {0} Äpfel gekauft.".format(wieViele, wer))
 
### ERGEBNIS / AUSGABE ###
Peter hat 3 Äpfel gekauft. 
 
Ab Python 3.6 stehen dir auch sogenannte f-strings (formatted string literals) zur Verfügung, die den Code für die Formatierung noch einmal deutlich übersichtlicher machen.
 
wer = "Felix"
wieViele = 3
print(f"{wer} hat {wieViele} Äpfel gekauft.")
 
### ERGEBNIS / AUSGABE ###
Felix hat 3 Äpfel gekauft. 
 
Außerdem gibt es viele hilfreiche Python Standard Funktionen die du nutzen kannst, wenn du mit Strings arbeitest.
 
Das wichtige hierbei ist, dass du weißt welche Möglichkeiten existieren und dass du sie bestenfalls schon einmal selbst ausprobiert hast.
Du solltest allerdings auf keinen Fall versuchen alles auswendig zu lernen, sondern dir die Zeit sparen und im Zweifelsfall lieber kurz in deinen Unterlagen nachschauen oder googlen wie das Schlüsselwort und die Syntax für deine benötigte Funktion aussieht.
 
Zum Beispiel kannst du mit Hilfe der len() Funktion abfragen wie viele Zeichen in einem String enthalten sind.
 
print(len(testString))
 
### ERGEBNIS / AUSGABE ###
14
 
Mit der Abfrage if len(testString) > 0 kannst du Beispielsweise sicherstellen, dass der String mit dem du arbeiten möchtest nicht leer ist.
 
Mit der Funktion .isalpha() kannst du prüfen ob dein String ausschließlich aus Buchstaben besteht.
Analog dazu kannst du .isalnum() nutzen um zu prüfen ob dein String ausschließlich Zahlen enthält.
 
print(testString.isalpha())
print("abc".isalpha())
print(testString.isalnum())
print("123".isalnum())
 
### ERGEBNIS / AUSGABE ###
False
True
False
True
 
Diese Funktionen sind sehr nützlich, wenn du zum Beispiel eingangswerte in dein Programm prüfen möchtest. Du kannst damit beispielsweise sicherstellen, dass ein Benutzer deines Programms wirklich nur eine Zahl eingegeben hat oder dein Programm wirklich nur Zahlen aus einer Datenbank eingelesen hat um anschließend damit weiter zu rechnen.
 
Du kannst alle Buchstaben in deinem String entweder klein oder groß schreiben indem du die .lower() oder .upper() Funktionen verwendest.
 
print(testString.lower())
print(testString.upper())
 
### ERGEBNIS / AUSGABE ###
hello world =)
HELLO WORLD =)
 
Das kann sehr nützlich sein, wenn du, wie in dem oberen Beispiel, prüfen möchtest ob ein bestimmtes Wort oder ein Zeichen in einem String enthalten ist und gleichzeitig sicherstellen möchtest, dass keine Übereinstimmung übersehen wird, nur weil die Groß- und Kleinschreibung anders ist.
 
Mit der .split() Funktion kannst du einen String an einem beliebigen Zeichen zerteilen.
 
print(testString.split("l"))
print("1, 2, 3, 4, 5".split(", "))
 
### ERGEBNIS / AUSGABE ###
['He', '', 'o Wor', 'd =)']
['1', '2', '3', '4', '5']
 
Diese Funktion ist sehr nützlich, wenn du zum Beispiel den eingelesenen Inhalt einer Kommaseparierten .csv Datei in ihre einzelnen Elemente aufteilen möchtest.
 
 
Du kannst Teile eines Strings durch beliebige andere Teile ersetzen indem du die . replace() Funktion nutzt.
 
print(testString.replace("World", "WRLD"))
 
### ERGEBNIS / AUSGABE ###
Hello WRLD =)
 
Diese Funktion kann beispielsweise sehr nützlich sein, wenn du Dateien in einem anderen Verzeichnis speichern möchtest und dafür den Pfad von alten Speicherort durch den vom Neuen ersetzt.
 
Du kannst das Zeichen an einer bestimmten Position in String abfragen, indem du den Index des gesuchten Zeichens in eckigen Klammern [] abfragst.
 
print(testString[6])
print(testString[0])
print(testString[-1])
print(testString[12:15])           # [Start (einschließlich) : Ende (ausschließlich)]
 
### ERGEBNIS / AUSGABE ###
W
H
)
=) 
 
Wenn du prüfen möchtest ob ein String Bestandteil eines anderen Strings ist, kannst du das mit dem „in“ Schlüsselwort in einer if Abfrage machen.
 
if "World" in testString:
            print(f"World ist ein Bestandteil von {testString}.")
 
### ERGEBNIS / AUSGABE ###
World ist ein Bestandteil von Hello World =). 
 
All diese Funktionen solltest du wie gesagt nicht auswendig lernen, aber du solltest wissen welche Möglichkeiten existieren, damit du direkt danach suchen kannst, wenn du auf einen Anwendungsfall dafür stößt.
Wenn du Fragen hast oder Probleme in dieser Lektion hattest, dann zögere bitte nicht bei Google oder mir nachzufragen.
Wenn du es geschafft hast einige Strings zu deklarieren, verketten und zu formatieren, dann herzlichen Glückwunsch zu deinem nächsten erfolgreichen Schritt und ich freue mich schon darauf dich in der nächsten Lektion wiederzusehen =)