Benutzer-Werkzeuge

Webseiten-Werkzeuge


python_3

Unterschiede Python 2 und Python 3

In Python 2 war print ein Statement:

print "Text"

In Python 3 ist Print eine Methode:

print ("Text")

raw_input ist jetzt input

In Python 2 war raw_input für die nicht-interpretierte Eingabe von Daten zuständig (Daten wurden so in eine Variable gespeichert wie sie eingegeben wurden), während input die Eingabe als Python-Code interpretiert hat.
In Python 3 übernimmt die Funktion die vorher raw_input hatte, input.

Aus:

raw_input("Bitte eingeben")

Wird: input(„Bitte eingeben“)

Strings sind UTF-8

In Python 2 war ein String eine Kette von Zeichen, die normalerweise als ASCII interpretiert wurde.
In Python 3 ist ein String eine UTF-8 Zeichenkette.

Automatisches konvertieren nach Float

  • Wenn bei Rechenoperationen das Ergebnis eine Gleitkommazahl ist wird das Ergebnis automatisch ein float
  • Bei Python 2 wurde das Ergebnis by Default als Integer gespeichert → die Nachkommastellen fiehlen ggf. einfach weg

Variablen

Variablennamen

  • Müssen mit einem Unterstrich oder einem Buchstaben beginnen
  • dürfen Zahlen, Unterstriche, Buchstaben enthalten
  • Sind Case-Sensitiv (d.h. Groß- und Kleinschreibung wird berücksichtigt)

Konvertieren von Typen

Methodenname Beschreibung
int()Konvertiert alles in ein Integer (Ganzzahl)
float()Konvertiert alles in ein Floating Point Number (Reele Zahlen, mit Komma)

Syntax:

float(Variable)

Das ganze geht auch um komplette Ausdrücke (Das Ergebnis wird dann konvertiert → es wird zuvor der Inhalt in den Klammern ausgeführt):

a=float(5+3)

Ergibt: 8.0

Bei Rechenoperationen bei denen das Ergebnis eine Kommazahl ist wird automatisch nach Float konvertiert.

Operatoren

Die folgende Liste ist nicht abschließend, sie zeigt nur die Operatoren die nicht selbsterklärend sind:

OperatorBeschreibung
** Hoch/Power of x
a=5**2

Enstpricht 5 hoch 2.

%Modulu/Rest - gibt den Rest einer Division zurück


Rest ist die Menge Ganzzahlen die übrigbleibt wenn man eine Division nur bis zu einem ganzzahligen Ergebnis berechnet.
Beispiel:
17/3=5 Rest 2
Die 3 passt 5 mal in die 17 (Ergebnis 15) - es bleiben 2 Ganzzahlen übrig bis zur eigentlichen Zahl (17).
Syntax:

a=17 % 3

a wäre in obigem Beispiel 2.

+Addition oder verketten von Strings.
Hinweis: Beim Verketten von Strings müssen beide zu verkettenden Strings explizit Strings sein - es geht also nicht einfach eine Variable die eine Ziffer enthält mit einem String zu verknüpfen. Python nimmt in diesem Fall an, das es sich bei der Ziffer um eine Zahl handelt und nicht um eine Zeichenkette.

Reihenfolge der Abarbeitung von Operationen (Mathematische Operation)

Mathematische Ausdrücke werden nach den folgenden Regeln verarbeitet.

  • Ausdrücke in Klammern
  • Exponential-Funktionen (Hoch)
  • Multiplikationen und Divisionen (Mal, Geteilt)
  • Additionen und Subtraktionen (Minus und Plus)
  • von Links nach Rechts

String-Methoden/Operationen

Neben den hier gelisteteten Operationen (unvollständige Liste) kann man natürlichalle Operatoren für sequentielle Datentypen anwenden (da Strings solche sind).

Zu beachten ist, dass Methoden die Teil des String-Objektes sind nicht den String selbst ändern, sondern einen geänderten String als Rückgabewert liefern → der String im Objekt bleibt unverändert.

