Funktionen in Python

Ähnliche Dokumente
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

Anweisungen in Python

Ausnahmen-Behandlung

Programmierkurs Python I

Informatik I: Einführung in die Programmierung 3. Werte, Typen, Variablen und Ausdrücke

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

Programmieren in Python

1 Funktionsaufrufe. Informatik I: Einführung in die Programmierung 4. Funktionen: Aufrufe und Definitionen. Standardfunktionen: Typen-Konversion

Programmierkurs Python I

Programmieren in Python

6. Funktionen, Parameterübergabe

Algorithmen und Datenstrukturen

A2.1 Python. Algorithmen und Datenstrukturen. Algorithmen und Datenstrukturen. A2.1 Python. A2.2 Kurzer Sprachüberblick. A2.3 Selectionsort in Python

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

WS2017/ Oktober 2017

EWS, WS 2016/17 Pfahler I-1

Einführung in Python (2)

Termin 6: Medienprogrammierung in Python Bildverarbeitung (3)

4 Daten in Python. Primäres Ziel: Daten zu Containern zusammenfassen, insbesondere Vektoren etc., um vernünftige Beispiele rechnen zu können.

Funktionales Programmieren in Python

WS2018/ Oktober 2018

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

Gültigkeitsbereich. T. Neckel Einführung in die wissenschaftliche Programmierung IN8008 Wintersemester 2016/

PYTHON. 04 Funktionen II, Module

2. Unterprogramme und Methoden

Programmierung in Python

Programmieren in Python 3. Variablen, Funktionen und Bedingungen

Einführung in Python. Übung zur Vorlesung NLP Beate Krause, Dominik Benz NLP-Übung: Einführung in Python 1

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

Prof. Dr. Wolfgang Schramm. Vorlesung. Techniken der Programmentwicklung. Exkurs: Anonyme Klassen

Programmiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften

1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen

Typ : void* aktuelle Parameter Pointer von beliebigem Typ

Algorithmen und Datenstrukturen

1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen

Kapitel 15: Von dynamischen zu statischen Typen. Grundlagen der Programmierung 1. Holger Karl. Wintersemester 2016/2017. Inhaltsverzeichnis 1

Weather forecast in Accra

Methoden und Wrapperklassen

Programmieren mit statistischer Software

Programmieren in Python

Reguläre Ausdrücke in Python

Java Methoden. Informatik 1 für Nebenfachstudierende Grundmodul. Kai-Steffen Hielscher Folienversion: 1. Februar 2017

Algorithmik und Programmieren

Exkurs: ANONYME KLASSEN. Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm

Informatik - Übungsstunde

Accelerating Information Technology Innovation

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

1 Funktionsaufrufe. Informatik I: Einführung in die Programmierung 4. Funktionen: Aufrufe und Definitionen. Funktionsaufrufe

Informatik I: Einführung in die Programmierung

Funktionen. mehrfach benötigte Programmteile nur einmal zu schreiben und mehrfach aufzurufen

OCP Java SE 8. Lambda

C++ Klassen weitere Funktionen

Repetitorium Programmieren I + II

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

2. Programmierung in C

Informatik I: Einführung in die Programmierung. Übungsblatt 3. Abgabe: Freitag, 15. November 2013, 18:00 Uhr

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

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

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

Programmier-Befehle - Woche 10

IT I: Heute. abstrakte Methoden und Klassen. Interfaces. Interfaces List, Set und Collection IT I - VO 7 1

Thomas Sillmann. Swift im Detail HANSER

Institut für Programmierung und Reaktive Systeme 2. Februar Programmieren I. Übungsklausur

Informatik - Übungsstunde

Dynamische Datentypen. Destruktor, Copy-Konstruktor, Zuweisungsoperator, Dynamischer Datentyp, Vektoren

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden

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

Funktionen. Überblick über Stored Functions. Syntax zum Schreiben einer Funktion. Schreiben einer Funktion

Prof. Dr. Stefan Funken, Dipl.-Ing. Christoph Erath 15. Mai WiMa-Praktikum (Matlab 2/9) Einführung in LATEXund Matlab

Funktionen in JavaScript

Informatik I: Einführung in die Programmierung

Transkript:

October 19, 2006

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

def Anweisung def def funktionsname([<arg>]) : [ Dokumentationsstring ] <anweisungen> [return <ausdruck>] def erstellt ein Funktionsobjekt mit 0 oder mehr Parametern. Dokumentationsstring optional aber empfehlenswert. return liefert Ausdruck. None wenn nicht vorhanden.

Beispiel: TuNix >>> def TuNix():pass... >>> TuNix <function TuNix at 0xb7df7e64> >>> print TuNix() None

Blockbildung Zur Erinnerung: Blockbildung durch Einrücken Keine Klammerung Empfehlungen Leerzeichen verwenden 4 Leerzeichen einrücken Unterstützenden Editor (z.b. emacs) verwenden

Argumentübergabe Argumente werden an lokale Variablen der Funktion übergeben. Argumentübergabe Unveränderliche Objekte call by value call by reference am besten mit Tupeln als Funktionsrückgabe.

Beispiel: call by value >>> def f1(x,y) :... print( Parameter x : ),x... print( Parameter y : ),y... x=x*3... y=y*2... print ( Aendere Parameter x : ),x... print( Aendere Parameter y : ),y...

Beispiel: call by value >>> x=1 >>> y=2 >>> f1(x,y) Parameter x : 1 Parameter y : 2 Aendere Parameter x : 3 Aendere Parameter y : 4 >>> x 1 >>> y 2

Beispiel: Veränderliche Datentypen >> def f2(x,y) :... print( Parameter x : ),x... print( Parameter y : ),y... x[0]= Hoppla... y.append(42)... print ( Aendere Parameter x : ),x... print( Aendere Parameter y : ),y...

