Python Prozeduren und Funktionen

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

C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren

C++ - Einführung in die Programmiersprache Header-Dateien und Funktionen. Leibniz Universität IT Services Anja Aue

C++ - Einführung in die Programmiersprache Funktionen. Leibniz Universität IT Services Anja Aue

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

Python Variablen und Anweisungen

Funktionen in JavaScript

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 4

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

Objektorientierte Programmierung mit Python Polymorphismus und Vererbung. Eltern

Funktionen in JavaScript

Funktionen in Matlab. Nutzerdefinierte Funktionen können in.m-datei gespeichert werden

VB.NET - Prozeduren und Funktionen

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

C# - Einführung in die Programmiersprache Arrays, Enumeration und Collections. Leibniz Universität IT Services Anja Aue

C++ - Objektorientierte Programmierung Vererbung

Programmierung mit C Zeiger

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

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

C++ - Objektorientierte Programmierung Konstante und statische Elemente

Einstieg in die Informatik mit Java

Programmierung mit C Modularisierung von Programmen. Präprozessor-Anweisungen nutzen.

Python für Linguisten

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

Methoden und Wrapperklassen

Access 2010 Programmierung Funktionen in Access

Excel VBA Prozeduren und Funktionen

Projekt 3 Variablen und Operatoren

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

Microsoft Access Abfragen: Informationen anzeigen und sortieren

Wiederholung Wozu Methoden? Methoden Schreiben Methoden Benutzen Rekursion?! Methoden. Javakurs 2012, 3. Vorlesung

Java Einführung Methoden. Kapitel 6

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

Python Einführung in die prozedurale Programmierung. Monty Python's Flying Circus

Programmierung mit C Funktionen

Access 2010 Programmierung Import und Export nach Excel

Objektorientierte Programmierung mit Python Objekt und Klassen

Funktionen in Python

Themen der Übung. Methoden und Wrapperklassen. Vorteile von Methoden. Methoden. Grundlagen

Programmierkurs Python I

Einstieg in die Informatik mit Java

Klassen und Objekte. Klassen sind Vorlagen für Objekte. Objekte haben. Attribute. Konstruktoren. Methoden. Merkblatt

2. Programmierung in C

S. d. I.: Programieren in C Folie 4-1. im Gegensatz zu Pascal gibt es in C kein Schlüsselwort "then"

Grundlagen der Informatik Vorlesungsskript

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

Microsoft Access Arbeiten mit Tabellen. Anja Aue

C++ - Funktionen und mehr -

Objekte haben eine eigene Notation, also Schreibweise, beim Aufruf:

javascript Coding-Guidelines 2. Ausgabe Februar 2015 Der Guideline beschreibt den verwendeten Coding-Stil von javascript als eigene Richtline.

Einführung in die Computerlinguistik

Java - Zahlen, Wahrheitswerte und Zeichen. Leibniz Universität IT Services Anja Aue

Folienpaket 7 Themenschwerpunkte: Methoden in OOP /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil

Tag 5. Repetitorium Informatik (Java) Dozent: Marius Kamp Lehrstuhl für Informatik 2 (Programmiersysteme)

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

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

Module, Packete und PIP

Verwendung Vereinbarung Wert einer Funktion Aufruf einer Funktion Parameter Rekursion. Programmieren in C

PIC16 Programmierung in HITECH-C

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 2

pue13 January 28, 2017

Linux und Shell-Programmierung Teil 6

Java - Zahlen, Wahrheitswerte und Zeichen. Leibniz Universität IT Services Anja Aue

Einstieg in die Informatik mit Java

Einführung in Python (2)

Microsoft Access Integritätsregeln für Tabellen. Anja Aue

PHP 7.0 Dynamische Webseiten erstellen. Grundlagen. Stephan Heller. 1. Ausgabe, Oktober 2016 ISBN GPHP7

Prozeduren und Funktionen

