\documentclass[10pt,a4paper]{article} % Packages \usepackage{fancyhdr} % For header and footer \usepackage{multicol} % Allows multicols in tables \usepackage{tabularx} % Intelligent column widths \usepackage{tabulary} % Used in header and footer \usepackage{hhline} % Border under tables \usepackage{graphicx} % For images \usepackage{xcolor} % For hex colours %\usepackage[utf8x]{inputenc} % For unicode character support \usepackage[T1]{fontenc} % Without this we get weird character replacements \usepackage{colortbl} % For coloured tables \usepackage{setspace} % For line height \usepackage{lastpage} % Needed for total page number \usepackage{seqsplit} % Splits long words. %\usepackage{opensans} % Can't make this work so far. Shame. Would be lovely. \usepackage[normalem]{ulem} % For underlining links % Most of the following are not required for the majority % of cheat sheets but are needed for some symbol support. \usepackage{amsmath} % Symbols \usepackage{MnSymbol} % Symbols \usepackage{wasysym} % Symbols %\usepackage[english,german,french,spanish,italian]{babel} % Languages % Document Info \author{Tobias Siebenlist (t7l)} \pdfinfo{ /Title (projektseminare-python.pdf) /Creator (Cheatography) /Author (Tobias Siebenlist (t7l)) /Subject (Projektseminare: Python Cheat Sheet) } % Lengths and widths \addtolength{\textwidth}{6cm} \addtolength{\textheight}{-1cm} \addtolength{\hoffset}{-3cm} \addtolength{\voffset}{-2cm} \setlength{\tabcolsep}{0.2cm} % Space between columns \setlength{\headsep}{-12pt} % Reduce space between header and content \setlength{\headheight}{85pt} % If less, LaTeX automatically increases it \renewcommand{\footrulewidth}{0pt} % Remove footer line \renewcommand{\headrulewidth}{0pt} % Remove header line \renewcommand{\seqinsert}{\ifmmode\allowbreak\else\-\fi} % Hyphens in seqsplit % This two commands together give roughly % the right line height in the tables \renewcommand{\arraystretch}{1.3} \onehalfspacing % Commands \newcommand{\SetRowColor}[1]{\noalign{\gdef\RowColorName{#1}}\rowcolor{\RowColorName}} % Shortcut for row colour \newcommand{\mymulticolumn}[3]{\multicolumn{#1}{>{\columncolor{\RowColorName}}#2}{#3}} % For coloured multi-cols \newcolumntype{x}[1]{>{\raggedright}p{#1}} % New column types for ragged-right paragraph columns \newcommand{\tn}{\tabularnewline} % Required as custom column type in use % Font and Colours \definecolor{HeadBackground}{HTML}{333333} \definecolor{FootBackground}{HTML}{666666} \definecolor{TextColor}{HTML}{333333} \definecolor{DarkBackground}{HTML}{1566A3} \definecolor{LightBackground}{HTML}{F0F5F9} \renewcommand{\familydefault}{\sfdefault} \color{TextColor} % Header and Footer \pagestyle{fancy} \fancyhead{} % Set header to blank \fancyfoot{} % Set footer to blank \fancyhead[L]{ \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{C} \SetRowColor{DarkBackground} \vspace{-7pt} {\parbox{\dimexpr\textwidth-2\fboxsep\relax}{\noindent \hspace*{-6pt}\includegraphics[width=5.8cm]{/web/www.cheatography.com/public/images/cheatography_logo.pdf}} } \end{tabulary} \columnbreak \begin{tabulary}{11cm}{L} \vspace{-2pt}\large{\bf{\textcolor{DarkBackground}{\textrm{Projektseminare: Python Cheat Sheet}}}} \\ \normalsize{by \textcolor{DarkBackground}{Tobias Siebenlist (t7l)} via \textcolor{DarkBackground}{\uline{cheatography.com/22337/cs/4559/}}} \end{tabulary} \end{multicols}} \fancyfoot[L]{ \footnotesize \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{LL} \SetRowColor{FootBackground} \mymulticolumn{2}{p{5.377cm}}{\bf\textcolor{white}{Cheatographer}} \\ \vspace{-2pt}Tobias Siebenlist (t7l) \\ \uline{cheatography.com/t7l} \\ \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Cheat Sheet}} \\ \vspace{-2pt}Published 7th July, 2015.\\ Updated 13th May, 2016.\\ Page {\thepage} of \pageref{LastPage}. \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Sponsor}} \\ \SetRowColor{white} \vspace{-5pt} %\includegraphics[width=48px,height=48px]{dave.jpeg} Measure your website readability!\\ www.readability-score.com \end{tabulary} \end{multicols}} \begin{document} \raggedright \raggedcolumns % Set font size to small. Switch to any value % from this page to resize cheat sheet text: % www.emerson.emory.edu/services/latex/latex_169.html \footnotesize % Small font. \begin{multicols*}{3} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Ausgabe}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{print "Hello World" \newline print "Hello", "John" \newline name = "John" \newline print "Hello", name \newline print "Hello \{\}".format(name) \newline print \# erzeugt leere Zeile und Zeilenumbruch} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Eingabe}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{eingabe = raw\_input("Enter something: ") \newline \# Datentyp ist immer(!) String \newline \# evtl. Casting zu anderem Datentyp \newline try: \newline eingabe = int(eingabe) \newline except ValueError, e: \newline print "Error casting the input." \newline print "Message: \{\}".format(e.message)} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Variablen}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{Kleinschreibung} \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{Trennung mehrerer W{\"o}rter durch Unterstrich} \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{Keine Ziffer am Beginn, nur Buchstabe oder Unterstrich} \tn % Row Count 4 (+ 2) % Row 3 \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{Sprechende Namen verwenden} \tn % Row Count 5 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Kommentare}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{Einzeilige Kommentare werden durch das Hash-Zeichen (Raute) eingeleitet. \newline % Row Count 2 (+ 2) Mehrzeilige Kommentare werden mit drei Anführungszeichen begonnen und müssen auch wieder mit drei Anführungszeichen beendet werden. \newline % Row Count 5 (+ 3) `\# Dies ist ein Kommentar` \newline % Row Count 6 (+ 1) `""" Dies ist ein` \newline % Row Count 7 (+ 1) `langer Kommentar` \newline % Row Count 8 (+ 1) `"""`% Row Count 9 (+ 1) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Fehlerbehandlung}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{try: \newline \# Anweisungen \newline except {\emph{ExceptionType}}, e: \newline \# Anweisungen \newline \# Zugriff auf Fehlermeldung: e.message} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{{\bf{ExceptionType immer explizit angeben}}} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{p{1.24425 cm} x{3.73275 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Operatoren}} \tn % Row 0 \SetRowColor{LightBackground} `x+y` & Addition \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} `x-y` & Subtraktion \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} `x*y` & Multiplikation \tn % Row Count 3 (+ 1) % Row 3 \SetRowColor{white} `x/y` & (Integer-)Division \tn % Row Count 4 (+ 1) % Row 4 \SetRowColor{LightBackground} `x\%y` & Modulo \tn % Row Count 5 (+ 1) % Row 5 \SetRowColor{white} `x**y` & Exponentiation \tn % Row Count 6 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{p{0.77809 cm} x{2.01388 cm} x{1.78503 cm} } \SetRowColor{DarkBackground} \mymulticolumn{3}{x{5.377cm}}{\bf\textcolor{white}{Bedingungen}} \tn % Row 0 \SetRowColor{LightBackground} `\textless{}` & kleiner als & `wert \textless{} 10` \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} `\textgreater{}` & gr{\"o}{\ss}er als & `wert \textgreater{} 5` \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} `==` & gleich & `wert == 23` \tn % Row Count 3 (+ 1) % Row 3 \SetRowColor{white} `\textless{}=` & kleiner gleich & `5 \textless{}= 7` \tn % Row Count 4 (+ 1) % Row 4 \SetRowColor{LightBackground} `\textgreater{}=` & gr{\"o}{\ss}er gleich & `23 \textgreater{}= 22` \tn % Row Count 5 (+ 1) % Row 5 \SetRowColor{white} `!=` & ungleich & `78 != 93` \tn % Row Count 6 (+ 1) % Row 6 \SetRowColor{LightBackground} `in` & (enthalten) in & `b in "Libelle"` \tn % Row Count 8 (+ 2) % Row 7 \SetRowColor{white} `not in` & nicht (enthalten) in & `y not in "Vogel"` \tn % Row Count 10 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}---} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{1.89126 cm} x{3.08574 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Datentypen}} \tn % Row 0 \SetRowColor{LightBackground} Integer & -25, 34 \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} Float & -2.53, 43.1 \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} String & "Hello", 'World' \tn % Row Count 3 (+ 1) % Row 3 \SetRowColor{white} Boolean & True, False \tn % Row Count 4 (+ 1) % Row 4 \SetRowColor{LightBackground} List & {[}value, ...{]} \tn % Row Count 5 (+ 1) % Row 5 \SetRowColor{white} Tupel & (value, ...) \tn % Row Count 6 (+ 1) % Row 6 \SetRowColor{LightBackground} Dictionary & \{key:value, ...\} \tn % Row Count 7 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Wiederholungen / Schleifen}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{{\bf{for-Schleife}} \newline \newline container = {[}1,2,3{]} \newline for element in container: \newline print element \newline \newline {\bf{while-Schleife}} \newline \newline x = 5 \newline while x \textgreater{} 0: \newline print "x hat den Wert \{\}".format(x) \newline x-=1} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{for-Schleife hat enumerate-Erweiterung zum Mitz{\"a}hlen der Indexposition \newline Gefahr von Endlosschleifen beim Einsatz von while} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Bedingte Abfragen}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{if bedingung: \newline \# Anweisungen \newline elif andere\_bedingung: \newline \# Anweisungen \newline else: \newline \# Anweisungen} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{beliebig viele elif-Abschnitte m{\"o}glich \newline else erh{\"a}lt keine Bedingung \newline Abarbeitung von oben nach unten} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Funktionen}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{def funktionsname({\emph{parameter1}}, {\emph{parameter2}}): \newline ergebnis = parameter1 + parameter2 \newline return ergebnis} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{2.33919 cm} x{2.63781 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Laden und Verwenden eines Moduls}} \tn % Row 0 \SetRowColor{LightBackground} {\bf{Importanweisung}} & {\bf{Befehlsaufruf}} \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} `import {\emph{modulname}}` & `{\emph{modulname.methode()}}` \tn % Row Count 4 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{`dir(modulname)` zeigt alle Methoden eines Moduls an \newline `help(methode)` zeigt Hilfe für eine Methode an} \tn \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Slicing bei Sequenzen}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{p{5.377cm}}{\vspace{1px}\centerline{\includegraphics[width=5.1cm]{/web/www.cheatography.com/public/uploads/t7l_1436258395_siniansung_1426502634_string-slicing.png}}} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{2.14011 cm} x{2.83689 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Arbeiten mit Strings}} \tn % Row 0 \SetRowColor{LightBackground} `len(mystr)` & Anzahl der Zeichen von mystr \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} `mystr.lower()` & Umwandlung zu Kleinbuchstaben \tn % Row Count 4 (+ 2) % Row 2 \SetRowColor{LightBackground} `mystr.upper()` & Umwandlung zu Gro{\ss}buchstaben \tn % Row Count 6 (+ 2) % Row 3 \SetRowColor{white} \seqsplit{`mystr.replace(old},new)` & old durch new ersetzen \tn % Row Count 8 (+ 2) % Row 4 \SetRowColor{LightBackground} \seqsplit{`mystr.split(char)`} & teilt an char auf, erzeugt Liste \tn % Row Count 10 (+ 2) % Row 5 \SetRowColor{white} `mystr{[}1:5{]}` & Zeichen 1-5 ausschneiden \tn % Row Count 12 (+ 2) % Row 6 \SetRowColor{LightBackground} `mystr{[}1:5:2{]}` & nur jedes zweite Zeichen \tn % Row Count 14 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Arbeiten mit Dateien}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{with open({\emph{filename}}, {\emph{modus}}) as {\emph{variable\_name}}: \newline \# Anweisungen, z.B. \newline c = {\emph{variable\_name.read()}} \newline cl = {\emph{variable\_name.readlines()}} \newline {\emph{variable\_name.write(some\_string\_content)}}} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{`read()` liest Inhalt komplett in einen String ein \newline `readlines()` liest Inhalt zeilenweise in eine Liste ein \newline `write(some\_string\_content)` schreibt Stringinhalt in Datei} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{1.89126 cm} x{3.08574 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Arbeiten mit Listen}} \tn % Row 0 \SetRowColor{LightBackground} `len(mylist)` & Anzahl der Elemente \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} `mylist{[}i{]}` & i-tes Element der Liste \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} `mylist{[}i:j{]}` & Ausschnitt von i bis j \tn % Row Count 3 (+ 1) % Row 3 \SetRowColor{white} `mylist{[}i:j:2{]}` & nur jedes zweite Element \tn % Row Count 4 (+ 1) % Row 4 \SetRowColor{LightBackground} `x in mylist` & True, wenn x in mylist ist \tn % Row Count 6 (+ 2) % Row 5 \SetRowColor{white} \seqsplit{`mylist.append(x)`} & x an mylist anh{\"a}ngen \tn % Row Count 8 (+ 2) % Row 6 \SetRowColor{LightBackground} `mylist{[}i{]} = x` & Element an Stelle i ersetzen \tn % Row Count 10 (+ 2) % Row 7 \SetRowColor{white} \seqsplit{`"c".join(mylist)`} & erzeugt String, {\emph{c}} verbindet \tn % Row Count 12 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{2.04057 cm} x{2.93643 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Arbeiten mit Dictionaries}} \tn % Row 0 \SetRowColor{LightBackground} `len(mydict)` & Anzahl der Eintr{\"a}ge \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} `del mydict{[}key{]}` & l{\"o}scht Schlüssel key \tn % Row Count 3 (+ 2) % Row 2 \SetRowColor{LightBackground} `mydict.keys()` & Liste aller Schlüssel \tn % Row Count 4 (+ 1) % Row 3 \SetRowColor{white} \seqsplit{`mydict.values()`} & Liste aller Werte \tn % Row Count 6 (+ 2) % Row 4 \SetRowColor{LightBackground} \seqsplit{`mydict.items()`} & Liste von Tupeln \tn % Row Count 7 (+ 1) % Row 5 \SetRowColor{white} `key in mydict` & True, wenn key vorhanden \tn % Row Count 9 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} % That's all folks \end{multicols*} \end{document}