Exkurs - Python als flexibler Taschenrechner

Dialoge mit Python

Das englische Wort "Computer" heißt wörtlich übersetzt "Rechner". Und tatsächlich waren die ersten Computer Maschinen, die sehr schnell komplizierte Berechnungen durchführen konnten, die beim Rechnen von Hand extrem viel länger gebraucht hätten. Heute haben wir uns alle an kleine, handliche Taschenrechner gewöhnt und können uns eine Zeit ohne automatisches Rechnen nur noch schwer vorstellen. Und auch unsere Programmierumgebung Python (bzw. Idle) kann als ein einfacher Taschenrechner verwendet werden. Mit Programmierung im engeren Sinne hat das noch nicht viel zu tun, aber trotzdem werden wir diese ersten Erfahrungen brauchen.

Wir starten IDLE, eine einfache aber sehr brauchbare Python-Entwicklungsumgebung. "IDLE" steht für "Integrated DeveLopment Environment", also für "Integrierte Entwicklungsumgebung. Nebenbei: Die Python-Macher zeigten bei der Namensgebung (Informatiker-)Humor: das englische Wort "idle" kann unter anderem "faul", "untätig" oder "nutzlos" bedeuten. Startet man IDLE, so ist das Bild vielleicht in der Tat etwas ernüchternd; es wird wohl in etwa so aussehen.

