LT Python: Unterschied zwischen den Versionen

Aus Wiki CCC Göttingen
Zur Navigation springen Zur Suche springen
(einwenig mehr ausgeschmückt)
Keine Bearbeitungszusammenfassung
 
(5 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
=Ideensammlung=
== 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), welche Datentypen "können verändert" werden
* 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)
* Strings (nm)
** spezial ->"""<-  
** spezial ->"""<-  
Zeile 12: Zeile 18:
* Directories (m)
* Directories (m)
* Sets (m)
* Sets (m)
* Files


== Syntax/Statements ==
== Syntax/Statements ==
* python defintiert Einrückung
* 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 mit else
* for, while mit else
for x in xs:
<highlightSyntax language="python">for x in xs:
    print x
  print x
    if x=5:
  if x=5:
      break
    break
else:
else:
    print("keine fünf enthalten")
  print("keine 5 enthalten")
 
</highlightSyntax>
* try ... except ... finally
* try ... except ... finally
* with - code ausführen beim rein & rausgehen des Blocks
* with - code ausführen beim rein & rausgehen des Blocks


== Sonstiges ==
== Sonstiges ==
t* mensch kann alles in Listen,tupel, directories reinpacken
* Documentation, __doc__
* Documentation, __doc__
** help command
** help command
Zeile 44: Zeile 46:
** innen nach außen (func, parent func,... module, global)
** innen nach außen (func, parent func,... module, global)
* lambda - Funktion ohne Namen erstellen
* lambda - Funktion ohne Namen erstellen
foo=lambda x:x*2
<highlightSyntax language="python">foo=lambda x:x*2</highlightSyntax>


  def foo(x):
   
<highlightSyntax language="python">def foo(x):
     return x*2
     return x*2
 
</highlightSyntax>
* args/ kargs - wenn unklar was alles übergeben werden soll
* args/ kargs - wenn unklar was alles übergeben werden soll
** *args - position argument
** *args - position argument
Zeile 54: Zeile 57:
* named args f(x=2)
* named args f(x=2)
* decorator
* decorator
@foo
def test(x):
  pass


def foo(f):
<highlightSyntax language="python">@foo
    def new_test(x):
def test(x):
        f(x)
  pass
    return new_test


def foo(f):
  def new_test(x):
    f(x)
  return new_test
</highlightSyntax>


==Module==
==Module==
Zeile 70: Zeile 74:


==OOP==
==OOP==
* erstes Argument referenz auf Instanz, wird meist self genannt
* erstes Argument Referenz auf Instanz, wird meist self genannt
* classmethod/property via Decoratoren
* classmethod/property via Decoratoren
* Methoden auflösung, methode, __getarg__, ...
* Methoden auflösung, methode, __getarg__, ...
* "Flavous", dict like, str, repr ...
* "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]

Ketegorie:Ligthing Talks