Inhaltsverzeichnis Einleitung xi Kapitel 1: Die Vorbereitung aufs Abenteuer

Übersicht Shell-Scripten

Typ : void* aktuelle Parameter Pointer von beliebigem Typ

Python Einführung. Monica Selva Soto. 24 März Mathematisches Institut

Übungs- und Praktikumsaufgaben zur Systemprogrammierung Dipl.-Ing. H. Büchter (Lehrbeauftragter) FH-Dortmund WS 2001/2002 / SS 2002

Umsetzung einer Klassenkarte in einer Programmiersprache

Programmieren mit Python

Einstieg in die Informatik mit Java

Unterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur

Excel Funktionen durch eigene Funktionen erweitern.

Es ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen.

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

Kapitel 2. Einfache Beispielprogramme

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 12

Girls Day 2017 Programmierung

Objektorientierte Programmierung. Agenda für heute, 1. April, Eines der drei wichtigsten Programmierparadigmen

Python CGI-Skripte erstellen

Access für Windows. Ricardo Hernández García 1. Ausgabe, 1. Aktualisierung, Dezember Automatisierung, Programmierung ACC2010P

Einführung in die C-Programmierung

PROGRAMMIERKURS FORTRAN

07 Funktionen (Teil I)

Arithmetik in der tcsh

2 Eine einfache Programmiersprache

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

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

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

Programmierung in Python

Transkript:

Python Prozeduren und Funktionen

Subroutine (Unterprogramm)... lösen Teilprobleme der Gesamtaufgabe.... fassen Anweisungen, die ein bestimmtes Thema bearbeiten, zu einem Block zusammen.... sind eine Abfolge von Python-Befehlen und -Anweisungen, die zeilenweise abgearbeitet werden.... fassen Code zusammen. Der Code kann an verschiedenen Stellen aufgerufen werden. können nicht verschachtelt werden. können andere Subroutinen aufrufen. Einführung in die prozedurale Programmierung mit Python, 02.09.10 Seite 2

Prozeduren, Funktionen und Methoden Prozeduren geben keinen Wert an den Aufrufer zurück. Prozeduren werden in Python wie Funktionen definiert. Die Funktion gibt aber None zurück. Funktionen geben ein Ergebnis an den Aufrufer zurück. Methoden lesen oder verändern Attributwerte eines Objekts. Methoden sind in Klassen gekapselt. Einführung in die prozedurale Programmierung mit Python, 02.09.10 Seite 3

Vorteile Die Aufgabenstellung wird in kleinere unabhängige Module eingeteilt und somit auch strukturiert. Der Quellcode lässt sich besser lesen. Der Code einer Funktion kann in anderen Programmen wiederverwendet werden. Wiederholende Aufgaben werden in einer eigenständigen Prozedur gekapselt. Die gekapselte Prozedur kann von verschiedenen Stellen aufgerufen werden. Der Code muss nur an einer Stelle bearbeitet werden. Fehler lassen sich schneller finden. Veränderungen lassen sich einfacher vornehmen und testen. Es sind nur Codefragmente betroffen. Einführung in die prozedurale Programmierung mit Python, 02.09.10 Seite 4

Funktionen in Python «def Eingabe(): strdivident = input("divident: ") strdivisior = input("divisior: ") divident = float(strdivident) divisor = float(strdivisior) rueckgabe = {"Divident" : divident,"divisor" : divisor}» return rueckgabe Einführung in die prozedurale Programmierung mit Python, 02.09.10 Seite 5

Ablauf Die Funktion wird mit ihren Namen aufgerufen. Der Aufrufer weiß nur die Bezeichnung der Funktion sowie welche und wie viele Argumente erwartet werden. Nach dem Aufruf löst die Funktion mit Hilfe von Anweisungen die gestellte Aufgabe. Der Entwickler weiß, wie das Problem gelöst wird. Der Aufrufer muss es nicht wissen. An den Aufrufer kann am Ende der Funktion ein Wert zurückgegeben werden. Standardmäßig gibt eine Funktion «None» zurück. Einführung in die prozedurale Programmierung mit Python, 02.09.10 Seite 6

