diff --git a/kiss/python/handout.pdf b/kiss/python/handout.pdf new file mode 100644 index 0000000000000000000000000000000000000000..5e6434797d72b0652a90a60195f4ad7d99d9487e Binary files /dev/null and b/kiss/python/handout.pdf differ diff --git a/kiss/python/handout.tex b/kiss/python/handout.tex new file mode 100644 index 0000000000000000000000000000000000000000..9fbda1a26624e43eb474cd088f890a2bd004ab7d --- /dev/null +++ b/kiss/python/handout.tex @@ -0,0 +1,87 @@ + +\title{Python Workshop} +\author{Martin Bellgardt} +\date{\today} + +\documentclass[12pt]{article} + +\usepackage{listings} +\usepackage[utf8]{inputenc} +\usepackage[cm]{fullpage} + + +\begin{document} + +\maketitle + +\section{Syntax} + +Python-syntax orientiert sich an natürlicher Sprache. Anstatt Klammern wird Einrückung verwendet um Blöcke zu definieren. + +\begin{lstlisting} + +import somePackage # Ein Paket einbinden +from someOtherPackage import someFunction # Nur eine Funktion + # einbinden + +def someFunction(arg1,arg2): # eine Funktion definieren + doStuff() # eine Funktion aufrufen + +answer = 42 # Integer +almostAnswer = 41.99 # Float +text = "This is a string" # String + +list = [1,2,[3,4],"Other stuff",12.5] # Liste + # Eine Liste ist nicht auf einen Typen festgelegt + +dictionary = {"Cheese" : 1, "Bacon" : 12.5} + # Eine sehr nuetzliche Datenstruktur in Python + +for i in list: # i wird ueber alle Listenelemente iteriert + if i == 1 and answer > almostAnswer: # If abfrage + print "Viel Spass auf der KISS" # Ausgabe + print "Zahl" + str(12.5) # str() macht strings + # aus anderen Datentypen + +file = open("someFile","r") # open some file for reading +for line in file: # For every line of the file + print line # print the line +file.close() # close the file + +\end{lstlisting} + +\newpage + +\section{Nützliche Pakete} + +Hier sind nur einige Beispiele für nützliche Pakete. Es gibt Python Pakete für so ziemlich alles. Im zweifelsfall einfach mal Google fragen. + +\begin{itemize} +\item \textbf{\texttt{sys}} - Ermöglicht z.B. zugriff auf Programmargumente mit \texttt{sys.argv} +\item \textbf{\texttt{os}} - Stellt funktionen bereit um mit Dateien und Pfaden zu arbeiten (löschen, verschieben, verlinken, etc.) +\item \textbf{\texttt{PIL (Python Image Library)}} - Viele nützliche Funktionen zum laden, speichern und manipulieren von Bildern. (benutzen mit \texttt{import Image}) +\item \textbf{\texttt{matplotlib.pyplot}} - Generiert Diagramme. Nützlich um Daten graphisch auszuwerten. +\item \textbf{\texttt{numpy, scipy}} - Stellt fortgeschrittene mathematische funktionen und Strukturen bereit wie z.B. Matrizen, Vektoren etc. +\item \textbf{\texttt{pyffmpeg}} - Wrapper für ffmpeg. Nützlich zum arbeiten mit Videos. +\item \textbf{\texttt{pyopencv}} - Wrapper für OpenCV. Implementiert Algorithmen zur +Bilderkennung. +\item \textbf{\texttt{urllib2}} - Kann z.B. Dateien über HTTP herunterladen. Nützlich um z.B. auf web-APIs zuzugreifen. +\item \textbf{\texttt{antigravity}} - Implementiert Levitation, sodass man nicht mehr auf überfüllte ASEAG Busse angewiesen ist. +\end{itemize} + +\section{Python Image Library} + +\begin{lstlisting} + +import Image +im = Image.open("image.png") # Das Bild image.png wird geladen + +r,g,b = im.getpixel((1,2)) # RGB werte fuer den Pixel an der stelle (1,2) +r,g,b,a = im.getpixel((1,2)) # oder RGBA fuer z.B. PNG bilder + +width, height = im.size # breite und hoehe des bildes + +\end{lstlisting} + +\end{document} +%This is never printed \ No newline at end of file