Methode/Operator Beschreibung
findGibt zurück wo ein Teilstring das erste mal in der Zeichenkette auftaucht
a=Banane
b=a.find("an")
print b

Würde 1 zurück geben, da der Substring „an“ das erste mal an Index 1 (Zählung beginnt bei 0) auftaucht
Ist der String nicht vorhanden wird -1 zurück gegeben.

replaceGibt einen String zurück in dem alle Vorkommen (per Default) eines bestimmten Teilstrings und ersetzt wurden durch einen anderen.
a="Ein Stein"
b=a.replace("Stein","Blech")
print b

In oben stehendem Beispiel würde „Ein Blech“ zurückgegeben, da b den String in a enthält, nur das alle Teilstrings „Stein“ durch „Blech“ ersetzt wurden.

lstrip/rstrip/stripGibt einen String zurück bei dem auf der linken Seite (lstrip)/am Anfang oder auf der rechten Seite (rstrip)/am Ende oder am Ende und Anfang (strip) die führenden/beendenden (jeweils vor oder nach dem letzten Buchstaben) Whitespaces, NewLines und alle anderen Steuerzeichen entfernt sind.

a=" Hallo Tom "
b=a.lstrip()
print (b)
b=a.rstrip()
print (b)
b=a.strip()

In dem obigen Beispiel würde der Reihe nach ausgegeben:

  • „Hallo Tom “ → lstrip nimmt die Whitespaces am Beginn des Strings weg
  • „ Hallo Tom“ → rstrip nimmt die Whitespaces am Ende des Strings weg
  • „Hallo Tom“ → strip nimmt die Whitespaces am Anfang und am Ende weg
startswithGibt true oder false zurück je nach dem ob ein String mit einem bestimmten Substring beginnt oder nicht.
a="Banane"
b=a.startswith("Ban")
print b

b wäre in diesem Beispiel True, da der String in a mit „Ban“ beginnt

INPrüft ob ein Teilstring irgendwo im String zu finden ist.

Der Operator ist von den sequentiellen Datentypen geerbt (String ist auch einer).
a="Hallo Thomas"
if "Thomas" in a:
    print "Hallo Thomas"

Obiges Beispiel überprüft ob der Teilstring „Thomas“ in a ist (ist er) und wenn das so ist führt er den Körper der if-Anweisung aus.

splitGibt eine Liste mit Teilstrings zurück - der Originalstring wird anhand eines vorgegebenen Strings (Seperator) in einzelne Teile zerlegt.
Der Separator (der Teilstring) ist nicht Teil des Ergebnisses (wird also gelöscht).

Syntax: y=x.split(Optional Seperator)
Der Seperator ist ein String anhand dessen in Einzelteile geteilt werden soll, wird er nicht angegeben wird Space dafür genutzt.

a="Hallo Thomas"
b=a.split()

b wäre in diesem Beispiel eine Liste mit den Elementen „Hallo“ und „Thoma“ - der Seperator (Leerzeichen) ist nicht im Ergebnis enthalten.

a="Eins-Zwei-Drei"
b=a.split("-")

b wäre eine Liste mit den Elementen „Eins“, „Zwei“, „Drei“ - auch hier ist der Seperator (in diesem Fall „-“ nicht im Ergebnis enthalten.

splitlinesLiefert eine Liste in der jedes Element eine Zeile aus dem String ist zurück - sucht in einer Zeichenkette nach Newline-Zeichen und spaltet die Zeichenkette an diesen auf, jedes Element enthält eine Zeile.

Vor allem Sinnvoll wenn per read aus einer Datei der gesamte Inhalt in einen String geschrieben wurde (alle Zeilen stehen dann hintereinander) und nun einzelne Zeilen benötigt werden.
a="Zeile 1 Text\nZeile 2 - Text\nZeile 3 - Text"
b=a.splitlines()

In diesem Fall wäre das Ergebnis eine liste mit den Elementen „Zeile 1 Text“, „Zeile 2 Text“, Zeile 3 Text„ - das Trennzeichen (das Newline) wird nicht mitgespeichert.

python_3.txt · Zuletzt geändert: 2018/04/25 14:26 von root