Programmierkurs Python I

Ähnliche Dokumente
Programmierkurs Python I

Programmierkurs Python I

Funktionen in Python

1 def Anweisung. 2 Argumentübergabe. 3 Lokale Variablen. 4 Default Argumente. 5 Aufruf mit Schlüsselwort. 6 Variable Argumente. Funktionen in Python

Funktionen in Python

Python 2. Vorlesung Computerlinguistische Techniken Alexander Koller. 28. Oktober 2014

Vorsemesterkurs Informatik Übungsaufgaben. Tag 4a - Python

C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22

Informatik für Schüler, Foliensatz 18 Rekursion

Programmierkurs Python II

Funktionen in JavaScript

Vorlesung Skriptsprachen Duale Hochschule Stuttgart Sommersemester Dipl.-Ing. (FH) Volker Schepper

3. Anweisungen und Kontrollstrukturen

Informatik I. Informatik I Iteratoren Generatoren Das Modul itertools. Iterierbare Objekte Iteratoren. Python-Interpreter

Sequenzen - Listen. Sequenzen Listen: Definition Listen: veränderliche Sequenzen Methoden Attribute Eine Liste von ganzen Zahlen

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

Methoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom

Programmierkurs Python I

Elementare Konzepte von

2. Programmierung in C

Programmierung in Python

Funktionen in JavaScript

C# - Einführung in die Programmiersprache Methoden. Leibniz Universität IT Services

Einführung in die Computerlinguistik

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme

Crashkurs Python und Sage U23 Krypto-Mission

Grundlagen der Programmierung

Klassenvariablen, Klassenmethoden

EINFÜHRUNG IN DIE PROGRAMMIERUNG

Java: Eine kurze Einführung an Beispielen

Einstieg in die Informatik mit Java

Anweisungen in Python

Funktionales Programmieren in Python

Einstieg in die Informatik mit Java

Programmierkurs Java

C# - Einführung in die Programmiersprache Bedingte Anweisungen und Schleifen

Heap vs. Stack vs. statisch. 6 Speicherorganisation. Beispiel Statische Variablen. Statische Variablen

Einführung in Python (2)

EINFÜHRUNG IN DIE PROGRAMMIERUNG

Einführung in die Programmierung

Geschachtelte Klassen

Globale Variablen Diverses. Globale Variablen. Globale Variablen

Anweisungen und Kontrollstrukturen

Programmierkurs I. Gliederung: Deklarationsteil als BNF 2. Blöcke in Ada95 (Lebenszeit, Sichtbarkeit von Variablen)

Heap vs. Stack vs. statisch. 6 Speicherorganisation. Beispiel Statische Variablen. Statische Variablen

Einführung in Mathematica

PROGRAMMIERUNG IN JAVA

2 Teil 2: Nassi-Schneiderman

Computergrundkenntnisse und Programmieren, WS 07/08, Übung 11: Klassen der Standardbibliothek 2

Java Einführung Methoden. Kapitel 6

Programmieren mit statistischer Software

1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays)

Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke

JAVA - Methoden - Rekursion

Informatik I. 4. Funktionen: Aufrufe und Definitionen. 25. Oktober Albert-Ludwigs-Universität Freiburg. Informatik I.

Programmieren lernen mit Groovy Rekursion Rekursion und Iteration

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

Algorithmen und Datenstrukturen II

Programmieren in C / C++ Grundlagen C 4

Einstieg in die Informatik mit Java

Einführung in die Programmierung Wintersemester 2016/17

Lösungsvorschlag Serie 2 Rekursion

6. Funktionen, Parameterübergabe

Bash-Skripting Linux-Kurs der Unix-AG

Verkettete Datenstrukturen: Listen

Informatik I: Einführung in die Programmierung

Mathematische Rekursion

Java I Vorlesung Imperatives Programmieren

7 Funktionen. 7.1 Definition. Prototyp-Syntax: {Speicherklasse} {Typ} Name ({formale Parameter});

Die Programmiersprache C99: Zusammenfassung

Web-Techniken Einführung in JavaScript

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

Einstieg in die Informatik mit Java

2. Programmierung in C

Einstieg in die Informatik mit Java

Algorithmen implementieren. Implementieren von Algorithmen

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny

Einführung in die Programmierung

2 Eine einfache Programmiersprache

C++ - Kontrollstrukturen Teil 2

Einstieg in die Informatik mit Java

6 Speicherorganisation

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

Grundlagen der Programmierung Prof. H. Mössenböck. 6. Methoden

Erwin Grüner

C.3 Funktionen und Prozeduren

Präzedenz von Operatoren

Vorkurs C++ Programmierung

Programmieren in C. Operatoren, Variablen und deren Sichtbarkeit. Prof. Dr. Nikolaus Wulff

Umsetzung einer Klassenkarte in einer Programmiersprache

