Variablen
Die Fähigkeit, Variablen zu ändern, ist eine der mächtigsten Eigenschaften einer Programmiersprache. Ein Name, der sich auf einen Wert bezieht, wird als Variable bezeichnet.
Assignment Anweisung
Eine Assignment Anweisung erzeugt eine neue Variable und gibt ihr einen Wert:
>>> mein_text = 'Und nun zu etwas ganz anderem'
>>> x = 17
>>> pi = 3.1415926535897932
Dieses Beispiel nimmt drei Assignments vor. Die erste weist eine Zeichenkette einer neuen Variablen namens mein_text
zu; die zweite gibt die Ganzzahl 17
an x
; die dritte weist den (ungefähren) Wert von π an pi
zu.
Variablennamen
Programmierer wählen in der Regel aussagekräftige Namen für ihre Variablen, die dokumentieren, wofür die Variable verwendet wird.
Die Namen von Variablen können beliebig lang sein. Es dürfen sowohl Buchstaben als auch Zahlen enthalten sein, aber sie dürfen nicht mit einer Zahl beginnen. Die Verwendung von Großbuchstaben ist zulässig, aber die ausschließliche Verwendung von Kleinbuchstaben für Variablennamen ist üblich.
Das Unterstrich-Zeichen, _
, kann in einem Namen vorkommen. Es wird häufig in Namen mit mehreren Wörtern verwendet, z. B. "ihr_name" oder "luftgeschwindigkeit_der_ungeladenen_teilchen".
Wenn Sie einer Variablen einen unzulässigen Namen geben, erhalten Sie einen Syntaxfehler:
>>> 99luftballons = 'song von nena'
SyntaxError: invalid syntax
>>> mehr@ = 1000000
SyntaxError: invalid syntax
>>> class = 'Fortgeschrittene Theoretische Physik'
SyntaxError: invalid syntax
99luftballons
ist nicht zulässig, weil es mit einer Zahl beginnt. mehr@
ist nicht zulässig, weil es ein unerlaubtes Zeichen, @
, enthält. Aber was ist falsch mit class
?
Es stellt sich heraus, dass class
eines der Keywords (Schlüsselwörter) von Python ist. Der Interpreter verwendet Keywords, um die Struktur des Programms zu erkennen - sie können nicht als Variablennamen verwendet werden.
Python 3 hat die folgenden Keywords:
False |
class |
finally |
is |
return |
None |
continue |
for |
lambda |
try |
True |
def |
from |
nonlocal |
while |
and |
del |
global |
not |
with |
as |
elif |
if |
or |
yield |
assert |
else |
import |
pass |
|
break |
except |
in |
raise |
Ausdrücke und Anweisungen
Ein Ausdruck ist eine Kombination aus Werten, Variablen und Operatoren. Ein Wert allein wird als Ausdruck betrachtet, ebenso wie eine Variable, so dass die folgenden Ausdrücke alle zulässig sind:
>>> 42
42
>>> n
17
>>> n + 25
42
Der Interpreter wertet ihn aus, wenn du einen Ausdruck an der Eingabeaufforderung eingibst, d. h. er findet den Wert des Ausdrucks. n hat in diesem Beispiel den Wert 17, und n + 25 hat den Wert 42.
Eine Anweisung bzw. ein Statement ist eine Code-Einheit, die einen Effekt hat, z. B. das Erzeugen einer Variablen oder das Anzeigen eines Wertes.
>>> n = 17
>>> print(n)
Die erste Zeile ist eine Zuweisungsanweisung, die n
einen Wert zuweist. Die zweite Zeile ist eine Druckanweisung, die den Wert von n
anzeigt.
Wenn du eine Anweisung eingibst, führt der Interpreter sie aus, was bedeutet, dass er das tut, was die Anweisung sagt. Im Allgemeinen haben Anweisungen keine Werte.
Daten-Typen
Zahlen
Zwei Arten von Zahlen werden von Python unterstützt - Integer (ganze Zahlen) und Floats bzw. Fließkommazahlen (Dezimalzahlen).
Um eine Integer zu definieren, verwendest du die folgende Syntax:
meinint = 7
print(meinint)
Um eine Fließkommazahl zu definieren, kannst du eine der folgenden Notationen verwenden:
meinfloat = 7.0
print(meinfloat)
meinfloat = float(7)
print(meinfloat)
Strings
Strings bzw. Zeichenketten werden entweder mit einem einfachen oder einem doppelten Anführungszeichen definiert.
meinstring = 'hallo'
print(meinstring)
meinstring = "hallo"
print(meinstring)
Der Unterschied zwischen den beiden besteht darin, dass die Verwendung von doppelten Anführungszeichen das Einfügen von Apostrophen erleichtert (während diese bei der Verwendung von einfachen Anführungszeichen die Zeichenkette abschließen würden)
meinstring = "Mach dir keine Gedanken über Apostrophe"
print(meinstring)
Bei der Definition von Strings gibt es zusätzliche Variationen, die es einfacher machen, Elemente wie Wagenrücklauf, Backslashes und Unicode-Zeichen einzubeziehen.
Einfache Operatoren können auf Zahlen und Strings ausgeführt werden:
eins = 1
zwei = 2
drei = eins + zwei
print(drei)
hello = "hello"
world = "world"
helloworld = hello + " " + world
print(helloworld)
Zuweisungen können auf mehr als eine Variable in derselben Zeile "gleichzeitig" wie folgt durchgeführt werden.
x, y = 1, 5
print(x,y)
Das Mischen von Operatoren zwischen Zahlen und Strings wird nicht unterstützt:
# Dies wird nicht funktionieren
eins = 1
zwei = 2
hi = "hi"
print(eins + zwei + hi)
Übung
Das Erstellen eines Strings, eines Integers und eines Floats ist das Ziel dieser Übung. Der Strings soll mein_string heißen und das Wort "Hallo" enthalten. Der Float soll mein_float heißen und die Zahl 12,5 enthalten, und der Integer soll mein_int heißen und die Zahl 210 enthalten.
# ändere diesen Code
mein_string = None
mein_float = None
mein_int = None
# Test-Code
if mein_string == "Hallo":
print("String: %s" % mein_string)
if isinstance(mein_float, float) and mein_float == 100.0:
print("Float: %f" % mein_float)
if isinstance(mein_int, int) and mein_int == 250:
print("Integer: %d" % mein_int)
# ändere diesen Code
mein_string = "Hallo"
mein_float = 12.5
mein_int = 210
# Test-Code
if mein_string == "Hallo":
print("String: %s" % mein_string)
if isinstance(mein_float, float) and mein_float == 12.5:
print("Float: %f" % mein_float)
if isinstance(mein_int, int) and mein_int == 210:
print("Integer: %d" % mein_int)
test_object('mein_string', incorrect_msg="Vergiss nicht, `mein_string` auf den korrekten Wert gemäß den Anweisungen zu ändern.")
test_object('mein_float', incorrect_msg="Vergiss nicht, `mein_float` auf den korrekten Wert gemäß den Anweisungen zu ändern.")
test_object('mein_int', incorrect_msg="Vergiss nicht, `mein_int` auf den korrekten Wert gemäß den Anweisungen zu ändern.")
test_output_contains("String: Hallo",no_output_msg= "Vergewissere dich, dass dein String genau wie in der Anleitung beschrieben übereinstimmt.")
test_output_contains("Float: 12.500000",no_output_msg= "Vergewissere dich, dass dein Float genau wie in der Anleitung beschrieben übereinstimmt.")
test_output_contains("Integer: 210",no_output_msg= "Vergewissere dich, dass dein Integer genau wie in der Anleitung beschrieben übereinstimmt.")
success_msg("Tolle Arbeit!")