Python Bootcamp
Grundlagen
by Datamics, 2018
Zahlen
by Datamics, 2018
Einführung
• Python beinhaltet verschiedene "Arten" (en.: types) von Zahlen. Wir
werden uns hauptsächlich mit Ganzzahlen (en.: integers) und
Kommazahlen (en.: floats) beschäftigen. Später unternehmen wir
einen kurzen Abstecher zu den komplexen Zahlen (en.: complex
numbers).
Zahlen by Datamics, 2018
Integers
• Integers sind einfach ganze Zahlen, positiv und negativ.
• Zum Beispiel: 2 und -2 sind Integers.
Zahlen by Datamics, 2018
Floats
• Floats sind Kommazahlen und in Python besonders, da sie einen
Dezimalpunkt oder einen Exponenten (e) beinhalten, um die Zahl zu
definieren.
• Zum Beispiel sind 2.0 und -2.1 Zahlen mit Dezimalpunkt. 4E2 (4 mal
10 hoch 2) ist ebenso ein Beispiel für eine float-Zahl in Python.
Zahlen by Datamics, 2018
Einführung zu Python
Anweisungen
by Datamics, 2018
Übersicht
• In dieser Lektion werden wir uns einen kurzen Überblick über Python
Anweisungen (en.: Statements) verschaffen. Diese Lektion wird die
Unterschiede zwischen Python und anderen Sprachen wie C++
herausstellen.
• Es gibt zwei Gründe dafür, warum wir diesen Kontext nutzen, um
Python Anweisungen zu lernen:
Einführung zu Python Anweisungen by Datamics, 2018
Gründe
1. Wenn ihr aus einem anderen Programmierumfeld kommt, wird dies
super schnell euer Verständnis von Python verbessern.
2. Anweisungen lesen und verstehen zu können wird es euch in der
Zukunft erleichtern andere Sprachen schneller lesen und verstehen
zu können.
Einführung zu Python Anweisungen by Datamics, 2018
Python vs. andere Sprachen
• Lasst uns ein simples Statement erstellen, das besagt: "Wenn a größer
ist als b, dann weise a die Zahl 2 zu und b die Zahl 4."
Einführung zu Python Anweisungen by Datamics, 2018
Unterschiede
Einführung zu Python Anweisungen
• Python verzichtet auf () und {} durch zwei Hauptfaktoren: einen
Doppelpunkt und Leerraum. Die Anweisung wird durch den
Doppelpunkt beendet und der Leerraum (durch Zeileneinzug)
beschreibt, was passiert, sofern das Statement zutrifft.
by Datamics, 2018
Unterschiede
Einführung zu Python Anweisungen
• Ein weiterer großer Unterschied ist das Fehlen von Strichpunkten in
Python. In anderen Sprachen werden Strichpunkt häufig dazu
verwendet, um das Ende einer Anweisung festzulegen.
• In Python ist das Ende einer Zeile das gleiche wie das Ende einer
Anweisung
by Datamics, 2018
Zeileneinzug
• Achtet darauf, wie stark Python durch den Code Zeileneinzug und den
Leerraum getrieben wird. Das bedeutet, dass die Lesbarkeit des
Codes eine der wichtigen Aspekte der Python Sprache ist.
Einführung zu Python Anweisungen by Datamics, 2018
if, elif und else Anweisungen
by Datamics, 2018
if Anweisungen
• if Anweisungen erlauben uns in Python alternative Aktionen in
Abhängigkeit von bestimmten Ergebnissen durchzuführen.
• Das können wir uns ungefähr so vereinfachen:
• "Hey, wenn dieser Fall eintritt, dann mache etwas bestimmtes."
if, elif und else Anweisungen by Datamics, 2018
elif und else Anweisungen
• Diese Idee können wir dann durch elif and else Anweisungen
erweitern, welche uns folgendes ermöglichen:
• "Hey, wenn dieser Fall eintritt (if), dann mache etwas bestimmtes.
Wenn ein anderer Fall eintritt (elif), dann mache etwas anderes
bestimmtes. Und sonst (else) - keiner der anderen Fälle trat ein -
mache etwas anderes bestimmtes."
if, elif und else Anweisungen by Datamics, 2018
Syntax
if, elif und else Anweisungen by Datamics, 2018
for Schleifen
by Datamics, 2018
Einführung
• Eine for Schleife (en.: for loop) fungiert als Iteration in Python, die
durch Items geht, die in einer Sequenz oder jeder anderen
iterierbaren Form stehen.
• Objekte die wir bereits behandelt haben und auf die wir diese
Iteration anwenden können sind Strings, Listen, Tupel und bereits
vorinstallierte Iterationen für Dictionaries, wie bspw. keys und values.
for Schleifen by Datamics, 2018
Syntax
for Schleifen by Datamics, 2018
Namenszuweisung
• Der Name, der für das Item verwendet wird, obliegt vollkommen dem
Coder. Das ermöglicht uns den nach eigenem Ermessen am besten
passenden Namen auszuwählen.
• Der festgelete Item Name kann dann innerhalb der Schleifen als
Referenz verwendet werden. Zum Beispiel, wenn wir ein if Statement
für das Item durchführen wollen
for Schleifen by Datamics, 2018
Methoden
by Datamics, 2018
Einführung
• Methoden sind eigentlich Funktionen, die in Objekte eingebaut sind.
• Später im Kurs werden wir noch lernen, wie wir unsere eigenen
Objekte und Methoden erstellen, indem wir Objektorientierte
Programmierung (OOP) und Klassen nutzen.
Methoden by Datamics, 2018
Einführung
• Methoden führen spezifische Aktionen mit dem Objekt durch und
können Parameter aufnehmen, so wie es Funktionen tun.
• Diese Lektion soll als kurze Einführung zu Methoden dienen und euch
zum Denken über das Design von Methoden anregen. Darauf
kommen wir zurück, wenn wir die OOP erreichen.
Methoden by Datamics, 2018
Syntax
• Methoden werden wie folgt geschrieben:
Methoden by Datamics, 2018
Parameter
• Ihr werdet später sehen, das wir uns Methoden so vorstellen können,
dass sie einen "selbst" (en.: self) Parameter haben, der sich aufs
Objekt bezieht.
• Wir können diesen Parameter jetzt nicht sehen, werden in aber
später im Kurs nutzen, wenn wir uns mit OOP beschäftigen.
Methoden by Datamics, 2018
Funktionen
by Datamics, 2018
Was sind Funktionen?
• Formell betrachtet ist eine Funktion ein nützliches Hilfsmittel, dass
mehrere Anweisungen gruppiert, damit sie mehr als einmal
ausgeführt werden können.
• Sie lassen uns außerdem Parameter spezifizieren, die uns als Input für
die Funktion dienen können.
Funktionen by Datamics, 2018
• Auf einem etwas fundamentaleren Level erlauben uns Funktionen,
den selben Code nicht immer wieder schreiben zu müssen.
• Wenn ihr zurückdenkt an die Lektionen über Strings und Listen, denkt
daran, dass wir die Funktion len() genutzt haben, um die Länge zu
messen.
• Da die Länge einer Sequenz zu überprüfen eine übliche Aufgabe ist,
würde man dafür eine Funktion schreiben wollen, die diese Aufgabe
wiederholte Male erfüllt.
Funktionen by Datamics, 2018
def Anweisungen
• def ist ein vorinstalliertes (build-in) Stichwort, das Python sagt, dass
wir dabei sind, eine Funktion zu erstellen.
• Lasst uns den Code anschauen, um die ganze Syntax zu verstehen.
Funktionen by Datamics, 2018
Lambda Ausdrücke
by Datamics, 2018
Übersicht
• Lambda Ausdrücke sind eines der nützlichsten Tools, die Python
bietet. Allerdings sind sie für Anfänger oft verwirrend. Lambda
Ausdrücke erlauben es uns, “anonyme“ Funktionen zu erstellen.
• Das bedeutet vereinfacht gesagt, dass wir schnell eine Funktion
erstellen können, ohne die Funktion per def zu definieren.
Lambda Ausdrücke by Datamics, 2018
Was ist Lambda?
• Lambda ist ein einziger Ausdruck, kein Block von Anweisungen
• In Lambda Ausdrücken steht eigentlich das gleiche, was wir in def als
Ausgabe (return Anweisung) einer Funktion definieren würden. Wir
geben das allerdings einfach als Ausdruck ein, anstatt es explizit
auszugeben.
• Da es auf einen Ausdruck limitiert ist, ist Lambda weniger allgemein
als ein def.
Lambda Ausdrücke by Datamics, 2018
Wann verwenden wir Lambda?
• Wir können unseren Code schmälern, um Verschachtelung zu
vermeiden.
• Lambda ist für das coden von einfachen Aufgaben gedacht.
• Für größere Aufgaben verwenden wir def.
Lambda Ausdrücke by Datamics, 2018
Herangehensweise
• Die beste Methode, um Lambda Ausdrücke zu lernen, ist es eine def
Funktion langsam in einen Lambda Ausdruck umzuwandeln.
Lambda Ausdrücke by Datamics, 2018
Verschachtelte Anweisungen
und Geltungsbereiche
by Datamics, 2018
Bevor wir loslegen...
• Lest und codet euch durch das gesamte Jupyter Notebook zu dieser
Lektion.
• Das ist ein sehr wichtiges Thema, um fortgeschrittene Python
Programmierung zu verstehen!
Verschachtelte Anweisungen und Geltungsbereiche by Datamics, 2018
Einführung
• Jetzt, wo wir unsere eigenen Funktionen schreiben können, ist es
wichtig zu verstehen, wie Python mit den Variablennamen umgeht,
die wir zuweisen.
• Wenn wir einen Variablennamen in Python erstellen wird dieser im
namespace gespeichert.
• Variablennamen haben außerdem einen bestimmten
Geltungsbereich. Dieser bestimmt die Sichtbarkeit des Namens für
andere Teile unseres Codes.
Verschachtelte Anweisungen und Geltungsbereiche by Datamics, 2018
Schnelles Beispiel
• Was glaubt ihr, wird der Output von drucker() sein? 25 oder 50?
• Was ist der Output von print(x)? 25 oder 50?
Verschachtelte Anweisungen und Geltungsbereiche by Datamics, 2018
Schnelles Beispiel
• Was glaubt ihr, wird der Output von drucker() sein? 25 oder 50?
• Was ist der Output von print(x)? 25 oder 50?
Verschachtelte Anweisungen und Geltungsbereiche by Datamics, 2018
Warum?
• Zuweisungen von Namen werden lokale Namen per Standard
erstellen oder ändern.
• Namesreferenzen suchen (bis zu) 4 Bereiche, die da lauten:
• Lokal
• einschließende Funktionen
• Global
• Bereits eingebaut
Verschachtelte Anweisungen und Geltungsbereiche by Datamics, 2018
LEGB Regel
• L: Lokal - Namen die in irgendeiner Form innerhalb einer Funktion
(def oder lambda) zugewiesen werden und nicht global in dieser
Funktion definiert sind.
• E: Einschließende Funktionen - Namen im lokalen Geltungsbereich
aller einschließenden Funktionen (def oder lambda) von innen nach
außen.
• G: Globale (Module) - Namen die auf der höchsten Ebene einer Datei
zugewiesen werden oder innerhalb einer Funktion als global
ausgewiesen werden.
• B: Bereits (in Python) eingebaute - Namen die bereits in die
vorinstallierten Module wie range, open, usw. eingebaut sind.
Verschachtelte Anweisungen und Geltungsbereiche by Datamics, 2018
Lokal
Verschachtelte Anweisungen und Geltungsbereiche by Datamics, 2018
Einschließende Funktionen
Verschachtelte Anweisungen und Geltungsbereiche by Datamics, 2018
Global
Verschachtelte Anweisungen und Geltungsbereiche by Datamics, 2018
Bereits eingebaute
Verschachtelte Anweisungen und Geltungsbereiche by Datamics, 2018
Lokale Variablen
• Wenn ihr Variablen innerhalb einer Funktionsdefinition deklariert,
dann sind sie in keiner Weise mit anderen Variablen außerhalb der
Funktion verknüpft, die den selben Namen haben. D.h. die Namen
von Variablen sind lokal in Bezug auf Funktionen.
• Das bezeichnet somit den Geltungsbereich der Variablen. Alle
Variablen haben den Geltungsbereich des Blocks in dem sie deklariert
werden ausgehend von dem Punkt, an dem sie definiert werden.
Verschachtelte Anweisungen und Geltungsbereiche by Datamics, 2018
Lokale Variablen
Verschachtelte Anweisungen und Geltungsbereiche by Datamics, 2018
Globale Anweisungen
• Wenn man einen Wert einem Namen des Hauptblocks eines
Programms zuordnen möchte, dann muss man Python sagen, dass die
Zuweisung nicht lokal, sondern global ist.
• Dies tun wir durch die Verwendung der global Anweisung.
Verschachtelte Anweisungen und Geltungsbereiche by Datamics, 2018
Globale Anweisungen
Verschachtelte Anweisungen und Geltungsbereiche by Datamics, 2018
Schlussfolgerungen
• Ein letzte Anmerkung hierzu ist, dass ihr globals() und locals() nutzen
könnt, um zu überprüfen, welche eurer Variablen aktuell als global
oder lokal gespeichert sind.
• Ein anderer Punkt, den man im Gedächtnis behalten sollte, ist, dass in
Python alles Objekte sind. Ich kann Funktionen Variablen zuweisen, so
wie ich Zahlen zuweisen kann.
• Wir werden dies noch einmal brauchen, wenn wir in der Sektion der
Dekoratoren sind.
Verschachtelte Anweisungen und Geltungsbereiche by Datamics, 2018
Reduce()
by Datamics, 2018
Einführung
• Die Funktion reduce(funktion,sequenz) wendet die Funktion
fortlaufend auf eine Sequenz an. Es gibt dann einen einzigen Wert
zurück.
Reduce by Datamics, 2018
Wie sieht das aus?
• Wenn die Sequenz folgendermaßen aussieht seq[s1,s2,s3,...,sn], dann führt
die Funktion reduce(funktion,sequenz) folgendes aus:
• Zuerst wird die Funktion die ersten beiden Elemente der Sequenz
verarbeiten, d.h. funktion(s1,s2).
• Die Liste auf die die reduce() Funktion angewendet wird, sieht nun
folgendermaßen aus: [funktion(s1,s2),s3,...,sn]
• Im nächsten Schritt wird die Funktion auf das erste Ergebnis (s1,s2) und das
dritte Element der Sequenz angewendet, d.h. funktion((funktion(s1,s2),s3).
• Die Liste sieht jetzt so aus: [funktion(funktion(s1,s2),s3),s4,...,sn].
• So geht es immer weiter, bis kein Element mehr außer dem Ergebnis der
Funktion in der Liste enthalten ist.
Reduce by Datamics, 2018
Wie sieht das aus?
Reduce
47 11
58
42 13
100
113
by Datamics, 2018
Filter()
by Datamics, 2018
Einführung
• Die Funktion filter(funktion, sequenz) bietet die Möglichkeit, alle
Werte aus einer Liste zu filtern, für die die Funktion True ergibt.
Filter by Datamics, 2018
Einführung
• Die Funktion filter(funktion,sequenz) braucht eine Funktion als ihren
ersten Parameter.
• Die Funktion muss einen Boolean Wert, also True or False,
zurückgeben.
• Die Funktion wird auf jedes iterierbares Element der Liste
angewendet. Nur wenn die Funktion True ergibt, wird das Element in
das Ergebnis aufgenommen.
Filter by Datamics, 2018
Iteration vs. Generation
by Datamics, 2018
Einführung
• In dieser Sektion des Kurses werden wir mehr darüber lernen, was die
Unterschiede zwischen Iteration und Generation in Python sind.
• Außerdem mehr darüber, wie wir mit dem yield Statement unsere
eigenen Generatoren erstellen können.
• Wir haben das bereits thematisiert, als wir uns die range() Funktion in
Python 2 und die entsprechende xrange() Funktion angeschaut
haben, von denen letztere ein Generator ist.
Iteration vs. Gerneration by Datamics, 2018
Generatoren erstellen
• Wir wissen bereits, wie wir mit def und return Funktionen erstellen
können.
• Generator Funktionen erlauben es uns eine Funktion zu schreiben,
die einen Wert ausgibt und später dort weiter macht, wo sie
aufgehört hat.
• Diese Art von Funktion ist in Python ein Generator, der es uns erlaubt
über Zeit hinweg eine Sequenz von Werten zu generieren.
• Der Hauptunterschied im Sinne der Syntax wird die yield Anweisung
sein.
Iteration vs. Gerneration by Datamics, 2018
Wie Generatoren funktionieren
• In den meisten Aspekten wirken Generatoren wie normale
Funktionen.
• Sie unterscheiden sich hauptsächlich darin, dass eine Generator
Funktion, sobald sie kompiliert wird, zu einem Objekt wird, das
Iteration unterstützt.
Iteration vs. Gerneration by Datamics, 2018
Wie Generatoren funktionieren
• Das bedeutet, dass sie beim Ausführen nicht nur einen Wert
zurückgeben und dann aussteigen, sondern die Generator Funktion
wird automatisch aussetzen, aber an dieser Stelle bleiben.
• Der größte Vorteil davon liegt darin, dass nicht immer alle Werte von
Anfang an berechnet werden müssen, sondern die Generator
Funktion ausgesetzt wird. Dieses Feature nennt man state suspension.
Iteration vs. Gerneration by Datamics, 2018
Warum werden Generatoren verwendet?
• Generatoren sind am besten dafür geeignet, große Sets von
Ergebnissen zu berechnen. Und das in Fällen, in denen wir keinen
Speicher für alle Ergebnisse auf einmal aufbringen wollen.
• Wie wir bereits in vorherigen Lektionen angemerkt haben geben viele
Standard Funktionen, die in Python 2 noch Listen erzeugt haben, jetzt
in Python 3 Generatoren aus.
Iteration vs. Gerneration by Datamics, 2018
Verwende den Gutschein „SLIDESHARE2018“ auf Udemy oder die
Shortlinks und erhalte unsere Kurse für nur 10,99€ (95% Rabatt).
Python für Data Science und Machine Learning: https://goo.gl/cE7TQ3
Original Python Bootcamp - Von 0 auf 100: https://goo.gl/gjn7pX
R für Data Science und Machine Learning: https://goo.gl/8h5tH7
Exklusive Gutscheine
Udemy-Kurse by Datamics, 2018https://www.udemy.com/user/rene-brunner/

Python Bootcamp - Grundlagen

  • 1.
  • 2.
  • 3.
    Einführung • Python beinhaltetverschiedene "Arten" (en.: types) von Zahlen. Wir werden uns hauptsächlich mit Ganzzahlen (en.: integers) und Kommazahlen (en.: floats) beschäftigen. Später unternehmen wir einen kurzen Abstecher zu den komplexen Zahlen (en.: complex numbers). Zahlen by Datamics, 2018
  • 4.
    Integers • Integers sindeinfach ganze Zahlen, positiv und negativ. • Zum Beispiel: 2 und -2 sind Integers. Zahlen by Datamics, 2018
  • 5.
    Floats • Floats sindKommazahlen und in Python besonders, da sie einen Dezimalpunkt oder einen Exponenten (e) beinhalten, um die Zahl zu definieren. • Zum Beispiel sind 2.0 und -2.1 Zahlen mit Dezimalpunkt. 4E2 (4 mal 10 hoch 2) ist ebenso ein Beispiel für eine float-Zahl in Python. Zahlen by Datamics, 2018
  • 6.
  • 7.
    Übersicht • In dieserLektion werden wir uns einen kurzen Überblick über Python Anweisungen (en.: Statements) verschaffen. Diese Lektion wird die Unterschiede zwischen Python und anderen Sprachen wie C++ herausstellen. • Es gibt zwei Gründe dafür, warum wir diesen Kontext nutzen, um Python Anweisungen zu lernen: Einführung zu Python Anweisungen by Datamics, 2018
  • 8.
    Gründe 1. Wenn ihraus einem anderen Programmierumfeld kommt, wird dies super schnell euer Verständnis von Python verbessern. 2. Anweisungen lesen und verstehen zu können wird es euch in der Zukunft erleichtern andere Sprachen schneller lesen und verstehen zu können. Einführung zu Python Anweisungen by Datamics, 2018
  • 9.
    Python vs. andereSprachen • Lasst uns ein simples Statement erstellen, das besagt: "Wenn a größer ist als b, dann weise a die Zahl 2 zu und b die Zahl 4." Einführung zu Python Anweisungen by Datamics, 2018
  • 10.
    Unterschiede Einführung zu PythonAnweisungen • Python verzichtet auf () und {} durch zwei Hauptfaktoren: einen Doppelpunkt und Leerraum. Die Anweisung wird durch den Doppelpunkt beendet und der Leerraum (durch Zeileneinzug) beschreibt, was passiert, sofern das Statement zutrifft. by Datamics, 2018
  • 11.
    Unterschiede Einführung zu PythonAnweisungen • Ein weiterer großer Unterschied ist das Fehlen von Strichpunkten in Python. In anderen Sprachen werden Strichpunkt häufig dazu verwendet, um das Ende einer Anweisung festzulegen. • In Python ist das Ende einer Zeile das gleiche wie das Ende einer Anweisung by Datamics, 2018
  • 12.
    Zeileneinzug • Achtet darauf,wie stark Python durch den Code Zeileneinzug und den Leerraum getrieben wird. Das bedeutet, dass die Lesbarkeit des Codes eine der wichtigen Aspekte der Python Sprache ist. Einführung zu Python Anweisungen by Datamics, 2018
  • 13.
    if, elif undelse Anweisungen by Datamics, 2018
  • 14.
    if Anweisungen • ifAnweisungen erlauben uns in Python alternative Aktionen in Abhängigkeit von bestimmten Ergebnissen durchzuführen. • Das können wir uns ungefähr so vereinfachen: • "Hey, wenn dieser Fall eintritt, dann mache etwas bestimmtes." if, elif und else Anweisungen by Datamics, 2018
  • 15.
    elif und elseAnweisungen • Diese Idee können wir dann durch elif and else Anweisungen erweitern, welche uns folgendes ermöglichen: • "Hey, wenn dieser Fall eintritt (if), dann mache etwas bestimmtes. Wenn ein anderer Fall eintritt (elif), dann mache etwas anderes bestimmtes. Und sonst (else) - keiner der anderen Fälle trat ein - mache etwas anderes bestimmtes." if, elif und else Anweisungen by Datamics, 2018
  • 16.
    Syntax if, elif undelse Anweisungen by Datamics, 2018
  • 17.
  • 18.
    Einführung • Eine forSchleife (en.: for loop) fungiert als Iteration in Python, die durch Items geht, die in einer Sequenz oder jeder anderen iterierbaren Form stehen. • Objekte die wir bereits behandelt haben und auf die wir diese Iteration anwenden können sind Strings, Listen, Tupel und bereits vorinstallierte Iterationen für Dictionaries, wie bspw. keys und values. for Schleifen by Datamics, 2018
  • 19.
  • 20.
    Namenszuweisung • Der Name,der für das Item verwendet wird, obliegt vollkommen dem Coder. Das ermöglicht uns den nach eigenem Ermessen am besten passenden Namen auszuwählen. • Der festgelete Item Name kann dann innerhalb der Schleifen als Referenz verwendet werden. Zum Beispiel, wenn wir ein if Statement für das Item durchführen wollen for Schleifen by Datamics, 2018
  • 21.
  • 22.
    Einführung • Methoden sindeigentlich Funktionen, die in Objekte eingebaut sind. • Später im Kurs werden wir noch lernen, wie wir unsere eigenen Objekte und Methoden erstellen, indem wir Objektorientierte Programmierung (OOP) und Klassen nutzen. Methoden by Datamics, 2018
  • 23.
    Einführung • Methoden führenspezifische Aktionen mit dem Objekt durch und können Parameter aufnehmen, so wie es Funktionen tun. • Diese Lektion soll als kurze Einführung zu Methoden dienen und euch zum Denken über das Design von Methoden anregen. Darauf kommen wir zurück, wenn wir die OOP erreichen. Methoden by Datamics, 2018
  • 24.
    Syntax • Methoden werdenwie folgt geschrieben: Methoden by Datamics, 2018
  • 25.
    Parameter • Ihr werdetspäter sehen, das wir uns Methoden so vorstellen können, dass sie einen "selbst" (en.: self) Parameter haben, der sich aufs Objekt bezieht. • Wir können diesen Parameter jetzt nicht sehen, werden in aber später im Kurs nutzen, wenn wir uns mit OOP beschäftigen. Methoden by Datamics, 2018
  • 26.
  • 27.
    Was sind Funktionen? •Formell betrachtet ist eine Funktion ein nützliches Hilfsmittel, dass mehrere Anweisungen gruppiert, damit sie mehr als einmal ausgeführt werden können. • Sie lassen uns außerdem Parameter spezifizieren, die uns als Input für die Funktion dienen können. Funktionen by Datamics, 2018
  • 28.
    • Auf einemetwas fundamentaleren Level erlauben uns Funktionen, den selben Code nicht immer wieder schreiben zu müssen. • Wenn ihr zurückdenkt an die Lektionen über Strings und Listen, denkt daran, dass wir die Funktion len() genutzt haben, um die Länge zu messen. • Da die Länge einer Sequenz zu überprüfen eine übliche Aufgabe ist, würde man dafür eine Funktion schreiben wollen, die diese Aufgabe wiederholte Male erfüllt. Funktionen by Datamics, 2018
  • 29.
    def Anweisungen • defist ein vorinstalliertes (build-in) Stichwort, das Python sagt, dass wir dabei sind, eine Funktion zu erstellen. • Lasst uns den Code anschauen, um die ganze Syntax zu verstehen. Funktionen by Datamics, 2018
  • 30.
  • 31.
    Übersicht • Lambda Ausdrückesind eines der nützlichsten Tools, die Python bietet. Allerdings sind sie für Anfänger oft verwirrend. Lambda Ausdrücke erlauben es uns, “anonyme“ Funktionen zu erstellen. • Das bedeutet vereinfacht gesagt, dass wir schnell eine Funktion erstellen können, ohne die Funktion per def zu definieren. Lambda Ausdrücke by Datamics, 2018
  • 32.
    Was ist Lambda? •Lambda ist ein einziger Ausdruck, kein Block von Anweisungen • In Lambda Ausdrücken steht eigentlich das gleiche, was wir in def als Ausgabe (return Anweisung) einer Funktion definieren würden. Wir geben das allerdings einfach als Ausdruck ein, anstatt es explizit auszugeben. • Da es auf einen Ausdruck limitiert ist, ist Lambda weniger allgemein als ein def. Lambda Ausdrücke by Datamics, 2018
  • 33.
    Wann verwenden wirLambda? • Wir können unseren Code schmälern, um Verschachtelung zu vermeiden. • Lambda ist für das coden von einfachen Aufgaben gedacht. • Für größere Aufgaben verwenden wir def. Lambda Ausdrücke by Datamics, 2018
  • 34.
    Herangehensweise • Die besteMethode, um Lambda Ausdrücke zu lernen, ist es eine def Funktion langsam in einen Lambda Ausdruck umzuwandeln. Lambda Ausdrücke by Datamics, 2018
  • 35.
  • 36.
    Bevor wir loslegen... •Lest und codet euch durch das gesamte Jupyter Notebook zu dieser Lektion. • Das ist ein sehr wichtiges Thema, um fortgeschrittene Python Programmierung zu verstehen! Verschachtelte Anweisungen und Geltungsbereiche by Datamics, 2018
  • 37.
    Einführung • Jetzt, wowir unsere eigenen Funktionen schreiben können, ist es wichtig zu verstehen, wie Python mit den Variablennamen umgeht, die wir zuweisen. • Wenn wir einen Variablennamen in Python erstellen wird dieser im namespace gespeichert. • Variablennamen haben außerdem einen bestimmten Geltungsbereich. Dieser bestimmt die Sichtbarkeit des Namens für andere Teile unseres Codes. Verschachtelte Anweisungen und Geltungsbereiche by Datamics, 2018
  • 38.
    Schnelles Beispiel • Wasglaubt ihr, wird der Output von drucker() sein? 25 oder 50? • Was ist der Output von print(x)? 25 oder 50? Verschachtelte Anweisungen und Geltungsbereiche by Datamics, 2018
  • 39.
    Schnelles Beispiel • Wasglaubt ihr, wird der Output von drucker() sein? 25 oder 50? • Was ist der Output von print(x)? 25 oder 50? Verschachtelte Anweisungen und Geltungsbereiche by Datamics, 2018
  • 40.
    Warum? • Zuweisungen vonNamen werden lokale Namen per Standard erstellen oder ändern. • Namesreferenzen suchen (bis zu) 4 Bereiche, die da lauten: • Lokal • einschließende Funktionen • Global • Bereits eingebaut Verschachtelte Anweisungen und Geltungsbereiche by Datamics, 2018
  • 41.
    LEGB Regel • L:Lokal - Namen die in irgendeiner Form innerhalb einer Funktion (def oder lambda) zugewiesen werden und nicht global in dieser Funktion definiert sind. • E: Einschließende Funktionen - Namen im lokalen Geltungsbereich aller einschließenden Funktionen (def oder lambda) von innen nach außen. • G: Globale (Module) - Namen die auf der höchsten Ebene einer Datei zugewiesen werden oder innerhalb einer Funktion als global ausgewiesen werden. • B: Bereits (in Python) eingebaute - Namen die bereits in die vorinstallierten Module wie range, open, usw. eingebaut sind. Verschachtelte Anweisungen und Geltungsbereiche by Datamics, 2018
  • 42.
    Lokal Verschachtelte Anweisungen undGeltungsbereiche by Datamics, 2018
  • 43.
    Einschließende Funktionen Verschachtelte Anweisungenund Geltungsbereiche by Datamics, 2018
  • 44.
    Global Verschachtelte Anweisungen undGeltungsbereiche by Datamics, 2018
  • 45.
    Bereits eingebaute Verschachtelte Anweisungenund Geltungsbereiche by Datamics, 2018
  • 46.
    Lokale Variablen • Wennihr Variablen innerhalb einer Funktionsdefinition deklariert, dann sind sie in keiner Weise mit anderen Variablen außerhalb der Funktion verknüpft, die den selben Namen haben. D.h. die Namen von Variablen sind lokal in Bezug auf Funktionen. • Das bezeichnet somit den Geltungsbereich der Variablen. Alle Variablen haben den Geltungsbereich des Blocks in dem sie deklariert werden ausgehend von dem Punkt, an dem sie definiert werden. Verschachtelte Anweisungen und Geltungsbereiche by Datamics, 2018
  • 47.
    Lokale Variablen Verschachtelte Anweisungenund Geltungsbereiche by Datamics, 2018
  • 48.
    Globale Anweisungen • Wennman einen Wert einem Namen des Hauptblocks eines Programms zuordnen möchte, dann muss man Python sagen, dass die Zuweisung nicht lokal, sondern global ist. • Dies tun wir durch die Verwendung der global Anweisung. Verschachtelte Anweisungen und Geltungsbereiche by Datamics, 2018
  • 49.
    Globale Anweisungen Verschachtelte Anweisungenund Geltungsbereiche by Datamics, 2018
  • 50.
    Schlussfolgerungen • Ein letzteAnmerkung hierzu ist, dass ihr globals() und locals() nutzen könnt, um zu überprüfen, welche eurer Variablen aktuell als global oder lokal gespeichert sind. • Ein anderer Punkt, den man im Gedächtnis behalten sollte, ist, dass in Python alles Objekte sind. Ich kann Funktionen Variablen zuweisen, so wie ich Zahlen zuweisen kann. • Wir werden dies noch einmal brauchen, wenn wir in der Sektion der Dekoratoren sind. Verschachtelte Anweisungen und Geltungsbereiche by Datamics, 2018
  • 51.
  • 52.
    Einführung • Die Funktionreduce(funktion,sequenz) wendet die Funktion fortlaufend auf eine Sequenz an. Es gibt dann einen einzigen Wert zurück. Reduce by Datamics, 2018
  • 53.
    Wie sieht dasaus? • Wenn die Sequenz folgendermaßen aussieht seq[s1,s2,s3,...,sn], dann führt die Funktion reduce(funktion,sequenz) folgendes aus: • Zuerst wird die Funktion die ersten beiden Elemente der Sequenz verarbeiten, d.h. funktion(s1,s2). • Die Liste auf die die reduce() Funktion angewendet wird, sieht nun folgendermaßen aus: [funktion(s1,s2),s3,...,sn] • Im nächsten Schritt wird die Funktion auf das erste Ergebnis (s1,s2) und das dritte Element der Sequenz angewendet, d.h. funktion((funktion(s1,s2),s3). • Die Liste sieht jetzt so aus: [funktion(funktion(s1,s2),s3),s4,...,sn]. • So geht es immer weiter, bis kein Element mehr außer dem Ergebnis der Funktion in der Liste enthalten ist. Reduce by Datamics, 2018
  • 54.
    Wie sieht dasaus? Reduce 47 11 58 42 13 100 113 by Datamics, 2018
  • 55.
  • 56.
    Einführung • Die Funktionfilter(funktion, sequenz) bietet die Möglichkeit, alle Werte aus einer Liste zu filtern, für die die Funktion True ergibt. Filter by Datamics, 2018
  • 57.
    Einführung • Die Funktionfilter(funktion,sequenz) braucht eine Funktion als ihren ersten Parameter. • Die Funktion muss einen Boolean Wert, also True or False, zurückgeben. • Die Funktion wird auf jedes iterierbares Element der Liste angewendet. Nur wenn die Funktion True ergibt, wird das Element in das Ergebnis aufgenommen. Filter by Datamics, 2018
  • 58.
  • 59.
    Einführung • In dieserSektion des Kurses werden wir mehr darüber lernen, was die Unterschiede zwischen Iteration und Generation in Python sind. • Außerdem mehr darüber, wie wir mit dem yield Statement unsere eigenen Generatoren erstellen können. • Wir haben das bereits thematisiert, als wir uns die range() Funktion in Python 2 und die entsprechende xrange() Funktion angeschaut haben, von denen letztere ein Generator ist. Iteration vs. Gerneration by Datamics, 2018
  • 60.
    Generatoren erstellen • Wirwissen bereits, wie wir mit def und return Funktionen erstellen können. • Generator Funktionen erlauben es uns eine Funktion zu schreiben, die einen Wert ausgibt und später dort weiter macht, wo sie aufgehört hat. • Diese Art von Funktion ist in Python ein Generator, der es uns erlaubt über Zeit hinweg eine Sequenz von Werten zu generieren. • Der Hauptunterschied im Sinne der Syntax wird die yield Anweisung sein. Iteration vs. Gerneration by Datamics, 2018
  • 61.
    Wie Generatoren funktionieren •In den meisten Aspekten wirken Generatoren wie normale Funktionen. • Sie unterscheiden sich hauptsächlich darin, dass eine Generator Funktion, sobald sie kompiliert wird, zu einem Objekt wird, das Iteration unterstützt. Iteration vs. Gerneration by Datamics, 2018
  • 62.
    Wie Generatoren funktionieren •Das bedeutet, dass sie beim Ausführen nicht nur einen Wert zurückgeben und dann aussteigen, sondern die Generator Funktion wird automatisch aussetzen, aber an dieser Stelle bleiben. • Der größte Vorteil davon liegt darin, dass nicht immer alle Werte von Anfang an berechnet werden müssen, sondern die Generator Funktion ausgesetzt wird. Dieses Feature nennt man state suspension. Iteration vs. Gerneration by Datamics, 2018
  • 63.
    Warum werden Generatorenverwendet? • Generatoren sind am besten dafür geeignet, große Sets von Ergebnissen zu berechnen. Und das in Fällen, in denen wir keinen Speicher für alle Ergebnisse auf einmal aufbringen wollen. • Wie wir bereits in vorherigen Lektionen angemerkt haben geben viele Standard Funktionen, die in Python 2 noch Listen erzeugt haben, jetzt in Python 3 Generatoren aus. Iteration vs. Gerneration by Datamics, 2018
  • 64.
    Verwende den Gutschein„SLIDESHARE2018“ auf Udemy oder die Shortlinks und erhalte unsere Kurse für nur 10,99€ (95% Rabatt). Python für Data Science und Machine Learning: https://goo.gl/cE7TQ3 Original Python Bootcamp - Von 0 auf 100: https://goo.gl/gjn7pX R für Data Science und Machine Learning: https://goo.gl/8h5tH7 Exklusive Gutscheine Udemy-Kurse by Datamics, 2018https://www.udemy.com/user/rene-brunner/

Hinweis der Redaktion

  • #2 Hallo und herzlich Willkommen zum englischen Udemy Bestseller: Python für Data Science und Machine Learning.