Funktionen bestehen aus... einem Kopf «def Eingabe():». Der Kopf... ist die Blaupause für den Aufruf. ist die Schnittstelle nach außen. einem Rumpf. Der Rumpf beschreibt die programmierte Aufgabe. fasst den Code für eine Aktion zusammen. Einführung in die prozedurale Programmierung mit Python, 02.09.10 Seite 7

Funktionskopf Beispiel: «def Eingabe():». Eine Funktion wird mit dem Schlüsselwort «def» eingeleitet. Dem Schlüsselwort folgt der Name der Funktion. Mit Hilfe des Namens wird die Funktion aufgerufen. Dem Namen folgt die Liste mit den zu übergebenen Parametern. Einführung in die prozedurale Programmierung mit Python, 02.09.10 Seite 8

Funktionsnamen... bestehen aus den Zeichen A..Z, a..z, 0..9 und dem Unterstrich. beginnen immer mit einem Buchstaben oder dem Unterstrich. bestehen aus einer zusammenhängenden Zeichenfolge. Leerzeichen zur Trennung von Wörtern sind nicht erlaubt. beginnen häufig mit einem Großbuchstaben. Einführung in die prozedurale Programmierung mit Python, 02.09.10 Seite 9

Weitere Hinweise Beim Aufruf von Funktionen muss die Groß- und Kleinschreibung beachtet werden. Die Funktion Mittelwert() kann nicht mit dem Namen mittelwert() aufgerufen werden. Jeder Name kommen einmal in einem Programm vor. Der Funktionsname identifizieren eindeutig einen bestimmten Codeabschnitt. Namen eines Projekts sollten aus einem Sprachraum kommen. Zum Beispiel werden in einem Projekt englischsprachige Namen nicht mit deutschsprachigen Namen vermischt. Namensgleichheit mit vordefinierten Prozeduren sollte vermieden werden. Einführung in die prozedurale Programmierung mit Python, 02.09.10 Seite 10

Beispiele Beschreibung der Aufgabe: Mittelwert(). In der Funktion wird der Mittelwert berechnet. Subtraktion(). Zwei Werte werden subtrahiert. Beschreibung des Rückgabewertes: GroessterMesswert() ermittelt aus einer Reihe von Messwerten den größten. NiedrigsteTemperatur() ermittelt aus allen Temperaturen den niedrigsten Wert. Einführung in die prozedurale Programmierung mit Python, 02.09.10 Seite 11

Parameterliste... wird durch die runden Klammern zusammengefasst. enthält Platzhalter für, an die Funktion zu übergebenden Werte. kann beliebig viele Parameter haben. nutzt als Trennzeichen zwischen den Parametern ein Komma. ist leer, wenn keine Argumente an die Funktion übergeben werden. Einführung in die prozedurale Programmierung mit Python, 02.09.10 Seite 12

Funktionsrumpf... beginnt nach dem Doppelpunkt im Funktionskopf. wird mit Hilfe von Einrückungen einem Funktionskopf zugeordnet. kann nur aus der Anweisung «pass» bestehen. Das Schlüsselwort symbolisiert eine leere Anweisung. Einführung in die prozedurale Programmierung mit Python, 02.09.10 Seite 13

Leere Funktionsrümpfe... werden mit Hilfe der Anweisung «pass» erstellt. werden genutzt, um gemeinsame Schnittstellen nach außen zu definieren. werden als Erinnerungsstützen für den Entwickler genutzt. Einführung in die prozedurale Programmierung mit Python, 02.09.10 Seite 14

