LT Python

Aus Wiki CCC Göttingen
Version vom 20. Dezember 2011, 05:03 Uhr von Hefee (Diskussion | Beiträge) (Syntax/Statements)

Wechseln zu: Navigation, Suche

Ideensammlung

Allgemein

  • block durch Einrückung
  • mensch kann alles in Listen, Tupeln, Directories reinpacken
  • Motto: batteries included

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)

Syntax/Statements

  • 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

  • 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

  • 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


Module

  • if __name__ == "main" - wird das script direkt ausgeführt, oder importiert
  • __init__.py, zeigt an das es ein Modul ist


OOP

  • 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

  • map,reduce
    • kann mittels zwei Zeiler auf mehre Kerne ausgelagert werden

Ketegorie:Ligthing Talks