3. Werte, Typen, Variablen

Ein Wert ist etwas, das ein Rechner manipulieren kann, unter anderem:

  • ganze Zahlen (integer, z.B. 200 oder -30)
  • Fließkommazahlen (float, z.B. 2.3 oder 6.8e8, was für 6.8 × 108 oder 680 000 000 steht – Vorsicht: Das Dezimalkomma ist in Python US-Amerikanisch, also ein Punkt)
  • Zeichenketten (string, in Python in einfache oder doppelte Anführungszeichen gesetzt, also etwa "string" oder ’50’)

Werte haben Typen, die wesentlich bestimmen, was mit ihnen gemacht werden kann (wie Operatoren auf sie wirken):

>>> 2+4
6
>>> "2"+'4'
'24'

Die Funktion type sagt einem, welchen Typ ein Wert hat:

>>> type(2)
<type 'int'>
>>> type(2+2.4)
<type 'float'>
>>> type("hallo")
<type 'str'>

Etwas formaler ist ein Typ ein Paar aus einer Menge von Werten und einer Menge von Vorschriften, was das Ergebnis der Anwendung von Operatoren auf ein, zwei oder mehr Werte des Typs ist. Das lässt sich tatsächlich sehr strikt definieren, aber für uns ist so viel Überbau zunächst nicht nötig.

Eine Variable ist ein Name, der auf einen Wert verweist. Im Allgemeinen werden Werte über Variablen manipuliert. Die einfachste Manipulation ist die Zuweisung:

>>> a = 2
>>> currentWord = "Das"

Wo immer ein Wert stehen kann, kann auch eine Variable stehen:

>>> print a
2
>>> type(currentWord)
<type 'str'>

Dies erklärt zunächst nur, was eine Variable ist, nicht so sehr, wozu sie gut ist. Das Konzept dazu kommt natürlich aus der Mathematik, wo Variablen benutzt werden, um von konkreten Werten zu abstrahieren. So kann man beispielsweise beobachten, dass 4 + 2 ⋅ 2 ⋅ 3 + 9 = (2 + 3)2 ist und 9 + 2 ⋅ 3 ⋅ 4 + 16 = (3 + 4)2, erst die Idee von Variablen erlaubt es aber, die binomische Formel a2 + 2ab+ b2 = (a+ b)2 zu formulieren (und, nebenbei, zu beweisen). Ganz ähnlich erlauben Variablen eine Abstraktion von Programmen, die ein Problem lösen (etwa: Berechne das Quadrat von 2), zu Programmen, die eine Klasse von Problemen lösen (etwa: Berechne die n-te Potenz einer beliebigen Zahl).

Erfreulicherweise ist das mit den Variablen meistens nach den ersten paar Versuchen kein Problem mehr.

Namen von Variablen

Variablennamen in Python fangen mit einem Buchstaben oder Unterstrich an und gehen mit beliebig vielen Buchstaben, Unterstrichen oder Zahlen weiter. Sie sind case-sensitive, Groß- und Kleinschreibung werden also unterschieden.

Konvention: Variablennamen fangen mit Kleinbuchstaben an.

Tatsächlich ist die wahre und gute Methode, sich Namen für Variablen auszudenken, heiß umstritten. Ich empfehle für Namen, die sich aus mehreren Wörtern zusammensetzen einen Stil wie

aLongVariableName

Grundsätzlich sollten Variablennamen aussagekräftig sein, jedenfalls, wenn die Variable in mehr als zwei Zeilen verwendet wird. Ein Programm ist nicht nur Kommunikation mit dem Rechner (dem Variablennamen egal sind), sondern auch Kommunikation mit ProgrammiererInnen, die den Code später mal lesen wollen (und natürlich den WiHis, die eure Programme korrigieren); Ziel sollte immer sein, ihnen das Verständnis des Programms zu erleichtern.

Übungen zu diesem Abschnitt

Ihr solltet euch wenigstens an den rötlich unterlegten Aufgaben versuchen

(1)

Startet in den Interpreter und gebt verschiedene Werte ein, etwa 200, "string" oder 40e7. Lasst euch die Typen dieserWerte ausgeben. Das Konzept des Typs versteht ihr vielleicht am Besten, wenn ihr seht, was die Unterschiede zwischen 200, "200" und 200.0 sind, sowohl in der Ausgabe (genau beobachten!) als auch in dem, was type zurückgibt.

(2)

Überlegt euch ein paar Probleme aus dem Alltag, bei denen ihr letztlich mit Variablen umgeht. Überlegt euch Algorithmen, in denen diese Variablen vorkommen.

(3)

Definiert ein paar Variablen, zur Not die aus dem Beispiel – ihr weist dazu einfach irgendwelchen Namen irgendwelche Werte zu. Seid kreativ bei den Variablennamen, euch kann nichts Schlimmeres passieren als eine Fehlermeldung. Wendet die Funktion type auf eure Variablen an.

(4)

Die folgenden Anweisungen lösen jeweils einen Syntaxfehler aus. Begründet in jedem Fall, warum.

1dozen = 12
pass = "something"
five$ = "ca4.6Euro"


Markus Demleitner

Copyright Notice