Python Online
Home    .  
variablen

6. VARIABLEN

 

 

DU LERNST HIER...

 

den wichtigen Begriff der Variablen kennen. Darunter versteht man in der Informatik Namen, die als Platzhalter für Werte dienen, die sich im Laufe der Programmausführung ändern können.

 

 

MUSTERBEISPIELE

 

Damit du das Programm flexibel verändern kannst, willst du die Anzahl der Ecken eines n-Ecks mit einer Variablen n festlegen. Dazu machst du eine Zuweisung, beispielsweise n = 7 für ein Siebeneck. Dabei wird der Name n mit der Zahl 7 verbunden und n kann dann im Programm mehrmals gelesen, aber auch verändert werden.

 
Programm:
from gturtle import *

makeTurtle()
n = 7
setPenColor("blue")
repeat n:
    forward(100)
    right(360 / n)
Programmcode markieren (Ctrl+C kopieren, Ctrl+V einfügen)

Du kannst jetzt leicht auch beliebige andere n-Ecke zeichnen, wobei du auch die Seitenlänge jeweils anpassen musst, damit die Figur nicht zu gross ist. Die Werte für n kannst du sogar nach dem Programmstart eingeben. Mit der Anweisung
n = inputInt("Gib die Eckenzahl ein")

öffnet sich ein Eingabedialog, wo du eine Zahl eingeben kannst. Beim Drücken des OK-Buttons schliesst sich das Dialogfenster und der eingegebene Wert wird der Variablen n zugewiesen.

 

Programm:

from gturtle import *

makeTurtle()
setPenColor("blue")
n = inputInt("Gib die Anzahl Ecken an:")
repeat n:
    forward(500 / n)
    right(360 / n)
Programmcode markieren (Ctrl+C kopieren)

Der Wert der Variablen kann sich im Laufe des Programms durch eine erneute Zuweisung auch ändern. Beispielsweise für die Seitenlänge size eines Quadrats:

Du kannst bei der erneuten Zuweisung sogar den alten Wert verwenden, also size = size + 50 schreiben. Dabei musst du dir vorstellen, dass schrittweise Folgendes geschieht:

  • der alte Wert 20 von size wird in ein Rechenwerk übertragen
  • die Zahl 50 wird dazugezählt
  • der neue Wert 70 wird wieder als size abgelegt.
Programm:
from gturtle import *

makeTurtle()
size = 40
repeat 4:
   forward(size)
   right(90)

size = size + 50
repeat 4:
   forward(size)
   right(90)
Programmcode markieren (Ctrl+C kopieren)
 

 

Diese Schreibweise ist sehr elegant. Beispielsweise kannst du damit die Turtle mit einem kurzen Programm 10 ineinander geschachtelte Quadrate zeichnen lassen:

Programm:
from gturtle import *

makeTurtle()
size = 20
repeat 10:
    repeat 4:
        forward(size)
        right(90)
    size = size + 20
Programmcode markieren (Ctrl+C kopieren)
 

 

 

MERKE DIR...

 

Eine Variable entsteht dann, wenn du ihr mit dem Gleichheitszeichen einen Wert zuweist. Du kannst ihren Wert jederzeit durch eine neue Zuweisung ändern und dabei sogar ihren eigenen (alten) Wert gebrauchen. Du darfst die dabei verwendete Schreibweise nicht mit einer mathematischen Gleichung verwechseln. Die Programmanweisung:

n = n + 1

hat nichts mit einer mathematischen Gleichung zu tun, also mit der Aufgabe, n so zu bestimmen, dass sich links und rechts von Gleichheitszeichen derselbe Wert ergibt.

Für n = n + 1 gibt es noch die Kurzschreibweise n += 1 , die genau das Gleiche macht.

 

 

ZUM SELBST LÖSEN

 
1.
Du sollst Perlenketten zeichnen, wobei die Anzahl Perlen mit einem Inputdialog
n = inputInt("Anzahl Perlen?")
eingegeben wird.

Du verwendest dabei den Befehl dot(20) und rechnest den Drehwinkel mit 360/n so wie in den ersten zwei Programmbeispielen. Teste dein Programm für Zahlen zwischen 20 und 30.
 

2.

Mit Variablen kannst du mit wenig Aufwand schöne Grafiken erstellen. Das nebenstehende Bild entsteht, indem die Turtle 100 mal s Schritte vorwärts läuft und mit dem Drehwinkel w dreht, wobei du bei jedem Durchgang s um 1 erhöhst. Du startest mit s = 5. Den Drehwinkel gibst du mit einem InputDialog ein:
w = inputInt("Gib den Drehwinkel an")
Teste das Programm mit verschiedenen Drehwinkeln (z.B. 118, 70, 89).

 

3.

Die nebenstehende hübsche Figur entsteht, indem die Turtle 100 Quadrate mit der Seitenlänge s zeichnet. Dabei wird bei jedem Durchlauf die Seitenlänge um 2 erhöht und die Turtle um 6 Grad gedreht.

 

 

 

   

   

 

6-1
Didaktische Hinweise:

Der Variablenbegriff ist von grundlegender Bedeutung, aber ein didaktisches Minenfeld, insbesondere im Zusammenhang mit Basistypen und Referenztypen/Zeiger.

Es gibt im Wesentlichen drei verschiedene methodische Ansätze:

Low-Level-Modell Vorteile Nachteile

Eine Variable wird wie im Maschinecode/Assembler als ein reservierter Hauptspeicherplatz angesehen, der über seine Adresse angesprochen wird

Anschaulicher Bezug zur Maschinenstruktur
Adressen sind zwar im Assembler,  C/C++ und anderen Programmiersprachen mit Zeigern (Pointer) wichtig,  spielen aber in in der Praxis bei vielen anderen Programmiersprachen nur noch eine untergeordnete Rolle oder sind sogar verpönt

Boxmetapher Vorteile Nachteile
Eine Variable wird als eine Box- (oder Schublade) aufgefasst, die mit einem Namen angeschrieben ist und in der sich der Wert befindet
Eine Variable wird als eine Box- (oder Schublade) aufgefasst, die mit einem Namen angeschrieben ist und in der sich der Wert befindet
Die Box kann auch leer sein, eine Variable hat aber immer einen Wert. Die Box kann auch mehrere Dinge enthalten, eine Variable aber nicht.

Das Boxmetapher ist für Python falsch, da eine Variable hier immer eine Referenz auf ein Objekt ist (auch für Zahlen)

Pragmatischer Ansatz Vorteile Nachteile

Variablen sind Bezeichner für einen Wert, der verändert werden kann. Es gibt also einen Bezug oder eine Verbindung (engl. bindung) zwischen dem Namen (Alias) und ihrem Wert (der irgendein Datentyp sein kann)

Der Ansatz entspricht der intuitiven Auffassung von Namen:
"Hans ist ein Bezeichner für eine Person".
Man "verliert" keine Zeit mit problematischen Erklärungen
Man bleibt vage, was die Implementierung der Variablen (das Speichermodell) angeht

Wir folgen in diesem Lehrmittel dem pragmatischen Ansatz.
Für  weitere Gedanken zum Variablenbegriff in Python siehe: www.tigerjython.ch