Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
|
python [2014/11/21 19:17] root [Datentypen] |
python [2018/04/25 13:50] (aktuell) root [Sequentielle Operatoren] |
||
|---|---|---|---|
| Zeile 75: | Zeile 75: | ||
| id(b) | id(b) | ||
| 152711844 | 152711844 | ||
| + | #Abfrage de Speicherplatzes von a | ||
| + | id(a) | ||
| + | 152711856 | ||
| </ | </ | ||
| - | + | * A und B verweisen nach dem ändern von B auf verschiedene Speicherbereiche | |
| Zeile 135: | Zeile 137: | ||
| * s -> das serielle Objekt aus dem das größte Objekt/ | * s -> das serielle Objekt aus dem das größte Objekt/ | ||
| </ | </ | ||
| - | |s[x]|Ermöglicht den Zugriff auf das xte Element innerhalb eines seriellen Objektes \\ \\ \\ Syntax: s[x] \\ \\ < | + | |sum(s)|Summiert die Werte im seriellen Objekt (also deren Werte, nicht deren Anzahl| |
| + | |s[x]|Auch bekannt als Sub-Operator. \\ Ermöglicht den Zugriff auf das xte Element innerhalb eines seriellen Objektes \\ \\ \\ Syntax: s[x] \\ \\ < | ||
| * s -> das serielle Objekt | * s -> das serielle Objekt | ||
| - | * x -> das Element auf welches man zugreifen möchte/ | + | * x -> das Element auf welches man zugreifen möchte/ |
| + | Man kann innerhalb des Suboperators auch Operationen ausführen: | ||
| + | < | ||
| + | s[x-1] | ||
| + | </ | ||
| + | In dem Beispiel würde der Wert aus x - 1 berechnet und das Ergebnis als Index verwendet. | ||
| </ | </ | ||
| |s[x: | |s[x: | ||
| Zeile 190: | Zeile 198: | ||
| * in Python Standard-Mapping: | * in Python Standard-Mapping: | ||
| * Speichert Key-Value-Pairs aka Wert-Paare | * Speichert Key-Value-Pairs aka Wert-Paare | ||
| - | ===== Sprachkonstrukte | + | ====== Sprachkonstrukte |
| - | ==== Methoden | + | ===== Funktionen ===== |
| + | |||
| + | * Entsprechen weitgehenst | ||
| + | * sind eigenständige Objekte | ||
| + | |||
| + | ===== Methoden | ||
| Syntax: | Syntax: | ||
| Zeile 197: | Zeile 210: | ||
| def Funktionsname (Parameter1, | def Funktionsname (Parameter1, | ||
| Funktionscode | Funktionscode | ||
| + | return // | ||
| </ | </ | ||
| Zeile 207: | Zeile 221: | ||
| * Funktionsname: | * Funktionsname: | ||
| * Parameterx: Parameter die an die Funktion übergeben werden; Als bennannter Parameter in beliebiger Reihenfolge -> Parametername=Wert, | * Parameterx: Parameter die an die Funktion übergeben werden; Als bennannter Parameter in beliebiger Reihenfolge -> Parametername=Wert, | ||
| + | * **Achtung**: | ||
| + | * return: Optional, Gibt beim herausspringen den Wert/ | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| - | === Optionale Parameter | + | ==== Optionale Parameter |
| * In der Literatur/ | * In der Literatur/ | ||
| Zeile 223: | Zeile 244: | ||
| - | === Benannte Parameter | + | ==== Benannte Parameter |
| * Ermöglicht das angeben von Parametern in beliebiger Reihenfolge | * Ermöglicht das angeben von Parametern in beliebiger Reihenfolge | ||
| Zeile 238: | Zeile 259: | ||
| * über den Parameternamen können die Paraemter direkt angesprochen werden | * über den Parameternamen können die Paraemter direkt angesprochen werden | ||
| - | ==== Klassen | + | |
| + | |||
| + | ==== Beliebige Anzahl Parameter | ||
| + | |||
| + | * Bei Defeinition der Methode wird der letzte Parameter *// | ||
| + | * dieser Parameter kann dann beliebig viele Argumente aufnehmen | ||
| + | * das geht nur beim letzten Parameter in der Parameterliste | ||
| + | * die einzelnen Werte in dem Parameter werden in einem Tuppel gespeichert | ||
| + | * der Abruf der einzlnen Werte kann zum Beispiel durch eine for-each-Schleife (for x in y) erfolgen | ||
| + | |||
| + | Syntax: | ||
| + | |||
| + | < | ||
| + | def // | ||
| + | | ||
| + | |||
| + | // | ||
| + | </ | ||
| + | |||
| + | * //Parameter 3// hat ein vorangestellten * und nimmt alle Werte auf die überzählig sind (mehr sind als es Parameter gibt) | ||
| + | * in diesem Beispiel sind das die Werte 1-5 | ||
| + | |||
| + | Beispiel: | ||
| + | |||
| + | ===== Klassen | ||
| * Klassen sollten (wenn sie nicht von einer anderen Klasse erben) von Object erben | * Klassen sollten (wenn sie nicht von einer anderen Klasse erben) von Object erben | ||
| Zeile 244: | Zeile 289: | ||
| - | === Klassenvariablen | + | ==== Klassenvariablen |
| * Variablen die die global über alle Objekte der Klasse existieren | * Variablen die die global über alle Objekte der Klasse existieren | ||
| Zeile 260: | Zeile 305: | ||
| - | === Objektvariablen | + | ==== Objektvariablen |
| * Variablen die innerhalb des Objektes global verfügbar sind | * Variablen die innerhalb des Objektes global verfügbar sind | ||
| Zeile 277: | Zeile 322: | ||
| - | === Überladen | + | ==== Überladen |
| * Überladen von Methoden ist in Python nicht vorgesehen | * Überladen von Methoden ist in Python nicht vorgesehen | ||
| Zeile 284: | Zeile 329: | ||
| - | === Überschreiben | + | ==== Überschreiben |
| * Überschreiben von Methoden geht | * Überschreiben von Methoden geht | ||
| Zeile 290: | Zeile 335: | ||
| - | === Private Variablen/ | + | ==== Private Variablen/ |
| * Gibt es in Python nicht | * Gibt es in Python nicht | ||
| Zeile 298: | Zeile 343: | ||
| Syntax: def _Methodenname(self) | Syntax: def _Methodenname(self) | ||
| - | === Statische Variablen/ | + | ==== Statische Variablen/ |
| **This section is not tested and based on assumptions: | **This section is not tested and based on assumptions: | ||
| - | * Werden per __Methodenname | + | * Werden per %%_%%_Methodenname |
| * sind vorhanden ohne das eine Instanz der Klasse geschaffen wurde | * sind vorhanden ohne das eine Instanz der Klasse geschaffen wurde | ||
| - | === Spezialmethoden | + | ==== Spezialmethoden |
| * Es gibt einige Methoden die nur durch den Compiler aufgerufen werden sollen | * Es gibt einige Methoden die nur durch den Compiler aufgerufen werden sollen | ||
| - | * Diese werden mit __Methode__ | + | * Diese werden mit %%_%%_Methode%%_%%_ |
| - | Syntax: | + | Syntax: |
| ===== Funktionen ===== | ===== Funktionen ===== | ||
| Zeile 347: | Zeile 392: | ||
| * //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 | * //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 | ||
| </ | </ | ||
| + | |type (Objekt)|Gibt den Typ (die Klasse) eines Objektes zurück| | ||
| + | |dir(Objekt)|Gibt alle Methoden eines Objektes zurück| | ||
| ====== HowTos ====== | ====== HowTos ====== | ||
| Zeile 417: | Zeile 464: | ||
| |tell|Gibt die derzeitige Position in der Datei an (Integer)| | |tell|Gibt die derzeitige Position in der Datei an (Integer)| | ||
| |seek|Spingt an eine bestimmte Psoition der Datei| | |seek|Spingt an eine bestimmte Psoition der Datei| | ||
| + | |||
| + | |||
| + | ===== Benutzen von anderen Zeichensätzen ===== | ||
| + | |||
| + | Standardmäßig akzeptiert Python nur Zeichen des ASCII-Zeichensatzes im Code (alle anderen Zeichen müssen per Escape-Sequenz angegeben werden). \\ \\ | ||
| + | < | ||
| + | # | ||
| + | </ | ||
| + | |||
| + | Mit dem Kommentar # | ||
| + | |||
| + | Hinweis: Der verwendete Editor muss ebenfalls in UTF8 kodieren können (siehe [[vim]] | ||
| ====== Troubleshooting ====== | ====== Troubleshooting ====== | ||
| Zeile 440: | Zeile 499: | ||
| ^Name ^Typ ^Beschreibung ^Quelle ^ | ^Name ^Typ ^Beschreibung ^Quelle ^ | ||
| |Python Das umfassende Handbuch|Buch/ | |Python Das umfassende Handbuch|Buch/ | ||
| + | |||
| + | |||
| + | ====== Notizen ====== | ||
| + | |||
| + | ===== CGI ===== | ||
| + | |||
| + | ==== CGI FieldStorage ==== | ||
| + | |||
| + | * Dropdowns haben immer einen Wert -> ist ein Dropdown im Formular ist die Länge des CGI FieldStorages immer mindestens 1 | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||