Speicher und Adressraum

Transkript:

Programmierkurs Python I Michaela Regneri & Stefan Thater Universität des Saarlandes FR 4.7 Allgemeine Linguistik (Computerlinguistik) Winter 2010/11 Übersicht Kurze Wiederholung: while Sammeltypen (kurz & knapp) mehr zu Sammeltypen in der nächsten Sitzung Schleifen: for Funktionen 2

while 1. Der Ausdruck expr wird ausgewertet 2. Trifft er zu, wird block ausgeführt Danach gehe zu 1 while expr: block 3. Sonst wird der Programmfluss hinter der Schleife fortgesetzt. 3 break & continue Die break-anweisung verlässt die aktuelle Schleife (ohne die Bedingung auszuwerten) Die continue-anweisung überspringt den Rest des Blocks wertet die Bedingung neu aus und setzt ggf. die Schleife fort. 4

while break else Schleifen können einen else Block haben. Der else Block wird ausgewertet sobald die Bedingung der Schleife zu falsch auswertet, aber nicht, wenn die Schleife mit break verlassen wurde. while bedingung: if irgendwas: break else: 5 Beispiel: Primzahlen von 2 100 n = 2 while n < 100:! m = 2! while m < n:!! if n % m == 0:!!! break!! m += 1! else:!! print(n, 'ist eine Primzahl')! n += 1 6

Sammeltypen Sammeltypen dienen als Container für beliebige Werte Sammeltypen in Python: Listen Sammlung von Elementen, feste Reihenfolge Strings Listen von Zeichen (unveränderlich) Tupel wie Listen, aber unveränderlich Mengen ungeordnete Sammlung von Elementen Wörterbücher Abbildungen von Schlüssel auf Werte Alle Sammeltypen unterstützen: len(x) gibt Anzahl der Elemente in x 7 Listen (list) Eine Liste ist eine geordnete Sammlung von Werten liste = ['a', 'Hallo', 1, 3.0, [1, 2, 3]] Die Listenelemente können verschiedene Typen haben Zugriff auf Listenelemente: liste[0] 'a' liste[-1] [1,2,3] liste[-1][1] 2 liste[5] IndexError: list index out of range 8

Tupel (tuple) Ähnlich wie Listen tup = ('a', 1, 1.2) tup = 'a', 1, 1.2 tup = tuple(['a', 1, 1.2]) Spezielle Syntax für Tupel mit einem Element: tup = ('a',) Hauptunterschied zu Listen: Das Hinzufügen, Löschen oder Austauschen von Elementen eines Tupels ist nicht möglich Zugriff auf Elemente wie bei Listen 9 for-schleifen In einer for-schleife wird über alle Elemente in seq iteriert seq ein beliebiger Sammeltyp-Wert zum Beispiel: Liste, Tupel, String, for i in seq: block1 [else: block2] In jedem Iterationsschritt wird block1 ausgeführt i ist das aktuell betrachtete Element Reihenfolge: seq[0], seq[1], (keine feste Reihenfolge bei Mengen, Wörterbüchern) break, continue und else funktionieren wie bei while 10

for-schleifen (Beispiele) >>> for c in "Python":! print(c) P y t h o n >>> a = [1, 2, 3, 4] >>> b = 0 >>> for x in a:! b += x >>> b 10 >>> x 4 11 for-schleifen mit sequence unpacking Oft sind die Elemente von Listen wieder Sammeltyp-Werte Dank sequence unpacking kann man auf die Elemente der einzelnen Listenelemente bequem zugreifen: >>> tel = [('Müller', 7234), ('Meier', 8093)] >>> for k, v in tel:! print(k + ': ' + str(v)) Müller: 7234 Meier: 8093 Beachte: beim sequence unpacking müssen beide Sammeltyp-Werte die gleiche Länge haben 12

range Die eingebaute Funktion range erzeugt Folgen von aufeinanderfolgenden Zahlen (int) for x in range(10): print(x) Ausgabe: 0, 1, 2,, 9 for x in range(3, 10): print(x) Ausgabe: 3, 4, 5,, 9 for x in range(3, 10, 2): print(x) Ausgabe: 3, 5, 7, 9 13 Funktionen Übersicht Funktionen elementar Namensräume Rekursion Syntaktischer Zucker: Variable Argumentlisten Default-Werte Schlüsselworte 14

Funktionen Funktionen sind wiederverwendbare Code-Blöcke die Unterprogramme implementieren Funktionen strukturieren das Gesamtproblem in mehrere kleinere Teilprobleme Die Funktionsdefinition entspricht der Zuweisung einer Funktion an eine Variable Wird eine Funktion aufgerufen, wird der Code der Funktion ausgeführt 15 Funktionen >>> def hello(someone): """Say hello to someone""" print("hello, " + someone + "!") >>> hello <function hello at 0x7fb3907a2a68> >>> hello("michaela") Syntax Hello, Michaela! def <name>(var1,, varn): >>> help(hello) [<documentation string>] [] Say hello to someone block 16

