45
Python Crashkurs – Teil 1 Mentoring – WiSe 2019/20 Anja Camara Samuel Domiks Alexander Korzec Hannes Kneiding Elen Niedermeyer Freie Universität Berlin Institut für Informatik 25. Oktober 2019

Python Crashkurs – Teil 1 - Mentoring – WiSe 2019/20 · Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 1 / 43. Inhalt 1 Kommandozeile 2 Pythoninstallieren&starten

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Python Crashkurs – Teil 1 - Mentoring – WiSe 2019/20 · Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 1 / 43. Inhalt 1 Kommandozeile 2 Pythoninstallieren&starten

Python Crashkurs – Teil 1Mentoring – WiSe 2019/20

Anja Camara Samuel DomiksAlexander KorzecHannes KneidingElen Niedermeyer

Freie Universität BerlinInstitut für Informatik

25. Oktober 2019

Page 2: Python Crashkurs – Teil 1 - Mentoring – WiSe 2019/20 · Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 1 / 43. Inhalt 1 Kommandozeile 2 Pythoninstallieren&starten

Inhalt

1 Kommandozeile

2 Python installieren & starten

3 Python in der Konsole ausprobieren

4 Erstes Programm schreiben

5 Datentypen

6 Math

7 Fallunterscheidung

8 Schleifen und Listen

9 Weitere Datenstrukturen

10 Referenzen

Page 3: Python Crashkurs – Teil 1 - Mentoring – WiSe 2019/20 · Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 1 / 43. Inhalt 1 Kommandozeile 2 Pythoninstallieren&starten

Warum Python?

▸ Leicht erlernbar.▸ Kürzere Entwicklungsdauer im Vergleich zu anderen Programmiersprachen.▸ Es gibt viele mächtige Bibliotheken für Python:● NumPy● Matplotlib● SciPy● TensorFlow● Biopython● …

▸ Es ist kostenlos im Vergleich zu Matlab!▸ (Indizierung beginnt ab 0!)

Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 1 / 43

Page 4: Python Crashkurs – Teil 1 - Mentoring – WiSe 2019/20 · Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 1 / 43. Inhalt 1 Kommandozeile 2 Pythoninstallieren&starten

Inhalt

1 Kommandozeile

2 Python installieren & starten

3 Python in der Konsole ausprobieren

4 Erstes Programm schreiben

5 Datentypen

6 Math

7 Fallunterscheidung

8 Schleifen und Listen

9 Weitere Datenstrukturen

10 Referenzen

Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 2 / 43

Page 5: Python Crashkurs – Teil 1 - Mentoring – WiSe 2019/20 · Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 1 / 43. Inhalt 1 Kommandozeile 2 Pythoninstallieren&starten

Kommandozeile

Linux Mac WindowsKommando-zeile (Termi-nal) öffnen

[Strg]+[Alt]+[T] oder“Terminal”suchen

[cmd]+[Space]oder “Terminal”suchen

Start → cmd

Verzeichnisseanzeigen

ls dir

Verzeichniswechseln

cd mein/pfad/datei cdmein\pfad\datei

Ins über-geordneteVerzeichniswechseln

cd .. cd..

Table 1: Befehle der Kommandozeile. Quellen: o.A. (2018) und Oberneder (2018)

Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 3 / 43

Page 6: Python Crashkurs – Teil 1 - Mentoring – WiSe 2019/20 · Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 1 / 43. Inhalt 1 Kommandozeile 2 Pythoninstallieren&starten

Inhalt

1 Kommandozeile

2 Python installieren & starten

3 Python in der Konsole ausprobieren

4 Erstes Programm schreiben

5 Datentypen

6 Math

7 Fallunterscheidung

8 Schleifen und Listen

9 Weitere Datenstrukturen

10 Referenzen

Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 4 / 43

Page 7: Python Crashkurs – Teil 1 - Mentoring – WiSe 2019/20 · Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 1 / 43. Inhalt 1 Kommandozeile 2 Pythoninstallieren&starten

Python installieren

Bitte zu Hause installieren.

Linux Mac / WindowsKommandozeile öffnen[Strg]+[Alt]+[T]

Datei herunter laden:https://www.python.org/downloads

sudo apt installlibreadline-devsudo apt-get installpython3

