Python

Python Menu

Um neue, formatierte Zeichenketten zu erzeugen, verwendet Python die String-Formatierung im Stil von C. Der "%"-Operator wird verwendet, um einen Satz von Variablen zu formatieren, die in einem "Tupel" (einer Liste fester Größe) eingeschlossen sind, zusammen mit einer Formatzeichenkette, die normalen Text zusammen mit "Argument-Spezifizierern", speziellen Symbolen wie "%s" und "%d", enthält.

Eine Variable namens "name" mit dem Namen des Benutzers darin, und du möchtest dann eine Begrüßung an diesen Benutzer ausgeben.

name = "Mike" print("Hallo, %s!" % name)

Um zwei oder mehr Argumente zu verwenden, verwende ein Tupel (Klammern):

name = "Jeff" alter = 18 print("%s is %d years old." % (name, alter))

Jedes Objekt, das keine Zeichenkette ist, kann auch mit dem %s-Operator formatiert werden. Die Zeichenkette, die von der "repr"-Methode dieses Objekts zurückgegeben wird, wird als Zeichenkette formatiert. Zum Beispiel:

meine_liste = ['Skill','Talent','Job'] print("Eine Liste: %s" % meine_liste)

Hier sind einige grundlegende Argumente aufgeführt:

%s - String (oder jedes Objekt mit einer String-Repräsentation, wie z. B. Zahlen)
%d - Integers
%f - Floats bzw. Fließkommazahlen
%.<Anzahl der Ziffern>f - Fließkommazahlen mit einer festen Anzahl von Ziffern rechts vom Punkt.
%x/%X - Ganzzahlen in Hex-Darstellung (Klein-/Großbuchstaben)

Übung

Du musst einen Formatstring schreiben, der die Daten mit der folgenden Syntax ausgibt: Hallo John Doe. Ihr aktueller Kontostand beträgt 53,44 $.

daten = ("John", "Doe", 53.44) format_zeichenkette = "Hallo"
print(format_zeichenkette % daten)
daten = ("John", "Doe", 53.44) format_zeichenkette = "Hallo %s %s. Ihr aktueller Kontostand beträgt $%s."
print(format_zeichenkette % daten)
test_object('daten') success_msg("Hervorragend!")

String-Operationen

Um den String in diesen Klammern (einfache Anführungszeichen sind ' ') zuzuordnen, kannst du nur doppelte Anführungszeichen wie folgt verwenden

einstring = "Hello World!"
print("Einfache Anführungszeichen sind ' '") print(einstring)

Die Länge des String kann mit der Funktion len() ermittelt werden

einstring = "Hello World!"
print(len(einstring))

Er gibt 12 aus, weil "Hello World!" 12 Zeichen lang ist, einschließlich Satzzeichen und Leerzeichen.

einstring = "Hello World!" print(einstring.index("o"))

Das gibt 4 aus, weil die Position des ersten Vorkommens des Buchstaben "o" 4 Zeichen vom ersten Zeichen entfernt ist. Beachte, dass es eigentlich zwei "o" in der Phrase gibt - diese Methode erkennt nur das erste.

Aber warum hat es nicht 5 ausgegeben? Ist "o" nicht das fünfte Zeichen in der Zeichenkette? Der Einfachheit halber beginnt Python (und die meisten anderen Programmiersprachen) die Dinge bei 0 statt bei 1. Der Index von "o" ist also 4.

einstring = "Hello World!" print(einstring.count("l"))

Dies zählt die Anzahl der l's in der Zeichenkette. Daher sollte es 3 ausgeben.

einstring = "Hello World!" print(einstring[3:7])

Dies gibt ein Segment der Zeichenkette aus, das bei Index 3 beginnt und bei Index 6 endet. Aber warum 6 und nicht 7? Auch hier gilt, dass die meisten Programmiersprachen dies tun - es macht das Rechnen innerhalb dieser Klammern einfacher.

Wenn du nur eine Zahl in den Klammern hast, bekommst du das einzelne Zeichen bei diesem Index. Wenn du die erste Zahl weglässt, aber den Doppelpunkt beibehältst, bekommst du ein Segment vom Anfang bis zu der Zahl, die du drin gelassen hast. Wenn du die zweite Zahl weglässt, erhältst du einen Ausschnitt von der ersten Zahl bis zum Ende.

Du kannst sogar negative Zahlen in die Klammern setzen. Sie sind ein einfacher Weg, um am Ende der Zeichenkette zu beginnen, anstatt am Anfang. Auf diese Weise bedeutet -3 "3. Zeichen vom Ende".

einstring = "Hello World!" print(einstring[3:7:2])

Dies gibt die Zeichen der Zeichenkette von 3 bis 7 aus, wobei ein Zeichen übersprungen wird. Dies ist eine erweiterte Slice-Syntax. Die allgemeine Form ist [Start:Stop:Schritt].

einstring = "Hello World!" print(einstring[3:7]) print(einstring[3:7:1])