Aufruf der Funktion Beispiel: «zahlen = Eingabe()» «Division(zahlen["Divident"], zahlen["divisor"])». Eine Funktion wird immer mit ihren Namen aufgerufen. Falls eine Funktion nicht definiert ist, wird eine Fehlermeldung NameError ausgegeben. Dem Funktionsnamen folgt die Argumentliste. Falls keine Argumente übergeben werden, sind die Klammern leer. Die Anzahl und der Typ der zu übergebenden Argumenten ist abhängig von der Parameterliste des Funktionskopfes. Einführung in die prozedurale Programmierung mit Python, 02.09.10 Seite 15

Rückgabewert einer Funktion Mit Hilfe der Anweisung «return» werden Werte an den Aufrufer zurückgegeben und die Funktion beendet. Standardmäßig wird «None» zurückgegeben. Die Funktion besitzt kein Rückgabewert. Als Rückgabewert kann jeder beliebiger Datentyp genutzt werden. Einführung in die prozedurale Programmierung mit Python, 02.09.10 Seite 16

Beispiel «kurse = {"Python" : 12, "C++" : 20, "Access" : 5} def AusgabeTeilnehmerzahl(kursname): teilnehmerzahl = kurse[kursname] return kursname, teilnehmerzahl» def Start(): info = AusgabeTeilnehmerzahl("Python") kursus, teilnehmer = AusgabeTeilnehmerzahl("Python") Einführung in die prozedurale Programmierung mit Python, 02.09.10 Seite 17

Werte zurückgeben Mit Hilfe der Anweisung «return teilnehmerzahl» wird exakt ein Wert an den Aufrufer zurückgegeben. Mit Hilfe der Anweisung «return kursname, teilnehmerzahl» wird ein Tupel von einer beliebigen Anzahl von Werten an den Aufrufer zurückgegeben. Die einzelnen Werte werden durch Kommata getrennnt. Einführung in die prozedurale Programmierung mit Python, 02.09.10 Seite 18

Rückgabewert speichern «info = AusgabeTeilnehmerzahl("Python")». Der Rückgabewert kann mit Hilfe des Gleichheitszeichen in einer Variablen gespeichert werden. Die Variable nimmt den Typ des Rückgabewertes an. «kursus, teilnehmer = AusgabeTeilnehmerzahl("Python")» entsprechend der Anzahl der Rückgabewerte werden Variablen links vom Gleichheitszeichen angegeben. Das erste Element des übergebenen Tupels wird in «kursus» und das zweite Element in «teilnehmer» gespeichert. Die Anzahl der Variablen sowie die Anzahl der Rückgabewerte muss exakt übereinstimmen. Einführung in die prozedurale Programmierung mit Python, 02.09.10 Seite 19

Argumente... werden in der Liste durch Kommata getrennt. können von jeden beliebigen Datentyp sein. werden in Abhängigkeit ihrer Position in der Liste übergeben. werden in Abhängigkeit der Bezeichnung des Parameter übergeben. Diese Art von Argumenten werden als benannte Argumente bezeichnet. können optional sein. Einführung in die prozedurale Programmierung mit Python, 02.09.10 Seite 20

Positionsargumente (positional argument) «def Addition(lOperand, roperand): return (loperand + roperand) def Main(): zahl01 = 2 zahl02 = 5» ergebnis = Addition(zahl01, zahl02) Einführung in die prozedurale Programmierung mit Python, 02.09.10 Seite 21

Erläuterung Positionsargumente werden entsprechend der Reihenfolge in der Liste übergeben. Die Argumente im Aufruf werden von links nach rechts den Parametern im Funktionskopf zugeordnet. Das erste Argument im Aufruf wird dem ersten Parameter im Funktionskopf zugeordnet und so weiter. «def Addition(lOperand, roperand):» «ergebnis = Addition(zahl01, zahl02)» Einführung in die prozedurale Programmierung mit Python, 02.09.10 Seite 22

Schlüsselwortargumente (keywort argument) «def Subtraktion(lOperand, roperand): return (loperand - roperand) def Main():» if zahl01 > zahl02: ergebnis = Subtraktion(lOperand = zahl01, roperand = zahl02) else: ergebnis = Subtraktion(lOperand = zahl02, roperand = zahl01) Einführung in die prozedurale Programmierung mit Python, 02.09.10 Seite 23

