Variablen und Ausdrücke¶
Variablen¶
Der am häufigsten verwendete Befehl in Python ist die Zuweisung. Der Python-Code
um eine Vairiable namens x
zu erstellen, die den Wert π
erhalten soll,
lautet:
>>> pi = 3.14159
In Python ist, anders als in vielen anderen Programmiersprachen, weder eine Variablendeklaration noch ein Zeilenendebegrenzer notwendig. Die Zeile wird durch das Ende der Zeile abgeschlossen. Variablen werden automatisch erstellt, wenn sie zum ersten Mal zugewiesen werden.
Bemerkung
In Python sind Variablen Label, die auf Objekte verweisen. Eine beliebige Anzahl von Label können sich auf dasselbe Objekt beziehen, und wenn sich dieses Objekt ändert, ändert sich auch der Wert, auf den sich all diese Variablen beziehen. Um besser zu verstehen, was das bedeutet, seht euch das folgende Beispiel an:
>>> x = [1, 2, 3]
>>> y = x
>>> y[0] = 4
>>> print(x)
[4, 2, 3]
Variablen können sich jedoch auch auf Konstanten beziehen:
>>> x = 1
>>> y = x
>>> z = y
>>> y = 4
>>> print(x,y,z)
1 4 1
In diesem Fall verweisen nach der dritten Zeile x
, y
und z
alle
auf dasselbe unveränderlichee Integer-Objekt mit dem Wert 1
. Die nächste
Zeile, y = 4
, bewirkt, dass y
auf das Integer-Objekt 4
verweist,
dies ändert jedoch nicht die Referenzen von x
oder z
.
Python-Variablen können auf jedes beliebige Objekt gesetzt werden, während in vielen anderen Sprachen Variablen nur im deklarierten Typ gespeichert werden können.
Variablennamen unterscheiden Groß- und Kleinschreibung und können jedes alphanumerische Zeichen sowie Unterstriche enthalten, müssen aber mit einem Buchstaben oder Unterstrich beginnen.
Bemerkung
Wenn ihr einen SyntaxError
erhaltet, prüft, ob der Variablenname ein
Schlüsselwort ist. Schlüsselwörter sind für die Verwendung in
Python-Sprachkonstrukten reserviert, so dass ihr sie nicht zu Variablen
machen könnt. Nach dem Aufruf von help() könnt ihr keywords
eingeben, um die Schlüsselworte zu erhalten:
>>> help()
...
help> keywords
Here is a list of the Python keywords. Enter any keyword to get more help.
False class from or
None continue global pass
True def if raise
and del import return
as elif in try
assert else is while
async except lambda with
await finally nonlocal yield
break for not
Bemerkung
Ihr könnt mit einem Variablennamen eingebaute (engl.: built-in) Funktionen,
Typen und andere Objekte überschreiben, sodass der Zugriff anschließend nur
noch über das builtins-Modul erfolgen kann.
Daher sollten diese Variablennamen nie verwendet werden. Eine Liste der
__builtins__
-Objekte erhaltet ihr mit:
>>> dir(__builtins__)
['ArithmeticError', 'AssertionError', 'AttributeError', 'BaseException', 'BaseExceptionGroup', 'BlockingIOError', 'BrokenPipeError', 'BufferError', 'BytesWarning', 'ChildProcessError', 'ConnectionAbortedError', 'ConnectionError', 'ConnectionRefusedError', 'ConnectionResetError', 'DeprecationWarning', 'EOFError', 'Ellipsis', 'EncodingWarning', 'EnvironmentError', 'Exception', 'ExceptionGroup', 'False', 'FileExistsError', 'FileNotFoundError', 'FloatingPointError', 'FutureWarning', 'GeneratorExit', 'IOError', 'ImportError', 'ImportWarning', 'IndentationError', 'IndexError', 'InterruptedError', 'IsADirectoryError', 'KeyError', 'KeyboardInterrupt', 'LookupError', 'MemoryError', 'ModuleNotFoundError', 'NameError', 'None', 'NotADirectoryError', 'NotImplemented', 'NotImplementedError', 'OSError', 'OverflowError', 'PendingDeprecationWarning', 'PermissionError', 'ProcessLookupError', 'RecursionError', 'ReferenceError', 'ResourceWarning', 'RuntimeError', 'RuntimeWarning', 'StopAsyncIteration', 'StopIteration', 'SyntaxError', 'SyntaxWarning', 'SystemError', 'SystemExit', 'TabError', 'TimeoutError', 'True', 'TypeError', 'UnboundLocalError', 'UnicodeDecodeError', 'UnicodeEncodeError', 'UnicodeError', 'UnicodeTranslateError', 'UnicodeWarning', 'UserWarning', 'ValueError', 'Warning', 'ZeroDivisionError', '__build_class__', '__debug__', '__doc__', '__import__', '__loader__', '__name__', '__package__', '__spec__', 'abs', 'aiter', 'all', 'anext', 'any', 'ascii', 'bin', 'bool', 'breakpoint', 'bytearray', 'bytes', 'callable', 'chr', 'classmethod', 'compile', 'complex', 'copyright', 'credits', 'delattr', 'dict', 'dir', 'divmod', 'enumerate', 'eval', 'exec', 'exit', 'filter', 'float', 'format', 'frozenset', 'getattr', 'globals', 'hasattr', 'hash', 'help', 'hex', 'id', 'input', 'int', 'isinstance', 'issubclass', 'iter', 'len', 'license', 'list', 'locals', 'map', 'max', 'memoryview', 'min', 'next', 'object', 'oct', 'open', 'ord', 'pow', 'print', 'property', 'quit', 'range', 'repr', 'reversed', 'round', 'set', 'setattr', 'slice', 'sorted', 'staticmethod', 'str', 'sum', 'super', 'tuple', 'type', 'vars', 'zip']
Ausdrücke¶
Python unterstützt arithmetische und ähnliche Ausdrücke. Der folgende Code
berechnet den Durchschnitt von x
und y
und speichert das Ergebnis in der
Variablen z
:
>>> x = 1
>>> y = 2
>>> z = (x + y) / 2
Bemerkung
Arithmetische Operatoren, die nur ganze Zahlen verwenden, geben nicht immer
eine ganze Zahl zurück. Ab Python 3 gibt die Division eine Fließkommazahl
zurück. Wenn die traditionelle Ganzzahldivision mit einer Ganzzahl
zurückgegeben werden soll, könnt ihr stattdessen //
verwenden.