Benutzer-Werkzeuge

Webseiten-Werkzeuge


python

Dies ist eine alte Version des Dokuments!


Besonderheiten

  • Python markiert Anweisungsblöcke durch einrücken
    • Es gibt keine { } oder Spezialwörter die einen Anweisungsblock (zum Beispiel nach einem if-Statement) eingrenzen
  • Python betrachtet Zeilenumbrüche als Ende einer Anweisung
    • Es kennt kein ; um eine Anweisung als zu Ende zu markieren

Technisches

Variablen, Instanzen, Referenzen

  • Referenzen → Zeiger die auf eine Instanz verweisen
    • auch bekannt als Bezeichner/Variablenname
  • Instanz → ein konkretes Objekt von einem Typ
    • auch bekannt als Variable, Wert usw.
    • also eine konkrete Stelle im Speicher/ein konkretes Objekt
  • Variablennamen sind in Python Referenzen auf eine Instanz
    • verweisen also auf einen Speicherbereich
  • =-Operator weißt einem Bezeichner (Variablenname) eine Referenz zu
  • verweisen zwei Referenzen auf die gleiche Instanz und wird eine geändert - wird eine zweite Instanz angelegt die den neuen Wert enthält und die geänderte Referenz verweist auf die neue Instanz
    • so lange beide Referenzen unverändert sind → gleiche Instanz
    • wenn Instanz über eine Referenz geändert wird → wird eine Kopie der Instanz angelegt
a=5
b=a

a und verweisen auf die gleiche Instanz - print würde in beiden Fällen 5 ausgeben.

a=5
b=a

a=a+1

a und b verweisen zuerst auf die gleiche Instanz (print würde bei beiden 5 ausgeben).
Nach dem a um 1 erhöht wurde verweisen a und b auf unterschiedliche Instanzen, a würde 5 ausgeben, b 6.

Hilfsprogramme

Name Beschreibung
pydocDokumentation zu python

Syntax: pydoc Funktionsname
pipPaketmanager - erlaubt es Pakete zu installieren und zu verwalten

Greift Standardmäßig auf pypi.python.org/ (Verzeichnis von Paketen) zu

Hinweis: Es empfiehlt sich python-dev (Entwicklungsdateien für python) zu installieren - einige Pakete müssen kompiliert werden und benötigen diese

Datentypen

  • Mutable → Veränderliche Datentypen → Datentypen die nach der Deklaration noch geändert werden können
  • Immutable → Datentypen die nach der Deklaration nicht mehr verändert werden können → entspricht const in C
  • Alle Datentypen sind Objekte

Sequentielle Datentypen

  • Datentypen bei denen die Informationen sequentiell (nacheinander) abgelegt sind
Name Beschreibung
unicodeEine Unicode-Zeichenkette
strEine Byte-Kette/eine ASCI-Zeichenkette

Speichert (im Gegensatz zu Unicode) die Daten Byte-Genau, man kann darin also Binärdaten speichern
listEine geordnete Liste von beliebigen Objekten/Datentypen

Geordnet → die Reihenfolge in der die Objekte gespeichert wurden wird beibehalten (hat nichts mit sortiert zu tun)
tupleImmutable (unveränderliche) Liste - kann nach der Deklaration nicht mehr verändert werden
setMenge - jedes Elememt darf nur einmal vorkommen
frozensetImmutable (Unveränderliches) set - kann nach der Deklaration nicht mehr verändert werden

Sequentielle Datentypen

  • Alle sequentielle Datentypen unterstützen die unten stehenden Operationen
Operator Beschreibung
+Verknüpft zwei sequentielle Datentypen nacheinander

a=„Hallo “
b=„Mensch“
c=a+b
print c
„Hallo Mensch“
+=Verknüpft zwei sequentielle Datentypen nacheinandern und weißt dem links stehenden das Ergebnis zu

a=„Hallo “
b=„Mensch“
a+=b
print a
„Hallo Mensch“
*Wiederholt den Inhalt des sequentiellen Objektes n mal


Syntax: a * n

  • a → sequentielles Objekt
  • n → Ganzzahl
a="Hallo"
b=a*5
print b
HalloHalloHalloHalloHallo

Sprachkonstrukte

Methoden

Syntax:

def Funktionsname (Parameter1,Parameter2):
    Funktionscode

Methodenaufruf:

Rückgabevariable=Funktionsname(Parameter1, Parameter2)
  • Rückgabevariable: Optional Variable die einen eventuellen Rückgabewert der Funktion aufnimmt
  • Funktionsname: Name der Funktion
  • Parameterx: Parameter die an die Funktion übergeben werden; Als bennannter Parameter in beliebiger Reihenfolge → Parametername=Wert, Parameter2=Wert2, oder als unbenannte Parameter in Reihenfolge → Parameter1, Parameter2 usw.

Optionale Parameter

  • In der Literatur/Dokumentation als Parameter1,Parameter1[,Parameter3, Parameter4] dargestellt → Parameter1 und 2 sind dabei anzugeben, 3 und 4 sind optional

Syntax:

def Funktionsname (Parameter1, Parameter2=Wert2, Parameter3=Wert3):
    Funktionscode

Parameter 2 und 3 sind optionale Parameter, wird kein Wert für sie angegeben, wird der Wert in der Funktionsdefinition genutzt.
Es bietet sich an optionale Parameter ans Ende der Funktion zu schreiben, dann ist auch beim weglassen eines Parameters noch eine Parameterübergabe ohne Bezeichner möglich.

Benannte Parameter

  • Ermöglicht das angeben von Parametern in beliebiger Reihenfolge

Syntax:

def Funktionsname (Parameter1, Parameter2):
      Code
      
Funtionsname(Parameter1=Wert1, Parameter2=Wert2)
  • Parameter 1 und 2 sind Referenzen/Bezeichner/Variablennamen
  • über den Parameternamen können die Paraemter direkt angesprochen werden

Funktionen

Name Beschreibung
printAusgabe von Text auf dem Bildschirm

Syntax: print Text
inputLiest Text auf der Kommandozeile ein - die Eingabe wird durch das Drücken von <Enter> beendet

Syntax: Variable=input (Ausgabetext)

  • Variable → Bezeichner der auf die eingelesenen Daten verweist
  • Ausgabetext → Optionaler Text der direkt vor der Eingabe erscheint

Achtung: input interpretiert die Eingaben bevor sie in die Variable übergeben werden - aus der Eingabe 1+1 würde 2 werden; lalal → würde als Zugriff auf die Variable „lala“ interpretiert werden (was zum Programmabbruch führt wenn diese nicht existiert). Es empfiehlt sich in der Regel raw_input statt input zu benutzen!

raw_inputLiest Text auf der Kommandozeile ein - die Eingabe wird durch das Drücken von <Enter> beendet
\\Im Gegensatz zu input wird die Eingabe nicht interpretiert, sondern wie eingegeben abgelegt.

Syntax: Variable=raw_input (Ausgabetext)

  • Variable → Bezeichner der auf die eingelesenen Daten verweist
  • Ausgabetext → Optionaler Text der direkt vor der Eingabe erscheint
openÖffnet eine Datei zum lesen oder schreiben

Syntax: Dateiobjekt=open(„Dateiname“,„Modus“)

  • Dateiobjekt → Variable die eine Referenz auf die Datei aufnimmt
  • Dateiname → gesamter Pfad zur gewünschten Datei
  • Modus → Für was die Datei geöffnet erden soll.
    r → Lesen, w → Schreiben, a → Daten an das Ende anfügen, r+ → Lesen und Schreiben, w+ → Schreiben und lesen - vorher die Datei leeren, a+ Anfügen und Datei zum lesen öffnen.
    Die Optionen gibt es auch mit vorangestelltem b - in dem Fall werden die Dateien binär geöffnet

Compiler-Medlungen

Meldung Mögliche Lösung
NameError: global name x is not defined Wahrscheinlich Attribut in Klasse deklariert (Variable in Klasse) und ZUgriff erfolgt innerhalb einer Methode/Funktion der Klasse ohne voran gestelltes self (self.Name)

Dokumentation/Turotials

Name Typ Beschreibung Quelle
Python Das umfassende HandbuchBuch/KursOpenbook von Galileo http://openbook.galileocomputing.de/python/
python.1392461851.txt.gz · Zuletzt geändert: 2014/09/07 17:53 (Externe Bearbeitung)