Erläuterung Schlüsselwortargumente werden entsprechend der Bezeichnung des Parameters übergeben. Der Parametername wird als Schlüssel genutzt. Jeder Parameter hat im Funktionskopf einen eindeutigen Namen. Mit Hilfe des Gleichheitszeichens wird jeden Parameternamen im Aufruf ein Argument zugewiesen. «def Subtraktion(lOperand, roperand):» «Subtraktion(lOperand = zahl01, roperand = zahl02)» Einführung in die prozedurale Programmierung mit Python, 02.09.10 Seite 24

Dictionary nutzen «def ausgabekunde(kundenname, strasse, plz, ort): print("kundenname: ", kundenname) print("strasse: ", strasse) print("wohnort: ", plz, " ", ort)» def Main(): arguments = dict(kundenname = "Meier", strasse = "Domstraße 2", plz="30159", ort = "Hannover") ausgabekunde(**arguments) Einführung in die prozedurale Programmierung mit Python, 02.09.10 Seite 25

Erläuterung Die Namen der Parameter einer Funktion werden als Schlüssel in einem Dictionary genutzt. Zu jedem Schlüssel existiert ein passender. «**arguments» packt ein Dictionary passend zu den Parametern einer Funktion aus. Falls zu einem Schlüssel kein passender Parameter vorhanden ist, wird die Meldung TypeError ausgegeben. Einführung in die prozedurale Programmierung mit Python, 02.09.10 Seite 26

Argumente mischen «def Summe(Operand01, Operand02, Operand03, Operand04): return (Operand01 + Operand02 + Operand03 + Operand04) def Main(): zahl01 = 2 zahl02 = 5» ergebnis = Summe(zahl01, zahl02, print("summe: ", ergebnis) Operand04 = (zahl01 * zahl02), Operand03 = 0) Einführung in die prozedurale Programmierung mit Python, 02.09.10 Seite 27

Erläuterung In einer Argumentliste werden immer zuerst alle Positionsargumente aufgelistet. Die Argumente werden von links nach rechts den Parametern im Funktionskopf zugeordnet. Anschließend können die nicht gesetzten Parameter durch Schlüsselwortargumente einen Wert zugewiesen bekommen. Nach Schlüsselwortargumenten folgen nie Positionsargumente! Einführung in die prozedurale Programmierung mit Python, 02.09.10 Seite 28

Optionale Argumente «def Addition(lOperand, roperand, operanda = 0, operandb = 0): return (loperand + roperand + operanda + operandb)» def Main(): ergebnis = Addition(zahl01, zahl02) ergebnis = Addition(zahl01, zahl02, operandb = 2, operanda = 3) ergebnis = Addition(zahl01, zahl02, 2) ergebnis = Addition(zahl01, zahl02, 2, 3) Einführung in die prozedurale Programmierung mit Python, 02.09.10 Seite 29

Erläuterung Im Funktionskopf wird dem Parameter mit Hilfe des Zuweisungsoperator ein Verweis auf ein Wert übergeben. Durch den Aufruf der Funktion kann dieser Standardwert mit einem Argument überschrieben werden, muss aber nicht. Optionale Argumente stehen immer am Ende der Argumentliste. Optionalen Argumenten folgen keine nichtoptionalen Argumente. Einführung in die prozedurale Programmierung mit Python, 02.09.10 Seite 30

Beliebig viele Argumente «def Summe(Operand01, Operand02, *args): ergebnis = Operand01 + Operand02 def Main(): zahl01 = 2 zahl02 = 5» ergebnis = Summe(zahl01, zahl02) ergebnis = Summe(zahl01, zahl02, 1, 2, 3, 4) ergebnis = Summe(zahl01, zahl02, 1, 2) Einführung in die prozedurale Programmierung mit Python, 02.09.10 Seite 31