Beide erzeugen die gleiche Ausgabe

Es gibt keine Funktion wie strrev in C, um einen String umzukehren. Aber mit der oben erwähnten Art von Slice-Syntax kannst du einen String leicht umkehren, z. B. so

einstring = "Hello World!" print(einstring[::-1])

upper() und lower() Funktionen

Diese erzeugen einen neuen String, bei der alle Buchstaben in Groß- bzw. Kleinbuchstaben umgewandelt werden.

einstring = "hello world!" print(einstring.upper()) print(einstring.lower())

startswith() und endswith() Funktionen

Damit wird ermittelt, ob der String mit etwas beginnt bzw. mit etwas endet. Die erste wird True ausgeben, da die Zeichenkette mit "Hello" beginnt. Die zweite wird False ausgeben, da die Zeichenkette sicher nicht mit "foo" endet.

einstring = "Hello World!" print(einstring.startswith("Hello")) print(einstring.endswith("foo"))

split() Funktion

Dadurch wird der String in eine Reihe von Zeichenketten aufgeteilt, die in einer Liste zusammengefasst werden. Da in diesem Beispiel an einem Leerzeichen geteilt wird, wird das erste Element in der Liste "Hello" und das zweite " World!" sein.

einstring = "Hello World!" einpaarworte = einstring.split(" ")

Übung

Versuche, den Code so zu ändern, dass er die richtigen Informationen ausgibt, indem du die Zeichenfolge änderst.

s = "Hallo und Guten Tag!" # Die Länge sollte 20 betragen print("Länge von s = %d" % len(s))
# Das erste Vorkommen von "a" sollte bei Index 8 sein print("Das erste Vorkommen des Buchstabens a = %d" % s.index("a"))
# Anzahl der a's sollte 2 sein print("a tritt %d mal auf" % s.count("a"))
# Slicing der Zeichenkette in Bits print("Die ersten fünf Zeichen sind '%s'" % s[:5]) # Start bis 5 print("Die nächsten fünf Zeichen sind '%s'" % s[5:10]) # 5 bis 10 print("Das dreizehnte Zeichen ist '%s'" % s[12]) # Nur Nummer 12 print("Die Zeichen mit ungeradem Index sind '%s'" %s[1::2]) #(0-basierte Indizierung) print("Die letzten fünf Zeichen sind '%s'" % s[-5:]) # Fünftletzter bis Ende
# Alles in Großbuchstaben umwandeln print("String in Großbuchstaben: %s" % s.upper())
# Alles in Kleinbuchstaben umwandeln print("String in Kleinbuchstaben: %s" % s.lower())
# Prüfen, wie ein String beginnt if s.startswith("Str"): print("String beginnt mit 'Str'. Gut!")
# Prüfen, wie ein String endet if s.endswith("ome!"): print("String endet mit 'ome!'. Gut!")
# Teile den String in drei separate Strings auf, # die jeweils nur ein Wort enthalten print("Teile die Worte des Strings auf: %s" % s.split(" "))
s = "Strings sind genial!" # Die Länge sollte 20 betragen print("Länge von s = %d" % len(s))
# Das erste Vorkommen von "a" sollte bei Index 8 sein print("Das erste Vorkommen des Buchstabens a = %d" % s.index("a"))
# Anzahl der a's sollte 2 sein print("a tritt %d mal auf" % s.count("a"))
# Slicing der Zeichenkette in Bits print("Die ersten fünf Zeichen sind '%s'" % s[:5]) # Start bis 5 print("Die nächsten fünf Zeichen sind '%s'" % s[5:10]) # 5 bis 10 print("Das dreizehnte Zeichen ist '%s'" % s[12]) # Nur Nummer 12 print("Die Zeichen mit ungeradem Index sind '%s'" %s[1::2]) #(0-basierte Indizierung) print("Die letzten fünf Zeichen sind '%s'" % s[-5:]) # Fünftletzter bis Ende
# Alles in Großbuchstaben umwandeln print("String in Großbuchstaben: %s" % s.upper())
# Alles in Kleinbuchstaben umwandeln print("String in Kleinbuchstaben: %s" % s.lower())
# Prüfen, wie ein String beginnt if s.startswith("Str"): print("String beginnt mit 'Str'. Gut!")
# Prüfen, wie ein String endet if s.endswith("ome!"): print("String endet mit 'ome!'. Gut!")
# Teile den String in drei separate Strings auf, # die jeweils nur ein Wort enthalten print("Teile die Worte des Strings auf: %s" % s.split(" "))
test_output_contains("Länge von s = 20") test_output_contains("Das erste Vorkommen des Buchstabens a = 8") test_output_contains("a tritt 2 mal auf") test_output_contains("String beginnt mit 'Str'. Gut!") test_output_contains("String endet mit 'ome!'. Gut!") success_msg("Hervorragend!")

Einführung

Python Basics

Python Advance

Data Science Python Tutorials

Python Eingebaute Funktionen