Abschnitt 2 · Lektion 3
Text
Zahlen sind die eine Hälfte von dem, womit Programme arbeiten. Die andere Hälfte ist Text. Namen,
Adressen, Artikelbezeichnungen, ganze Zeilen aus einer Datei. Text heißt auf Englisch string, in
Python kurz str. Das Wort passt ziemlich gut, denn ein Text ist eine Schnur aus Zeichen, eins
hinter dem anderen.
Anführungszeichen, einfache und doppelte
print("Hallo")
print('Hallo')
print("Mias Laden heißt 'Zur Ecke'")
print('Sie sagte: "Bis morgen."') Ein Text steht in Anführungszeichen. Ob einfache oder doppelte, ist Python egal, die ersten beiden Zeilen tun genau dasselbe. Wenn du von PHP kommst, kennst du dort einen Unterschied zwischen den beiden. In Python gibt es keinen.
Nützlich wird die Wahl, wenn im Text selbst Anführungszeichen vorkommen. Ein Text in doppelten darf
einfache enthalten und umgekehrt, so wie in Zeile drei und vier. Schwierig wird es nur, wenn du
dieselbe Sorte innen und außen brauchst. Dann kommt ein Backslash davor, und das Zeichen gehört zum
Text, statt ihn zu beenden: "Sie sagte: \"Bis morgen.\"". Meistens liest sich der Wechsel der
Sorte aber besser.
In diesem Kurs steht Text in doppelten Anführungszeichen, solange nichts dagegen spricht.
Zeilenumbrüche
print("Erste Zeile\nZweite Zeile")
print("""Einkaufsliste:
Brot
Milch""") Ein Backslash hat in einem Text noch eine zweite Aufgabe. \n ist nicht etwa ein Backslash mit
einem n. Es ist ein einzelnes Zeichen, der Zeilenumbruch (n wie newline). Wenn er mitten im Text
steht, geht die Ausgabe in der nächsten Zeile weiter.
Für längere Texte über mehrere Zeilen gibt es eine bequemere Form mit drei Anführungszeichen am Anfang und am Ende. Dazwischen darf der Text so viele Zeilen haben, wie er will, und die Umbrüche bleiben da, wo sie im Code stehen. Das kommt später bei längeren Texten und bei Befehlen über mehrere Zeilen wieder vor.
Umlaute und ß gehen übrigens überall einfach so, im Text wie in der Ausgabe. Python arbeitet mit Unicode, und da sind Umlaute ganz normale Zeichen.
Zusammenkleben, wiederholen, zählen
vorname = "Mia"
nachname = "Schulz"
name = vorname + " " + nachname
print(name)
print("=" * 20)
print(len(name))
print(len("Käse")) Im Beispiel stecken drei Werkzeuge:
+klebt zwei Texte aneinander. Und zwar ohne Lücke, deshalb steht in der dritten Zeile das" "dazwischen. Ohne das bekommst duMiaSchulz.*wiederholt einen Text."=" * 20ergibt zwanzig Gleichheitszeichen. Klingt nach Spielerei, ist aber der schnellste Weg zu einer Linie unter einer Überschrift.len()zählt die Zeichen.len(name)ist 10: drei für Mia, eins für das Leerzeichen, sechs für Schulz. Ein Leerzeichen ist ein Zeichen wie jedes andere.
In der letzten Zeile ist len("Käse") wirklich 4. Das klingt selbstverständlich, ist es aber nicht
in jeder Sprache. Manche zählen ein ä als zwei Zeichen, weil es im Speicher zwei Byte belegt. Python
zählt, was man sieht.
+ und * sind dieselben Zeichen wie beim Rechnen. Was gemeint ist, entscheidet Python anhand der
Werte. Zwei Zahlen werden addiert, zwei Texte aneinandergehängt. Bei Text und Zahl gemischt ist
Schluss.
Text und Zahl passen nicht zusammen
summe = 5
print("Summe: " + summe) "Summe: " + summe soll einen Text und eine Zahl verbinden, und das macht Python nicht. Die Meldung
lautet TypeError: can only concatenate str (not "int") to str. Übersetzt heißt das, dass man an
einen Text nur einen Text hängen kann und keine ganze Zahl.
Das wirkt kleinlich. Es hat aber einen Grund. Was soll "5" + 5 sein, 10 oder 55? Manche
Sprachen raten, und je nach Sprache raten sie verschieden. Python rät nicht und lässt dich
entscheiden.
Bis jetzt hilft das Komma in print, also print("Summe:", summe). Die beiden richtigen Lösungen
kommen in den nächsten zwei Lektionen. In 2.4 geht es darum, wie man Werte bequem in einen Text
einsetzt, und in 2.5, wie man aus einer Zahl einen Text macht und umgekehrt.
Zum Mitnehmen
Einfache und doppelte Anführungszeichen tun dasselbe, und ein Backslash mit n macht einen Zeilenumbruch. Plus klebt Texte aneinander, mal wiederholt einen, len() zählt die Zeichen, und Text plus Zahl endet in einem TypeError.
Jetzt du
Basis Konto, kostenlosZu dieser Lektion gehört eine Aufgabe. Du schreibst den Code selbst, und nach jedem Lauf sagt dir eine Prüfliste, was schon stimmt.
Dafür brauchst du das Basis Konto. Es kostet nichts, und ein Passwort gibt es auch nicht.
In diesem Kurs läuft dein Code auf einem Server. Dafür hat das Basis Konto 1 Stunde im Monat, mehr Zeit gibt es mit dem Premium Konto.
Was in dieser Lektion steckt
-
Artikel mit 4 Beispielen zum Ausprobieren
Steht hier, ohne Konto lesbar.
-
Aufgabe, dein Code läuft auf einem Server
Öffnet sich mit dem Basis Konto.