LT Python: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
(erste Ideen zum Lightning Talk Python) |
Hefee (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
(7 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
= | == Allgemein == | ||
* block durch Einrückung | |||
* mensch kann alles in Listen, Tupeln, Directories reinpacken | |||
* Motto: batteries included | |||
* Prototyping | |||
* Auslagern in C/C++ | |||
== Datentypen == | == Datentypen == | ||
* mutable (m) vs. Non Mutable (nm) | * mutable (m) vs. Non Mutable (nm), welche Datentypen "können verändert" werden | ||
* Numbers (Decimal, Boolean) (nm) | * 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) | * Lists (m) | ||
* Tuples (nm) | * Tuples (nm) | ||
* Directories (m) | * Directories (m) | ||
* | * Sets (m) | ||
== Statements == | == Syntax/Statements == | ||
* if, one line if x>y: print z | * if, one line if x>y: print z | ||
* a=1; b=2; print a+b | * a=1; b=2; print a+b | ||
* [a, b,] | * [a, b,] | ||
* for, while | * for, while mit else | ||
<highlightSyntax language="python">for x in xs: | |||
print x | |||
if x=5: | |||
break | |||
else: | |||
print("keine 5 enthalten") | |||
</highlightSyntax> | |||
* try ... except ... finally | |||
* with - code ausführen beim rein & rausgehen des Blocks | |||
== Sonstiges == | == Sonstiges == | ||
* Documentation, __doc__ | * Documentation, __doc__ | ||
* | ** help command | ||
* Iterator | * Generator / Iterator | ||
* | ** schnell mal über eine Liste iterieren, weiterbearbeiten | ||
[f(ham) for ham in spam if ham is foo] | |||
* ipython | * ipython | ||
==Functionen== | ==Functionen== | ||
* Scope | * Scope | ||
* global | ** innen nach außen (func, parent func,... module, global) | ||
* lambda | * lambda - Funktion ohne Namen erstellen | ||
* | <highlightSyntax language="python">foo=lambda x:x*2</highlightSyntax> | ||
* kargs | |||
* named args | |||
<highlightSyntax language="python">def foo(x): | |||
return x*2 | |||
</highlightSyntax> | |||
* args/ kargs - wenn unklar was alles übergeben werden soll | |||
** *args - position argument | |||
** **kargs - directory argument | |||
* named args f(x=2) | |||
* decorator | * decorator | ||
<highlightSyntax language="python">@foo | |||
def test(x): | |||
pass | |||
def foo(f): | |||
def new_test(x): | |||
f(x) | |||
return new_test | |||
</highlightSyntax> | |||
==Module== | ==Module== | ||
* if __name__ == "main" | * if __name__ == "main" - wird das script direkt ausgeführt, oder importiert | ||
* __init__.py | * __init__.py, zeigt an das es ein Modul ist | ||
==OOP== | ==OOP== | ||
* | * erstes Argument Referenz auf Instanz, wird meist self genannt | ||
* | * classmethod/property via Decoratoren | ||
* Methoden auflösung, methode, __getarg__, ... | * Methoden auflösung, methode, __getarg__, ... | ||
* "Flavous", dict like,... | * "Flavous", dict like, str, repr ... | ||
* | |||
== Funktionale Programmierung == | |||
* map,reduce | |||
** kann mittels zwei Zeiler auf mehre Kerne ausgelagert werden | |||
== Docs == | |||
* http://doc.python.org | |||
* Dive into Python | |||
* Learning Python O'Reilly | |||
[[Ketegorie:Ligthing Talks]] | [[Ketegorie:Ligthing Talks]] |
Aktuelle Version vom 20. Dezember 2011, 18:32 Uhr
Allgemein[Bearbeiten]
- block durch Einrückung
- mensch kann alles in Listen, Tupeln, Directories reinpacken
- Motto: batteries included
- Prototyping
- Auslagern in C/C++
Datentypen[Bearbeiten]
- 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)
Syntax/Statements[Bearbeiten]
- if, one line if x>y: print z
- a=1; b=2; print a+b
- [a, b,]
- for, while mit else
<highlightSyntax language="python">for x in xs:
print x if x=5: break
else:
print("keine 5 enthalten")
</highlightSyntax>
- try ... except ... finally
- with - code ausführen beim rein & rausgehen des Blocks
Sonstiges[Bearbeiten]
- Documentation, __doc__
- help command
- Generator / Iterator
- schnell mal über eine Liste iterieren, weiterbearbeiten
[f(ham) for ham in spam if ham is foo]
- ipython
Functionen[Bearbeiten]
- Scope
- innen nach außen (func, parent func,... module, global)
- lambda - Funktion ohne Namen erstellen
<highlightSyntax language="python">foo=lambda x:x*2</highlightSyntax>
<highlightSyntax language="python">def foo(x): return x*2
</highlightSyntax>
- args/ kargs - wenn unklar was alles übergeben werden soll
- *args - position argument
- **kargs - directory argument
- named args f(x=2)
- decorator
<highlightSyntax language="python">@foo def test(x):
pass
def foo(f):
def new_test(x): f(x) return new_test
</highlightSyntax>
Module[Bearbeiten]
- if __name__ == "main" - wird das script direkt ausgeführt, oder importiert
- __init__.py, zeigt an das es ein Modul ist
OOP[Bearbeiten]
- erstes Argument Referenz auf Instanz, wird meist self genannt
- classmethod/property via Decoratoren
- Methoden auflösung, methode, __getarg__, ...
- "Flavous", dict like, str, repr ...
Funktionale Programmierung[Bearbeiten]
- map,reduce
- kann mittels zwei Zeiler auf mehre Kerne ausgelagert werden
Docs[Bearbeiten]
- http://doc.python.org
- Dive into Python
- Learning Python O'Reilly