LT Python
Aus Wiki CCC Göttingen
Inhaltsverzeichnis |
[Bearbeiten] Allgemein
- block durch Einrückung
- mensch kann alles in Listen, Tupeln, Directories reinpacken
- Motto: batteries included
- Prototyping
- Auslagern in C/C++
[Bearbeiten] Datentypen
- mutable (m) vs. Non Mutable (nm), welche Datentypen "können verändert" werden
- Numbers (Decimal, Boolean) (nm)
- Decimal ein Datentyp um genau zu rechnen - verbraucht im Zweifel halt ganzen RAM
- Strings (nm)
- spezial ->"""<-
- unicode, raw
- einfaches Stringformatting %i, {test}
- Lists (m)
- Tuples (nm)
- Directories (m)
- Sets (m)
[Bearbeiten] Syntax/Statements
- if, one line if x>y: print z
- a=1; b=2; print a+b
- [a, b,]
- for, while mit else
for x in xs:
print x
if x=5:
break
else:
print("keine 5 enthalten")
- try ... except ... finally
- with - code ausführen beim rein & rausgehen des Blocks
[Bearbeiten] Sonstiges
- Documentation, __doc__
- help command
- Generator / Iterator
- schnell mal über eine Liste iterieren, weiterbearbeiten
[f(ham) for ham in spam if ham is foo]
- ipython
[Bearbeiten] Functionen
- Scope
- innen nach außen (func, parent func,... module, global)
- lambda - Funktion ohne Namen erstellen
foo=lambda x:x*2
def foo(x):
return x*2
- args/ kargs - wenn unklar was alles übergeben werden soll
- *args - position argument
- **kargs - directory argument
- named args f(x=2)
- decorator
@foo
def test(x):
pass
def foo(f):
def new_test(x):
f(x)
return new_test
[Bearbeiten] Module
- if __name__ == "main" - wird das script direkt ausgeführt, oder importiert
- __init__.py, zeigt an das es ein Modul ist
[Bearbeiten] OOP
- erstes Argument Referenz auf Instanz, wird meist self genannt
- classmethod/property via Decoratoren
- Methoden auflösung, methode, __getarg__, ...
- "Flavous", dict like, str, repr ...
[Bearbeiten] Funktionale Programmierung
- map,reduce
- kann mittels zwei Zeiler auf mehre Kerne ausgelagert werden
[Bearbeiten] Docs
- http://doc.python.org
- Dive into Python
- Learning Python O'Reilly