Python 3.4.3 (v3.4.3:9b73f1c3e601, Feb 24 2015, 22:43:06) [MSC v.1600 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> 

Hinter dem Dreifachpfeil ">>>", der auch "Prompt" genannt wird, kann man nun Aufforderungen zur automatisierten Verarbeitung von Daten eigeben. Als Beispiel kann man es mit einer einfachen Rechenaufgabe ausprobieren. Drückt man auf die Eingabetaste, so erhält man - wie beim Taschenrechner - ein Ergebnis.

Python 3.4.3 (v3.4.3:9b73f1c3e601, Feb 24 2015, 22:43:06) [MSC v.1600 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> 5+7
12

Aufgabe 1: Dialog mit Python

Probiere das selbst aus. Teste auch die gängigen Rechenoperationen.

Einfache Rechenoperationen

Wir betrachten folgende Situation: Ein Gehege soll mit einem Zaun eingegrenzt werden. Hierzu müssen an geeigneten Stellen Zaunpfähle gesetzt werden.

rechteckiges Gehege; Zaunpfähle im gleichen Abstand; Zaunpfähle dargestellt als Kreise

Die folgenden Berechnungssituationen sollen Verarbeitungsmöglichkeiten von Zahlen aufzeigen. Führe die Berechnungen jeweils selbst mit Python durch und deute die Ergebnisse.

Aufgabe 2: Einfache Rechenaufgaben

(a) Ein rechteckiges Gehege wird mit 12 Pfählen in der einen und 7 Pfählen in der anderen Richtung eingegrenzt. Die Pfähle sind jeweils im Abstand 0.8m gesetzt. Wie lang und breit ist das Gehege?

>>> 11 * 0.8
...
>>> ...
...

(b) Das Gehege ist 4.5m lang. Diese Länge soll in 6 Abschnitte aufgeteilt werden. In welchem Abstand müssen die Pfähle gesetzt werden?

>>> 4.5 / 6
...

(c) Das Gehege ist 640cm lang. Es sollen Pfähle im Abstand von 90cm gesetzt werden. Wie oft passt der Abstand in die vorgegebene Länge?

>>> 640 // 90
...

(d) Das Gehege ist 640cm lang. Wieviel bleibt übrig, wenn man Pfähle im Abstand von 90cm setzt?

>>> 640 % 90
...

(e) Führe selbst weitere Berechnungen durch und stelle Vermutungen auf, was die Rechenzeichen zwischen den Zahlen bedeuten.

16 * 3
16 / 3
16 // 3
16 % 3
17 % 3
18 % 3

Verwendung von Funktionen

Neben den elementaren Rechenoperatoren stellt Python weitere vordefinierte Funktionen zur Verarbeitung von Daten zur Verfügung. Zur Verdeutlichung betrachten wir die folgende Berechnungssituation.

Das mit einem Zaun zu umschließende Gehege ist ein rechtwinkliges Dreieck. Die beiden den rechten Winkel einschließenden Seiten sind 3m und 4m lang. Wie lang die dem rechten Winkel gegenüber liegende Seite?

Zaunpfähle für ein dreieckiges Gehege

Info: Die Katheten in einem rechtwinkligen Dreieck sind die Seiten, die den rechten Winkel einschließen. Die Hypotenuse ist die Seite, die dem rechten Winkel gegenüberliegt. Nach dem Satz des Pythagoras gilt für rechtwinklige Dreiecke a2 + b2 = c2, wenn a und b die Katheten und c die Hypotenuse bezeichnet.

Satz des Pythagoras[1]

Hier eine Möglichkeit, wie man bei diesem Berechnungsproblem in Python vorgehen könnte.

>>> from math import *
>>> sqrt(pow(3, 2) + pow(4, 2))
5.0

Aufgabe 3: Verwendung von Funktionen

Probiere das selbst aus. Du kannst Schritt für Schritt die Teilausdrücke von Python auswerten lassen, um zu verstehen, was hier berechnet wird.

Achte auf die erste Zeile from math import *, mit der man Python sagt, dass man mathematische Funktionen verwenden möchte.

>>> from math import *
>>> pow(3, 2)

>>> pow(4, 2)

>>> pow(3, 2) + pow(4, 2)

>>> sqrt(pow(3, 2) + pow(4, 2))

Funktionen in Python

Funktionen kennst du sicherlich aus dem Mathematikunterricht: Funktionen werden hier als eindeutige Zuordnungen eingeführt, die jedem x-Wert aus einer vorgegebenen Defintionsmenge genau einen y-Wert zuordnen.

Ein einfaches Beispiel ist die Quadratfunktion f mit f(x) = x2, die jeder (reellen) Zahl ihr Quadrat zuordnet. Ein weiteres Beispiel ist die Wurzelfunktion g mit g(x) = √x, die jeder nichtnegativen (reellen) Zahl ihre positive Quadratwurzel zuornet.

Funktionen in der (Schul-)Mathematik werden meist in der Form f(x) = ... dargestellt. Als Funktionsvariable benutzt man oft das x, als Funktionsname ein f. Das muss nicht so sein. Man kann dieselbe Funktion z.B. in der Form h(a) = ... darstellen. Funktionen in der (Schul-)Mathematik hängen in der Regel auch nur von einer Funktionsvariablen ab. Für diese Variable werden in der Regel nur Zahlen eingesetzt.

Funktionen spielen ebenfalls eine zentrale Rolle in der Programmierung. Funktionen sind hier Verarbeitungseinheiten, die übergebene Daten verarbeiten und den berechneten Funktionswert als Ergebnis zurückliefern.

Als erstes Beispiel betrachten wir die in Python vordefinierte Funktion sqrt.

<Black-Box-Diagramm><Funktionsname>sqrt</Funktionsname><Übergaben><Übergabe><Wert>25</Wert><Variable>zahl</Variable><Typ></Typ></Übergabe></Übergaben><Rückgabe><Typ></Typ><Wert>5.0</Wert></Rückgabe></Black-Box-Diagramm>

Hier erkennt man bereits, dass Informatiker dazu tendieren, sprechende Bezeichner als Funktionsnamen zu verwenden: Der Name sqrt steht für "square root".

Als weiteres Beispiel betrachten wir die in Python vordefinierte Funktion pow.

<Black-Box-Diagramm><Funktionsname>pow</Funktionsname><Übergaben><Übergabe><Wert>3</Wert><Variable>basis</Variable><Typ></Typ></Übergabe><Übergabe><Wert>2</Wert><Variable>exponent</Variable><Typ></Typ></Übergabe></Übergaben><Rückgabe><Typ></Typ><Wert>9</Wert></Rückgabe></Black-Box-Diagramm>

Bei dieser Funktionen werden zwei Daten zur Verarbeitung übergeben. Die Situation, dass eine Funktion nur einen Datenwert verarbeitet, ist somit eher ein Spezialfall. Beachte, dass eine Funktion immer nur ein Dateneinheit als Ergebnis zurückliefern kann. Wie man ggf. viele Daten zu einer Dateneinheit zusammenfasst, wird in den weiteren Abschnitten noch gezeigt.

Funktionen selbst gemacht

Python stellt eine Vielzahl an Bibliotheken mit vordefinierten Funktionen zur Verfügung. Mit diesen vordefinierten Funktionen kann man bereits zahlreiche Berechnungsprobleme lösen.

Für viele Berechnungssituationen benötigt man aber Funktionen, die das Python-System in der gewünschten Form nicht vorsieht. Python ermöglicht es aber, selbst neue Funktionen zu definieren und dann zu verwenden. Wie das geht, soll das folgende Beispiel zeigen.

>>> from math import *
>>> def laengeHypotenuse (kathete1, kathete2):
	return sqrt(pow(kathete1, 2) + pow(kathete2, 2))

>>> laengeHypotenuse(3, 4)
5.0

Hier wird die neue Funktion laengeHypotenuse definiert, mit der man die Länge der Hypotenuse in einem rechtwinkligen Dreieck berechnen kann, wenn man die Längen der Katheten hat. Die Details einer solchen Funktionsdefinition werden im nächsten Abschnitt erklärt.

Aufgabe 4: Eine Funktion selbst definieren

Teste den gezeigten Python-Dialog. Berechne mit der neu definierten Funktion auch die Länge der Hypotenuse in einem rechtwinkligen Dreieck, dessen Katheten die Länge 1 haben.

Quellen

X

Fehler melden

X

Suche