Parameter und lokale Variablen Funktionen können Argumente (Parameter) haben. Parameter sind lokale Variablen, deren Wert beim Aufruf der Funktion bestimmt wird. Zuweisungen innerhalb einer Funktionsdefinition erzeugen lokale Variablen Wenn einer Variablen ein Wert zugewiesen wird, wird die Variable als lokale Variable aufgefasst. Lokale Variablen = nur innerhalb der Funktion sichtbar 17 Funktionen >>> def fak(n): result = 1 for i in range(1, n + 1): result *= i return result >>> fak(4) 24 lokale Variablen Die return Anweisung verlässt die Funktion und liefert den Wert des Arguments als Resultat des Funktionsaufrufs. 18

Namensräume Ein Namensraum (Namespace) ist eine Abbildung von Bezeichnern (Namen) auf Objekte Namen in verschiedenen Namensräumen können auf verschiedene Objekte referieren Eine lokale Variable x und eine globale Variable x sind verschiedene Variablen Namensräume können geschachtelt sein. 19 Namensräume Bei Funktionsaufrufen wird ein neuer lokaler Namensraum erzeugt Lokale Variablen existieren (nur) im lokalen Namensraum (Die Funktions-Parameter sind auch lokale Variablen) Beim Verlassen der Funktion wird der Namensraum wieder gelöscht bzw. vergessen Bei Rekursion hat jeder rekursive Aufruf der Funktion seinen eigenen Namensraum 20

Beispiel >>> n = 17 >>> def add_to_n(x): return x + n >>> add_to_n(10) 27 >>> x NameError: name 'x' is not defined 21 Beispiel >>> n = 17 >>> def add_to_n(x): n = 27 return x + n >>> add_to_n(10) 37 >>> n 17 22

Funktionen Innerhalb von Funktionen haben wir Zugriff auf die Parameter lokale Variablen globale Variablen - aber nur lesend Außerhalb der Funktion sind die lokalen Variablen nicht sichtbar 23 Beispiel >>> counter = 17 >>> def add1(): counter = counter + 1 >>> add1() UnboundLocalError: local variable 'counter' referenced before assignment 24

Beispiel >>> counter = 17 >>> def add1(): global counter counter = counter + 1 >>> counter 17 >>> add1() >>> counter 18 Die global Anweisung deklariert Variablen als global. 25 Rekursion Funktionen können andere Funktionen aufrufen Funktionen können auch sich selbst aufrufen das nennt man Rekursion Rekursion ist ein mächtiges Werkzeug, mit dem man viele Algorithmen elegant ausdrücken kann Aber Vorsicht: man muss darauf achten, dass die Rekursion irgendwo endet! 26

Beispiel: Fakultätsfunktion def fak(n): Rekursionsabbruch if n <= 1: für 0 und 1 return 1 Rekursion mit else: absteigendem n return n * fak(n-1) 27 Beispiel: Fibonacci-Zahlen Die Fibonacci-Folge ist eine unendliche Folge von Zahlen, bei der sich die jeweils folgende Zahl durch Addition der beiden vorherigen Zahlen ergibt: 0, 1, 1, 2, 3, 5, 8, 13, def fib(n): if n <= 1: return n else: return fib(n-1) + fib(n-2) 28

Funktionen Übersicht Funktionen elementar Namensräume Rekursion Syntaktischer Zucker: Variable Argumentlisten Default-Werte Schlüsselworte 29 Variable Argument-Listen >>> def summe(*args): result = 0 for item in args: result += item return result >>> summe(1) 1 >>> summe(1,2) 3 >>> summe(1,2,3) 6 30

Unpacking >>> def add(x, y): return x + y >>> pair = (1, 2) >>> add(pair[0], pair[1]) 3 >>> add(*pair) 3 31 Optionale Argumente >>> def summe(seq, start = 0): for i in seq: start += i return start >>> summe([1,2,3,4]) 10 >>> summe([1,2,3,4], 22) 32 >>> summe([1,2,3,4], start=22) 32 32

Achtung! >>> def summe(seq, start = [0]): for i in seq: start[0] += i return start[0] >>> summe([1,2,3,4]) 10 >>> summe([1,2,3,4]) 20 >>> summe([1,2,3,4]) 30 Default-Werte werden evaluiert, wenn die Funktion definiert wird, und nicht, wenn die Funktion aufgerufen wird! 33 Optionale Argumente, etc. Mehr zu optionalen Argumenten, variablen Argumentlisten, siehe http://docs.python.org/py3k/tutorial/index.html Abschnitt 4.7 34

Zusammenfassung Kontrollstruktur: for-schleife Funktionen Rekursion 35