Erläuterung «*args» ist ein Tupel mit allen Argumenten, die keinen Parameter im Funktionskopf zugeordnet werden können. Ein Parameter als Tupel wird mit einem Sternchen gekennzeichnet. Die überzähligen Argumente im Aufruf werden in dieses Tupel verpackt. In diesem Beispiel muss die Funktion summe mit mindestens zwei Parametern aufgerufen werden, kann aber beliebig viele Argumente besitzen. «*args» wird häufig an das Ende der Parameterliste gesetzt. In der Parameterliste sind alle nachfolgenden Parameter automatisch Schlüsselwortargumente. Einführung in die prozedurale Programmierung mit Python, 02.09.10 Seite 32

Beispiel «rechnung(1, 2, 3, 4, 5, operator = '+')» «rechnung(operandl, operandr, *args, operator» Einführung in die prozedurale Programmierung mit Python, 02.09.10 Seite 33

Lokale und globale Variablen Lokale Variablen können nur innerhalb eines bestimmten Blocks genutzt werden. Anweisungen in einem Block haben die gleiche Einrücktiefe. Globale Variablen können im gesamten Programm genutzt werden. Einführung in die prozedurale Programmierung mit Python, 02.09.10 Seite 34

Lokale Variablen «def Addition(lOperand, roperand): return (loperand + roperand) def Main(): zahl01 = 2 zahl02 = 5» ergebnis = Addition(zahl01, zahl02) Einführung in die prozedurale Programmierung mit Python, 02.09.10 Seite 35

Erläuterung Im vorhergehenden Beispiel sind alle lokalen Variablen kursiv dargestellt. zahl01 aus der Funktion Main ist nicht in der Funktion Addition bekannt. Variablen können nur in dem Block genutzt werden, in dem sie definiert sind. Eine lokale Variable ist in ihrem Block einzigartig. Einführung in die prozedurale Programmierung mit Python, 02.09.10 Seite 36

Lebenszyklus In einem Block initialisieren zahl01 = 2 Verweis ändern zahl01 = zahl01 * 2 Durch Verlassen des Blocks zerstören Einführung in die prozedurale Programmierung mit Python, 02.09.10 Seite 37

Globale Variablen «ausgabe = " --- Programmende ---" def Addition(lOperand, roperand): return (loperand + roperand) def Main(): zahl01 = 2 zahl02 = 5 ergebnis = Addition(zahl01, zahl02) print(ausgabe)» Einführung in die prozedurale Programmierung mit Python, 02.09.10 Seite 38

Erläuterung Im vorhergehenden Beispiel sind alle globalen Variablen kursiv dargestellt. Globale Variablen werden am Anfang der Programmdatei definiert. Globale Variablen sind nur für das gesamte Programm / Modul gültig, in dem sie definiert wurden. Das heißt, sie können in allen Funktionen im Programm genutzt werden. Auf globale Variablen sollte verzichtet werden. Einführung in die prozedurale Programmierung mit Python, 02.09.10 Seite 39

Existenz und Sichtbarkeit Eine lokale Variable ist nur in dem Block existent und sichtbar, in dem sie definiert wurde. Eine globale Variable ist im gesamten Programm existent. kann aber durch eine lokale Variable mit einer identischen Bezeichnung überdeckt werden. In dem Block ist die globale Variable nicht sichtbar. Einführung in die prozedurale Programmierung mit Python, 02.09.10 Seite 40

Dokumentation von Funktionen def Berechnung(operandL, operandr, *args, operator): ''' ''' Verschiedene Grundrechenarten Position-Arguments: operandl = Zahl links vom Operator operandr = Zahl rechts vom Operator *args = Liste von einer beliebigen Anzahl von Zahlen Keyword-Argument: operator: Welche Berechnung soll durchgeführt werden? Return: Ergebnis der der Berechnung Einführung in die prozedurale Programmierung mit Python, 02.09.10 Seite 41

Docstrings beginnen und enden immer mit drei Apostrophs. sind Blockkommentare. müssen in die erste Zeile des Funktionsrumpfs gesetzt werden. Ein Docstring ist aber in einer Funktion nicht zwingend erforderlich. einer Funktion werden mit Hilfe von «help(modul.funktion)» oder «modul.funktion. doc» angezeigt. Das Attribut «. doc» beginnt und endet mit zwei Unterstrichen. Einführung in die prozedurale Programmierung mit Python, 02.09.10 Seite 42

Modularisierung Die Aufgabe wird in verschiedene kleine Aufgaben zerlegt. Für jede kleine Aufgabe wird eine Quelldatei angelegt. Die Gesamtaufgabe wird in einer Entwicklungsumgebung durch das Projekt symbolisiert. Das Projekt kann viele verschiedene Dateien enthalten. Die verschiedenen Dateien tauschen sich über definierte Schnittstellen aus. Einführung in die prozedurale Programmierung mit Python, 02.09.10 Seite 43

Vorteile Quelltexte werden überschaubarer. In kleinen, überschaubaren Einheiten ist eine Fehlersuche und -behebung einfacher. Quelldateien sind in anderen Projekten wiederverwendbar. Solange Schnittstellen oder Funktionsprototypen nicht geändert werden, haben Änderungen an den kleinen Quelldateien keine Auswirkungen auf andere Programmteile. Mit Hilfe von Schnittstellen-Definitionen kann ein Programm von einem Team entwickelt werden. Einführung in die prozedurale Programmierung mit Python, 02.09.10 Seite 44

Modul... ist eine Programmdatei mit der Endung.py. fasst Funktionen zur Lösung eines bestimmten Problems zusammen. besteht aus mindestens einer Funktion. müssen vor der Nutzung importiert werden. Einführung in die prozedurale Programmierung mit Python, 02.09.10 Seite 45

Standardmodule... werden automatisch durch die Installation von Python bereit gestellt. enthalten vordefinierte Module zu verschiedenen Themen. sind auf der Webseite http://docs.python.org/py3k/library/ in Abhängigkeit der Kategorie und auf der Seite http://docs.python.org/py3k/modindex.html alphabetisch aufgelistet. Einführung in die prozedurale Programmierung mit Python, 02.09.10 Seite 46

importieren «import sys» Mit Hilfe des Schlüsselwortes «import» werden Standardmodule und benutzerdefinierte Module bereitgestellt. Dem Schlüsselwort folgt der Modulname. Der Modulname entspricht dem Dateiname des Moduls. Die Endung wird nicht angegeben. Es sollten nur die benötigten Module geladen werden. Einführung in die prozedurale Programmierung mit Python, 02.09.10 Seite 47

System-spezifische Daten verändern «import sys sys.path.append("laufwerk:\\pfad\\benutzerdefiniertemodule")» import beispielfunctionargument Einführung in die prozedurale Programmierung mit Python, 02.09.10 Seite 48

Erläuterung Das Modul «sys» bietet Laufzeitinformationen zu Python. Das Attribut «sys.path» gibt eine Auflistung aller Pfade, die Python kennt, zurück. Diese Pfade werden nach interpretierbaren Python-Programmen durchsucht. Die Methode «sys.path.append()» wird ein Pfad übergeben. In diesem Beispiel wird der Speicherort der benutzerdefinierten Module übergeben. Das Pfadtrennzeichen \ muss maskiert werden. Anschließend wird das benutzerdefinierte Modul importiert. Mit Hilfe von «help(sys)» können sie sich den Inhalt des Moduls in der Shell anzeigen lassen. Einführung in die prozedurale Programmierung mit Python, 02.09.10 Seite 49

Funktionen in Modulen aufrufen Voraussetzung: Das gewünschte Modul wurde mit Hilfe des Schlüsselwortes «import» in das Programm eingebunden. Die Funktion in dem Modul wird mit Hilfe von «modul.funktion()» aufgerufen. In den runden Klammern können der Funktion Argumente übergeben werden. Funktionen, die an ein bestimmtes Objekt gebunden sind, werden als Methoden bezeichnet. Einführung in die prozedurale Programmierung mit Python, 02.09.10 Seite 50

Funktionen aus der Mathematik... sind in der Bibliothek «math» definiert. sind trigonometrische Funktionen, Funktionen zum Runden von Zahlen, Funktionen zum Berechnen von Zufallszahlen etc. arbeiten nicht mit komplexen Zahlen zusammen. können Ergebnisse mit Rundungsfehlern liefern. Einführung in die prozedurale Programmierung mit Python, 02.09.10 Seite 51

Beispiel «from math import pi, tan» ergebnis = math.tan(math.pi / 4) Einführung in die prozedurale Programmierung mit Python, 02.09.10 Seite 52

Funktionen aus einem Modul importieren Mit Hilfe der Anweisung «from math import pi, tan» wird nur pi und tan aus math importiert. Alle anderen, in «math» definierten, Funktionen und Daten können nicht aufgerufen werden. Mit Hilfe des Schlüsselwortes «from math» wird festgelegt, in welchen Modul die Funktionen definiert sind. Die Anweisung kann nur auf Modulebene genutzt werden. «import pi, tan» importiert nur die aufgelisteten Funktionen. Die verschiedenen Funktionsnamen werden durch ein Kommata getrennt. Die Funktionen können ohne Nennung des Modulnames genutzt werden. «from math import *» importiert alle Funktionen eines Moduls. Einführung in die prozedurale Programmierung mit Python, 02.09.10 Seite 53

Funktionen für Dezimalzahlen... sind in der Bibliothek «decimal» definiert. arbeiten nicht mit Fließkommazahlen zusammen. bieten Einstellungen für die Genauigkeit etc. Einführung in die prozedurale Programmierung mit Python, 02.09.10 Seite 54

Mit Dezimalzahlen arbeiten «from decimal import * getcontext().prec = 6 # 6 Stellen nach dem Komma genau strdecimal = input("bitte geben Sie eine Decimal-Zahl ein: ") dezwert = Decimal(strDecimal)» ergebnis = dezwert * Decimal('0.5') ergebnis = ergebnis * Decimal.from_float(1.2) Einführung in die prozedurale Programmierung mit Python, 02.09.10 Seite 55

Funktionen für Datums- und Zeitangaben... sind in der Bibliothek «time» definiert. Bei vielen Betriebssystemen wird die Zeit ab dem 1. Januar 1970 in Sekunden gemessen. Einführung in die prozedurale Programmierung mit Python, 02.09.10 Seite 56

Datums- und Zeitfunktionen «from time import * print ("Zeit in Sekunden: " + str(time())) lt = localtime()» jahr, monat, tag = lt[0:3] print ("Es ist der " + str(tag) + "." + str(monat) + "." + str(jahr)) Einführung in die prozedurale Programmierung mit Python, 02.09.10 Seite 57

Aktuelle Zeit in Sekunden Die Funktion «time()» liefert die aktuelle Zeit in Sekunden ab einem bestimmten Zeitpunkt. Einführung in die prozedurale Programmierung mit Python, 02.09.10 Seite 58

Informationen zum aktuellen Zeitpunkt Die Funktion «localtime()» liefert die aktuelle Zeit als Tupel. Die ersten drei Elemente legen das Jahr, den Monat und den Tag fest. Die nächsten drei Elemente liefern die Stunde, die Minute und die Sekunde. Das siebte Element legt den Wochentag fest. Das achte Element liefert den Tag als laufende Nummer bezogen auf ein Jahr. Das neunte Elemente gibt Auskunft über die Berücksichtigung der Sommerzeit oder nicht. Einführung in die prozedurale Programmierung mit Python, 02.09.10 Seite 59