Doppelklick und installieren

Table 2: Python installieren (Minimäxchen, 2019)

libreadline-dev sorgt dafür, dass die Pfeiltasten in der Shellfunktionieren (Epp, 2012).

Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 5 / 43

Page 8: Python Crashkurs – Teil 1 - Mentoring – WiSe 2019/20 · Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 1 / 43. Inhalt 1 Kommandozeile 2 Pythoninstallieren&starten

Weitere Pakete installieren

Des Weiteren benötigt ihr für CoMa 1 die Pakete NumPy, SciPy undMatplotlib. Diese kann man über die Kommandozeile mit pip3 installieren:

1 pip3 install numpy2 pip3 install scipy3 pip3 install matplotlib

Source Code 1: Installation über pip3

Sollte es bei der Installation Probleme geben, können unter

https://www.lfd.uci.edu/~gohlke/pythonlibs/

fehlende Pakete heruntergeladen werden. Diese lassen sich mit pip3install <Paketname> installieren. Dafür muss man in derKommandozeile mit cd zum Ordner navigieren, wo sich die .whl-Dateienbefinden. Je nach Betriebssystem muss die win32 oder amd64 Versionausgewählt werden. Ihr benötigt die Numpy+MKL-Version von NumPy.

Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 6 / 43

Page 9: Python Crashkurs – Teil 1 - Mentoring – WiSe 2019/20 · Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 1 / 43. Inhalt 1 Kommandozeile 2 Pythoninstallieren&starten

Python starten

Python wird wie folgt in der Konsole gestartet:

Figure 1: Starten von Python3 in der Konsole. Quelle: eigene Bearbeitung

Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 7 / 43

Page 10: Python Crashkurs – Teil 1 - Mentoring – WiSe 2019/20 · Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 1 / 43. Inhalt 1 Kommandozeile 2 Pythoninstallieren&starten

Inhalt

1 Kommandozeile

2 Python installieren & starten

3 Python in der Konsole ausprobieren

4 Erstes Programm schreiben

5 Datentypen

6 Math

7 Fallunterscheidung

8 Schleifen und Listen

9 Weitere Datenstrukturen

10 Referenzen

Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 8 / 43

Page 11: Python Crashkurs – Teil 1 - Mentoring – WiSe 2019/20 · Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 1 / 43. Inhalt 1 Kommandozeile 2 Pythoninstallieren&starten

Python ausprobieren

Nun könnt ihr ein bisschen herum probieren:

1 3+72 5/33 5//34 9%75 list(range(1,10))6 A = list(range(10,20))7 A[0]8 A[5:9]9 A[-1]

10 [1,2]+[4,5]11 # dies ist ein Kommentar12 """ dies ist auch13 ein Kommentar """14 quit()

Source Code 2: Ausdrücke in Python

Fragen: Was machen die Ausdrücke?▸ Addition▸ Division▸ Ganzzahlige Division▸ Modulo▸ Erstellt eine Liste▸ Gibt das erste Element aus▸ Gibt einen Bereich in A aus▸ Gibt das letzte Element aus▸ Konkatenation von Listen▸ Kommentare

▸ Verlassen von Python

Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 9 / 43

Page 12: Python Crashkurs – Teil 1 - Mentoring – WiSe 2019/20 · Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 1 / 43. Inhalt 1 Kommandozeile 2 Pythoninstallieren&starten

Inhalt

1 Kommandozeile

2 Python installieren & starten

3 Python in der Konsole ausprobieren

4 Erstes Programm schreiben

5 Datentypen

6 Math

7 Fallunterscheidung

8 Schleifen und Listen

9 Weitere Datenstrukturen

10 Referenzen

Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 10 / 43

Page 13: Python Crashkurs – Teil 1 - Mentoring – WiSe 2019/20 · Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 1 / 43. Inhalt 1 Kommandozeile 2 Pythoninstallieren&starten

Texteditor

Texteditor öffnen:

Linux Mac WindowsKate, Atom, GEdit TextMate,

TextWranglerNotepad++

Table 3: Bekannte Texteditoren zum Programmieren

Vorteile guter Texteditoren:▸ Syntax-Highlighting▸ Vorschläge für Befehle oder verwendete Namen▸ Unterstützt Einrücken▸ Multiple Tabs▸ Geteiltes Fenster▸ Mini-Übersicht des Quellcodes

Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 11 / 43

