LT Python: Unterschied zwischen den Versionen

Aus Wiki CCC Göttingen
Zur Navigation springen Zur Suche springen
(erste Ideen zum Lightning Talk Python)
 
Keine Bearbeitungszusammenfassung
 
(7 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)
* mutable (m) vs. Non Mutable (nm), welche Datentypen "können verändert" werden
* Numbers (Decimal, Boolean) (nm)
* Numbers (Decimal, Boolean) (nm)
* Sets (?)
** Decimal ein Datentyp um genau zu rechnen - verbraucht im Zweifel halt ganzen RAM
* Strings, spezial ->"""<- (nm)
* Strings (nm)
** spezial ->"""<-  
** unicode, raw
** einfaches Stringformatting %i, {test}
* Lists (m)
* Lists (m)
* Tuples (nm)
* Tuples (nm)
* Directories (m)
* Directories (m)
* Files (?)
* 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, try, with mit else
* 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__
* Generator
** help command
* Iterator
* Generator / Iterator
* __spam__
** 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
* arg
<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
* yield
 
<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
* / -> .
* import .spam




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