Beispiel: Veränderliche Datentypen (II) >>> x=[1,2,3] >>> y=[11,12,13] >>> f2(x,y) Parameter x : [1, 2, 3] Parameter y : [11, 12, 13] Aendere Parameter x : [ Hoppla, 2, 3] Aendere Parameter y : [11, 12, 13, 42] >>> x [ Hoppla, 2, 3] >>> y [11, 12, 13, 42]

Empfehlung: call by reference http://www.python.org/doc/faq/programming/ How do I write a function with output parameters (call by reference)? By returning a tuple of the results: def func2(a, b): a = new-value b = b + 1 return a, b # a and b are local names # assigned to new objects # return new values x, y = old-value, 99 x, y = func2(x, y) print x, y # output: new-value 100 This is almost always the clearest solution.

Gültigkeitsbereich Gültigkeitsbereich Funktionen definieren einen eigenen Gültigkeitsbereich. Lokale Variablen

Beispiel: Lokale Variablen 1 >>> def f(x):... y=2... return(x+y)... >>> f(1) 3 >>> y Traceback (most recent call last): File "<stdin>", line 1, in? NameError: name y is not defined

Beispiel: Lokale Variablen 2 >>> y=42 >>> def f(x):... y=2... return(x+y)... >>> f(1) 3 >>> y 42

global Das Schlüsselwort global erlaubt den Zugriff auf globale Variablen. Schlechter Stil.

LGB-Regel LGB-Regel 1 Local 2 Global 3 Built-In

Beispiel: Kaninchenpopulation http://de.wikipedia.org/wiki/fibonacci-zahlen 1 Zu Beginn gibt es ein Paar neugeborener Kaninchen. 2 Jedes neugeborene Kaninchenpaar wirft nach 2 Monaten ein weiteres Paar. 3 Anschliessend wirft jedes Kaninchenpaar jeden Monat ein weiteres. 4 Kaninchen leben ewig und haben einen unbegrenzten Lebensraum.

Fibonacci Zahlen Rekursive Folge f 0 = 0 f 1 = 1 f n = f n 1 + f n 2, n 2

Fibonacci Funktion >>> def fibonacci(n):... if n>=2 : return(fibonacci(n-1)+fibonacci(n-2))... elif n==1 : return 1... elif n==0 : return 0... >>> for i in range(10): print(fibonacci(i)),... 0 1 1 2 3 5 8 13 21 34

Default Argumente Default Parameter def funktionsname([<arg>],[<arg>=<vorgabewert>) : <anweisungen> Vorgabe Parameter müssen hinter den Stellungsparametern stehen. Werden beim Aufruf ein Parameter weggelassen, wird der Vorgabewert verwendet.

Beispiel >>> def f(antwort=42):print antwort... >>> f() 42 >>> f( Kein Plan! ) Kein Plan!

Gültigkeit Default Parameter (1) Gültigkeit Default Parameter Parameter sind bei der Definition der Default-Werte nicht nutzbar. >>> def mische(sequenz,start=0,ende=len(sequenz)): pass... Traceback (most recent call last): File "<stdin>", line 1, in? NameError: name sequenz is not defined

Gültigkeit Default Parameter (2) Gültigkeit Default Parameter (2) Default-Werte werden beim ersten Funktionsaufruf ausgewertet Vorsicht bei veränderlichen Datentypen.

Beispiel: Gültigkeit Default Parameter def verkette(a,b=[]): b.append("spam") return a+b print verkette([1]) print verkette([1]) # Ergibt: #[1, Spam ] #[1, Spam, Spam ]

Workaround: Defaultparameter None Workaround: None und anschliessende Zuweisung. def verkette(a,b=none): if b==none: b=[] b.append("spam") return a+b print verkette([1]) print verkette([1]) # Ergibt: #[1, Spam ] #[1, Spam ]

Aufruf mit Schlüsselwort Aufruf mit Schlüsselwort f([<arg>][,...,][<arg>=<wert>]) Werte können beim Aufruf explizit einen Parameternamen zugewiesen werden. Alle Werte ohne Default-Wert müssen als Schlüsselwort-Parametr oder Stellungs-Parameter übergeben werden.

Variable Argumente Variable Argumente *<name> sammelt Position-Parameter in Tupel. **<name> sammelt Schlüsselwort-Parameter in Dictonary. Verwendung am Ende der Parameter-Liste. Reihenfolge: * **

Beispiel: Positionsparameter >>> def f(*parameter):print parameter... >>> f(1,2,3) (1, 2, 3) >>> f( Brian, Judith ) ( Brian, Judith ) >>> f(( Brian, Judith )) (( Brian, Judith ),)

Beispiel: Schlüsselworte >>> def f(**schluesselworte):print schluesselworte... >>> f(fruehstueck= spam ) { fruehstueck : spam } >>> f(fruehstueck= spam,mittagessen= spam with eggs ) { fruehstueck : spam, mittagessen : spam with eggs } >>> f(x=23,y=42,essen=( spam,69)) { y : 42, x : 23, essen : ( spam, 69)}

Beispiel # Falsche Reihenfolge : # >>> def f(**worte,*para): print para,worte File "<stdin>", line 1 def f(**worte,*para): print para,worte ^ SyntaxError: invalid syntax # # Richtige Reihenfolge: Position vorne # >>> def f(*para,**worte): print para,worte...

Beispiel # Falsche Reihenfolge # >>> f(a=1,11,2) SyntaxError: non-keyword arg after keyword arg # # Richtige Reihenfolge: Position vorne # >>> f(11,2,a=1) (11, 2) { a : 1}

c opyleft c opyleft Erstellt mit Freier Software c Rüdiger Weis, Berlin 2006 unter der GNU Free Documentation License.