Page 14: Python Crashkurs – Teil 1 - Mentoring – WiSe 2019/20 · Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 1 / 43. Inhalt 1 Kommandozeile 2 Pythoninstallieren&starten

1. Programm schreiben

Erstellen einer Python-Datei:1. Möglichkeit: Rechtsklick > neue Datei > HelloWorld.py2. Möglichkeit: Texteditor öffnen > [Strg] + [S] > Namen eingeben >

speichern

Code einfügen und speichern:

def helloWorld():return "Hello World"

Source Code 3: HelloWorld.py

Funktions-definition

Funktionsname

RückgabewertEinrückung

{Klammern fürParameter

Dateiname

Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 12 / 43

Page 15: Python Crashkurs – Teil 1 - Mentoring – WiSe 2019/20 · Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 1 / 43. Inhalt 1 Kommandozeile 2 Pythoninstallieren&starten

Programm ausführen

▸ Kommandozeile (Terminal) aufrufen▸ Folgende Kommandos eingeben:

1 cd mein/pfad2 python33 import HelloWorld # Dateiname4 HelloWorld.helloWorld() # Datei.Funktionsname

Source Code 4: Ausführen des Programms

▸ Bei Änderung des Codes, muss das Programm erneut geladen werden.1 from importlib import reload # einmalig2 reload(HelloWorld) # immer, wenn etwas geändert wurde3 HelloWorld.helloWorld() # Funktionsaufruf

Source Code 5: Neuladen des Programms

Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 13 / 43

Page 16: Python Crashkurs – Teil 1 - Mentoring – WiSe 2019/20 · Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 1 / 43. Inhalt 1 Kommandozeile 2 Pythoninstallieren&starten

Inhalt

1 Kommandozeile

2 Python installieren & starten

3 Python in der Konsole ausprobieren

4 Erstes Programm schreiben

5 Datentypen

6 Math

7 Fallunterscheidung

8 Schleifen und Listen

9 Weitere Datenstrukturen

10 Referenzen

Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 14 / 43

Page 17: Python Crashkurs – Teil 1 - Mentoring – WiSe 2019/20 · Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 1 / 43. Inhalt 1 Kommandozeile 2 Pythoninstallieren&starten

Boolean

Vergleichsoperatoren (binär)== Gleichheit (infix)!= Ungleichheit (infix)Logische Operatoren (unär)not Negation (unär)Logische Operatoren (binär)or Oder (infix)and Und (infix)

Table 4: Boolesche Operatoren

Beispiele:1 x = True # Zuweisung2 y = False3 x == y # Vergleich4 x or y5 x and y6 not y # Negation7 type(x) # <type 'bool'>8 help(bool) # Manual, q

beendet den Modus

Source Code 6: Boolesche Operatoren

Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 15 / 43

Page 18: Python Crashkurs – Teil 1 - Mentoring – WiSe 2019/20 · Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 1 / 43. Inhalt 1 Kommandozeile 2 Pythoninstallieren&starten

Aufgabe A

Schreibe eine Funktion, die drei boolesche Parameter übergeben bekommt undnur dann True ausgibt, wenn die ersten beiden Parameter gleich sind und sichvom letzten unterscheiden:

f(a,b, c) =⎧⎪⎪⎪⎪⎨⎪⎪⎪⎪⎩

True, a = b = True ∧ c = FalseTrue, a = b = False ∧ c = TrueFalse, sonst

∀a,b, c ∈ {True,False}

Achtung! Lösung:1 def decide(a,b,c):2 return a==b and a!=c

Source Code 7: Lösung 1 zur Aufgabe A

1 def decide2(a,b,c):2 return (a and b and not c) or (not a and not b and c)

Source Code 8: Lösung 2 zur Aufgabe A

Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 16 / 43

Page 19: Python Crashkurs – Teil 1 - Mentoring – WiSe 2019/20 · Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 1 / 43. Inhalt 1 Kommandozeile 2 Pythoninstallieren&starten

Integer

Vergleichsoperatoren (binär)== Gleichheit!= Ungleichheit< Kleiner als> Größer als<= Kleiner gleich>= Größer gleichArithm. Operatoren (unär)- Kehrt das Vorzeichen um+ Ändert nichts

Table 5: Integer-Operatoren

Arithm. Operatoren (binär)+ Addition- Subtraktion* Multiplikation** Power// Ganzzahlige Division% Modulo

Table 6: Integer-Operatoren

1 x = 42 # Zuweisung2 x**3 # Power3 type(x) # <type 'int'>

Source Code 9: Integer-Operatoren

Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 17 / 43

Page 20: Python Crashkurs – Teil 1 - Mentoring – WiSe 2019/20 · Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 1 / 43. Inhalt 1 Kommandozeile 2 Pythoninstallieren&starten

Aufgabe B

Nadja kauft sich einen Taschenrechner. Dieser hat aber eine Fehlfunktion:Anstelle einen Winkel zwischen 0° und 360° auszugeben, gibt er zwar dasrichtige Ergebnis – allerdings viel zu groß. Schreibe eine Funktion, die dasErgebnis des Taschenrechners bekommt und dieses auf den Wertebereich[0,360) normiert. Beispiel:

winkel(450)↦ 90

winkel(45)↦ 45

Achtung! Lösung:1 def winkel(w):2 return w % 360

Source Code 10: Lösung zur Aufgabe B

Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 18 / 43

Page 21: Python Crashkurs – Teil 1 - Mentoring – WiSe 2019/20 · Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 1 / 43. Inhalt 1 Kommandozeile 2 Pythoninstallieren&starten

Float

Float hat die gleichen Operatoren wie Integer und zusätzlich noch:

Arithm. Operator (binär)/ Division

Table 7: Float-Operator

Tipp: Vermeidet == und != beiFloats.

1 x = 3.14152 # Zuweisung2 x < x**2 # Vergleich3 type(x) # <type 'float'>

Source Code 11: Float-Operatoren

Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 19 / 43

Page 22: Python Crashkurs – Teil 1 - Mentoring – WiSe 2019/20 · Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 1 / 43. Inhalt 1 Kommandozeile 2 Pythoninstallieren&starten

String

Ein weiterer wichtiger Datentyp sind Zeichenketten (Strings).Achtung! Strings sind nicht veränderbar (immutable).

1 s = "spiegel"2 s + "ei"3 s[3]4 s[2:5] # die 5-te Stelle

ist exklusive5 len(s)6 "ABC" == 'ABC'7 3*"ACDC"8 print("hi\ndu")9 type(s) # <class 'str'>

Source Code 12: String-Operatoren

1 "PyThOn".lower()2 "PyThOn".upper()3 "C".join(['A','D',''])4 "Aminosäuren".find("no")5 "hi du".replace(" ","\n")

Source Code 13: String-Methoden

Quelle: (o.A., 2019)Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 20 / 43

Page 23: Python Crashkurs – Teil 1 - Mentoring – WiSe 2019/20 · Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 1 / 43. Inhalt 1 Kommandozeile 2 Pythoninstallieren&starten

Inhalt

1 Kommandozeile

2 Python installieren & starten

3 Python in der Konsole ausprobieren

4 Erstes Programm schreiben

5 Datentypen

6 Math

7 Fallunterscheidung

8 Schleifen und Listen

9 Weitere Datenstrukturen

10 Referenzen

Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 21 / 43

Page 24: Python Crashkurs – Teil 1 - Mentoring – WiSe 2019/20 · Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 1 / 43. Inhalt 1 Kommandozeile 2 Pythoninstallieren&starten

Math

Das Modul math stellt bekannte mathematische Funktionen und Konstantenbereit. Dafür muss am Anfang eines Python-Skripts import math stehen,um die Funktionalität des Moduls math nutzen zu können.⇒ Nächste Woche importieren wir Numpy und Matplotlib!

Konstantenmath.e Eulersche Zahlmath.pi KreiszahlTable 8: In math definierte Konstanten

1 import math2 math.pi3 math.e4 help("math") # Manual, q

beendet den Modus

Source Code 14: Konstanten

Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 22 / 43

Page 25: Python Crashkurs – Teil 1 - Mentoring – WiSe 2019/20 · Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 1 / 43. Inhalt 1 Kommandozeile 2 Pythoninstallieren&starten

Math

Trigonometrische Funktionenmath.sin(x) Sinusmath.cos(x) Cosinusmath.tan(x) Tangensmath.asin(x) Arkussinusmath.acos(x) Arkuscosinusmath.atan(x) ArkustangensTable 9: Trigonometrische Funktionen

1 import math2 pi = math.pi3 math.sin(pi / 2)4 math.cos(0)5 math.tan(pi / 4)6 math.asin(1)7 math.acos(1)8 math.atan(1)

Source Code 15: Funktionen

Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 23 / 43

Page 26: Python Crashkurs – Teil 1 - Mentoring – WiSe 2019/20 · Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 1 / 43. Inhalt 1 Kommandozeile 2 Pythoninstallieren&starten

Math

Exponentialfunktion und Logarithmenmath.exp(x) Exponentialfunktionmath.log(x) Natürlicher Logarithmus (x > 0)math.log2(x) Dualer Logarithmus (x > 0)math.log10(x) Dekadischer Logarithmus (x > 0)Weitere Funktionenmath.sqrt(x) Quadratwurzel (x ≥ 0)math.factorial(x) Fakultätsfunktion (x muss ein Integer sein!)math.pow(x, y) Berechnet xy

math.ceil(x) Gibt kleinste ganze Zahl ≥ x ausmath.floor(x) Gibt größte ganze Zahl ≤ x ausmath.degrees(x) Wandelt Radiant in Grad ummath.radians(x) Wandelt Grad in Radiant um

Table 10: Weitere Funktionen aus math

Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 24 / 43

Page 27: Python Crashkurs – Teil 1 - Mentoring – WiSe 2019/20 · Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 1 / 43. Inhalt 1 Kommandozeile 2 Pythoninstallieren&starten

Aufgabe C

Berechnet werden soll die Fläche eines regulären Polygons. Sei s dieSeitenlänge und n die Anzahl der Seiten. Definiere

a =s

2 ⋅ tan (π/n) .

Dann ist die Fläche eines beliebigen regulären Polygons durchn ⋅ s ⋅ a

2

gegeben. Beispiel für n = 5, s = 1:polygon(n, s) = polygon(5,1) ≈ 1.7204

Achtung! Lösung:1 from math import *

3 def polygon(n, s):4 a = s / (2 * tan(pi / n))5 return (n * s * a) / 2

Source Code 16: Lösung zur Aufgabe CPython Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 25 / 43

Page 28: Python Crashkurs – Teil 1 - Mentoring – WiSe 2019/20 · Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 1 / 43. Inhalt 1 Kommandozeile 2 Pythoninstallieren&starten

Inhalt

1 Kommandozeile

2 Python installieren & starten

3 Python in der Konsole ausprobieren

4 Erstes Programm schreiben

5 Datentypen

6 Math

7 Fallunterscheidung

8 Schleifen und Listen

9 Weitere Datenstrukturen

10 Referenzen

Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 26 / 43

Page 29: Python Crashkurs – Teil 1 - Mentoring – WiSe 2019/20 · Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 1 / 43. Inhalt 1 Kommandozeile 2 Pythoninstallieren&starten

Fallunterscheidung

1 def signum42(n):2 if n == 0:3 return 04 elif n > 0:5 if n == 42:6 return 427 else:8 return 19 else:

10 return -1Source Code 17: Fallunterscheidung:if-then-else

Die if-else-Anweisung prüft einPrädikat und führt zu einerEntscheidung, die denProgrammablauf beeinflusst.

Mithilfe von elif kann zwischen mehrals nur 2 Fällen unterschiedenwerden.

Die else-Anweisung ist optional.Wird sie weg gelassen, wird am Endeder Fallunterscheidung fortgefahren.

Fallunterscheidungen können auchgeschachtelt werden.

Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 27 / 43

Page 30: Python Crashkurs – Teil 1 - Mentoring – WiSe 2019/20 · Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 1 / 43. Inhalt 1 Kommandozeile 2 Pythoninstallieren&starten

Aufgabe D

Implementiere eine Funktion, die ausgibt, in welchem Quadranten eineskartesischen Koordinatensystems sich ein Punkt (x, y) ∈ (R ∖ {0}) × (R ∖ {0}).befindet. Verwende zur Ausgabe print()-Anweisungen stattreturn-Anweisungen.Achtung! Lösung:

1 def quadrant(x, y):2 if x > 0 and y > 0:3 print("Punkt befindet sich im 1.ten Quadrant")4 elif x < 0 and y > 0:5 print("Punkt befindet sich im 2.ten Quadranten")6 elif x < 0 and y < 0:7 print("Punkt befindet sich im 3.ten Quadranten")8 else:9 print("Punkt befindet sich im 4.ten Quadranten")

Source Code 18: Lösung zur Aufgabe D

Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 28 / 43

Page 31: Python Crashkurs – Teil 1 - Mentoring – WiSe 2019/20 · Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 1 / 43. Inhalt 1 Kommandozeile 2 Pythoninstallieren&starten

Inhalt

1 Kommandozeile

2 Python installieren & starten

3 Python in der Konsole ausprobieren

4 Erstes Programm schreiben

5 Datentypen

6 Math

7 Fallunterscheidung

8 Schleifen und Listen

9 Weitere Datenstrukturen

10 Referenzen

Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 29 / 43

Page 32: Python Crashkurs – Teil 1 - Mentoring – WiSe 2019/20 · Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 1 / 43. Inhalt 1 Kommandozeile 2 Pythoninstallieren&starten

Schleifen

for-Schleife:1 def sumAll(n):2 sum = n3 for i in range(n):4 sum = sum+i5 print(i)6 return sum

Source Code 19: for-Schleife

for-Schleifen durchlaufen dieElemente der ihr übergebenen Liste.Der Zähler i wird in jedemSchleifendurchlauf verändert.Besonderheit: Die Anzahl derSchleifendurchläufe steht zu Anfangfest.

while-Schleife:1 def sumAll(n):2 i, sum = 1, 03 while i <= n:4 sum = sum+i5 i = i+16 return sum

Source Code 20: while-Schleife

Solange die Bedingung erfüllt ist,führen while-Schleifen denSchleifenrumpf aus. Der Zähler imuss manuell verändert werden,damit die Schleife terminiert.Besonderheit: Die Anzahl derSchleifendurchläufe braucht nichtfestzustehen.

Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 30 / 43

Page 33: Python Crashkurs – Teil 1 - Mentoring – WiSe 2019/20 · Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 1 / 43. Inhalt 1 Kommandozeile 2 Pythoninstallieren&starten

Liste

Listen sind veränderbare Sammlungen von Objekten verschiedener Datentypen.Sie sind als dynamische Arrays implementiert.

Vergleichsperatoren (Länge)== Gleichheit!= Ungleichheit<,> Kleiner/größer als<=, >= Kleiner/größer gleichListenoperatoren+ Verkettung* Wiederholung[i] i-te Stelle[i:j] Teilliste i bis j-1in Test auf Enthaltensein

not in Test aufNichtenthaltensein

Table 11: Listen-Operatoren

1 a = [] # leere Liste2 b = [1] # 1elementige L.3 a = b+[2,3,4]4 1 in a5 type(a) #<class 'list'>6 c = a7 a[0] = '42' # Zuweisung8 c # gibt c aus9 4*[True]

Source Code 21: Listen-OperatorenPython Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 31 / 43

Page 34: Python Crashkurs – Teil 1 - Mentoring – WiSe 2019/20 · Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 1 / 43. Inhalt 1 Kommandozeile 2 Pythoninstallieren&starten

Liste

Funktionen & Methoden für Listenlen(list) gibt die Länge ausmax(list) findet das Maximummin(list) findet das Minimumsorted(list) gibt die sortierten Elemente ausprint(list) gibt die Liste auslist.append(x) fügt hinten anlist.pop() löscht letztes Elementlist.insert(i,x) Fügt x an Pos. i ein.list.remove(x) löscht das Elem. xlist.index(x) Gibt den Index des 1. Matches auslist.copy() Kopiert die Liste

Table 12: Funktionen & Methoden für Listen

Quelle: (o.A., 2019)Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 32 / 43

Page 35: Python Crashkurs – Teil 1 - Mentoring – WiSe 2019/20 · Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 1 / 43. Inhalt 1 Kommandozeile 2 Pythoninstallieren&starten

Liste

Um durch eine Liste zu laufen, kann eine for-Schleife verwendet werden:1 for n in [1,2,3,4]:2 print(n) # n nimmt jeden Wert aus [1,2,3,4] an

Source Code 22: For-Schleife

1 liste = [1,2,3,4] # len(liste) = 42 for i in range(0, len(liste)): # 4 ist exklusive3 print(liste[i]) # i nimmt jeden Wert von 0 bis 3 an

Source Code 23: For-Schleife mit Index als Zähler

Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 33 / 43

Page 36: Python Crashkurs – Teil 1 - Mentoring – WiSe 2019/20 · Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 1 / 43. Inhalt 1 Kommandozeile 2 Pythoninstallieren&starten

Aufgabe E

Schreibe eine Funktion quad, die eine Liste von Zahlen erhält, jeden Wertquadriert und die veränderte Liste ausgibt. Beispiel:

quad([1,2,3,4])↦ [1,4,9,16]

Achtung! Lösung:1 def quad(liste): # Lösung 12 for i in range(len(liste)):3 liste[i] = liste[i]**24 return liste # ein return ist eigentl. unnötig

6 def quad2(liste): # Lösung 27 neueListe = []8 for n in liste:9 neueListe.append(n**2)

10 return neueListe

Source Code 24: Lösung 1 und 2 zur Aufgabe E

Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 34 / 43

Page 37: Python Crashkurs – Teil 1 - Mentoring – WiSe 2019/20 · Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 1 / 43. Inhalt 1 Kommandozeile 2 Pythoninstallieren&starten

Liste

List-Comprehension bietet eine elegante Weise, Listen zu erstellen:1 [x for x in range(10)] # alle ganzen Zahlen von 0 bis 92 [x**2 for x in range(30) if x%2 == 0] # Quadrat aller

geraden Zahlen3 [x+y for x in ['CoMa','LinA'] for y in ['1',' 2']] #

konkateniert jedes x mit jedem y

Source Code 25: List-Comprehension

Quelle: (o.A., 2019)

Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 35 / 43

Page 38: Python Crashkurs – Teil 1 - Mentoring – WiSe 2019/20 · Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 1 / 43. Inhalt 1 Kommandozeile 2 Pythoninstallieren&starten

Inhalt

1 Kommandozeile

2 Python installieren & starten

3 Python in der Konsole ausprobieren

4 Erstes Programm schreiben

5 Datentypen

6 Math

7 Fallunterscheidung

8 Schleifen und Listen

9 Weitere Datenstrukturen

10 Referenzen

Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 36 / 43

Page 39: Python Crashkurs – Teil 1 - Mentoring – WiSe 2019/20 · Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 1 / 43. Inhalt 1 Kommandozeile 2 Pythoninstallieren&starten

Tupel

Tupel haben fast alle Operatoren und Funktionen wie Listen. Achtung! Tupelsind nicht veränderbar (immutable).

1 t = () # leeres Tupel2 u = (1,) # Tupel mit einem Elem.3 v = (2,3)4 u + v # Konkatenation5 v[0]6 v[0] = 1 # Zugriffsfehler7 'x' in v8 type(v) # <class 'tuple'>9 tuple(2*x for x in range(5))

Source Code 26: Tupel-Operatoren

Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 37 / 43

Page 40: Python Crashkurs – Teil 1 - Mentoring – WiSe 2019/20 · Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 1 / 43. Inhalt 1 Kommandozeile 2 Pythoninstallieren&starten

Wörterbuch (hash tables)

Wörterbücher (dictionaries) sind eine Sammlung von Schlüssel- undWertpaaren. Vorteile:▸ Kombination beliebiger Datentypen▸ Effiziente Implementierung mithilfe von Hashtabellen

1 {} # leer2 w = {1:'Wal', 2:'Hai'}3 w[2]4 w[5] = 'Ara'5 w6 list(w.keys())7 [1,2,5]8 'Wal' in w9 2 in w

10 type(w) # <class 'dict'>

Source Code 27: Wörterbuch-Operatoren

Key Value

Einfügung

Funktionen für Wöterbücherin Test auf

Enthaltenseinnot in Nichtenthal-

tenseind[k] Wert vom Key kd.values() Gibt alle Values

ausd.keys() Gibt alle Keys

ausTable 13: Funktionen für Wörterbücher

Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 38 / 43

Page 41: Python Crashkurs – Teil 1 - Mentoring – WiSe 2019/20 · Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 1 / 43. Inhalt 1 Kommandozeile 2 Pythoninstallieren&starten

Aufgabe F

Schreibe eine Funktion newest, die von den in einem Wörterbuchgespeicherten Studierenden den/die Studenten*in mit kleinsterMatrikelnummer findet und ihn/sie als Tupel (Matrikelnummer, Name)ausgibt. Beispiel:

1 studierende = {1234567: 'Moritz', 7654321: 'Albert',1234321: 'Skadi', 5432657: 'Lukas'}

2 newest(studierende) # Ausgabe: (1234321, 'Skadi')

Source Code 28: Datensatz Studenten und Funktionsaufruf mit Ergebnis

Hinweis: Es kann die Funktion sorted(liste) benutzt werden, um dieMatrikelnummern zu sortieren.Achtung! Lösung:

1 def newest(studis):2 lowestKey = sorted(studis.keys())[0]3 return (lowestKey, studis[lowestKey])

Source Code 29: Lösung zur Aufgabe F

Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 39 / 43

Page 42: Python Crashkurs – Teil 1 - Mentoring – WiSe 2019/20 · Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 1 / 43. Inhalt 1 Kommandozeile 2 Pythoninstallieren&starten

Aufgabe G

Schreibe eine Funktion collatzList, welche eine Zahl n bekommt und dieCollatz-Folge von n bis 1 in Form einer Liste ausgibt. Beispiel:

collatzList(3)↦ [3,10,5,16,8,4,2,1]

Dabei wird die n-te Collatz-Zahl cn in Abhängigkeit ihres Vorgängers cn−1 wiefolgt gebildet:

cn =

⎧⎪⎪⎨⎪⎪⎩

3 ⋅ cn−1 + 1, cn−1 ungeradecn−1//2, cn−1 gerade

∀n ∈ N

Achtung! Lösung:

1 def nextC(c):2 if (c % 2 == 0):3 return c//24 else:5 return 3*c+1

Source Code 30: Lösung zur Aufg. G

1 def collatzList(n):2 result = [n]3 while (n > 1):4 n = nextC(n)5 result.append(n)6 return result

Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 40 / 43

Page 43: Python Crashkurs – Teil 1 - Mentoring – WiSe 2019/20 · Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 1 / 43. Inhalt 1 Kommandozeile 2 Pythoninstallieren&starten

Noch Fragen?Python Tutorials: http://www.learnpython.org

Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 41 / 43

Page 44: Python Crashkurs – Teil 1 - Mentoring – WiSe 2019/20 · Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 1 / 43. Inhalt 1 Kommandozeile 2 Pythoninstallieren&starten

Inhalt

1 Kommandozeile

2 Python installieren & starten

3 Python in der Konsole ausprobieren

4 Erstes Programm schreiben

5 Datentypen

6 Math

7 Fallunterscheidung

8 Schleifen und Listen

9 Weitere Datenstrukturen

10 Referenzen

Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 42 / 43

Page 45: Python Crashkurs – Teil 1 - Mentoring – WiSe 2019/20 · Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 1 / 43. Inhalt 1 Kommandozeile 2 Pythoninstallieren&starten

Referenzen I

Epp, Dietrich (May 2012). Python3.2 can not recognizeUP/DOWN/LEFT/RIGHT keys in interpreter? Webseite. url:https://stackoverflow.com/questions/10765441/python3-2-can-not-recognize-up-down-left-right-keys-in-interpreter (visited on 04/11/2019).

Minimäxchen (Feb. 2019). Python. Webseite. url:https://wiki.ubuntuusers.de/Python (visited on 04/11/2019).

o.A. (2018). Befehle. Webseite. url: https://www.shellbefehle.de/befehle(visited on 04/09/2019).

– (2019). Python List. Webseite. url:https://www.programiz.com/python-programming/list (visited on04/09/2019).

Oberneder, Armin (July 2018). Cmd-Befehle unter Windows. Webseite. url:https://www.thomas-krenn.com/de/wiki/Cmd-Befehle_unter_Windows(visited on 04/09/2019).

Python Crashkurs – Teil 1, Freie Universität Berlin, 25.10.2019 43 / 43