Einfache Ausdrücke, Datentypen und Variablen

Overview

Teaching: 50 min
Exercises: 0 min
Questions
  • Wie kann man einfache Ausdrücke in Python ausführen?

  • Was sind Datentypen und Variablen?

Objectives
  • Umgang mit der Python-Konsole

  • Datentypen, Werte und Variablen verstehen

Ganze Zahlen und Kommazahlen

In Programmen muss man immer wieder Dinge berechnen, zum Beispiel Häufigkeiten von Vorkommen von Wörtern. Python kann mit zwei Arten von Zahlen umgehen: ganzen Zahlen (Integer) und Kommazahlen (Float von „Gleitkommazahl“).

Zunächst wollen wir testen, wie die Python-Konsole auf Dateneingaben reagiert. Dafür tippen wir eine x-beliebige Zahl ein und drücken die Eingabetaste Return:

12

Der Python-Interpreter gibt nun folgende Ausgabe als Antwort:

12

Die Python-Konsole berechnet für uns den Wert 12. Das klingt nur so merkwürdig, weil es an ursprünglichen Wert 12 nichts mehr zu berechnen gibt, weshalb Ein- und Ausgabe identisch sind.

Trotzdem haben wir einen vollständigen Ausdruck (in Englisch „Expression“) an Python übergeben, den wir mit der Eingabetaste abgeschlossen haben.

12 lässt sich aber noch anders ausdrücken bzw. berechnen, z. B. durch

6+6

Die Python-Konsole gibt uns das Ergebnis der Operation „+“ zurück, angewendet auf 6 und 6.

12

Zum Verständnis: Wir haben der Python-Konsole das Input 6+6 gegeben und als Output 12 erhalten. Gleichzeitig haben wir der Operation + das Input (6,6) gegeben und als Output 12 erhalten.

Rechenoperationen

Es gibt folgende relevante Rechenoperationen in Python, die Operatoren sind in Klammern mit angebeben.

  1. Addition (+) und Subtraktion (-)
  2. Multiplikation (*), Division (/)
  3. ganzzahlige Division (//), Modulo (%)

+ und - werden zusätzlich als Vorzeichenoperatoren verwendet, wobei wir + in diesem Sinne nicht benutzen werden.

-12

Wie in der Mathematik, haben auch in Python * und / Vorrang vor + und -.

Übung

Was ist die Ausgabe dieses Ausdrucks und warum?

-4*2+10

Lösung

2

Zuerst wird -4*2 ausgewertet, was -8 ergibt. Danach wird mit +10 addiert und das Ergebnis 2 angezeigt.

Klammern können genutzt werden, um die Reihenfolge der Operatoren explizit anzugeben.

-4*(2+10)
-48

Wenn wir dividieren, erhalten wir als Rückgabewert keinen Integer, sondern einen Float:

3/4
0.75

Das gilt auch, wenn der Dividend durch den Divisor teilbar ist und eigentlich eine ganze Zahl anstatt einer Kommazahl zurückgegeben werden könnte.

-10/5
-2.0

Der Operator erzeugt also immer einen Float als Rückggabewert.

Übung

Was berechnen die Operatoren // und % ? Finden Sie es für die folgenden Ausdrücke heraus!

5//2
6//4
9//3
7%4
15%13
4%2

Lösung

  • 5//2 = 2
  • 6//4 = 1
  • 9//3 = 3
  • 7%4 = 3
  • 15%13 = 2
  • 4%2 = 0

Ganzzahlige Division (//) gibt uns das Ergebnis der Division ohne Nachkommastellen als Integer (nicht: Float) zurück. Modulo-Rechnung (%) hingegen gibt uns den Rest der ganzzahligen Division zurück. Das heißt immer dann, wenn a durch b teilbar ist, ist a%b gleich 0. Diese zwei Operationen können in verschiedenen Anwendungsfällen sehr nützlich sein.

Variablen

Wir programmieren (u. a.), um Probleme zu lösen und uns eigene Rechenarbeit zu ersparen. Für komplexe Berechnungen nützt uns die simple Berechnung allein wenig, wir müssen ihr Ergebnis auch zwischenspeichern, um es weiter verwenden zu können. Hierfür gibt es Variablen.

zahl1 = 5
zahl2 = 7

Wir haben 5 in der Variable mit dem Namen zahl1 gespeichert, 7 in zahl2. Die Zuweisung eines Wertes zu einer Variable wird auch assignment genannt.

Was passiert, wenn wir anschließend folgenden Befehl ausführen?

zahl1+zahl2

Python evaluiert die Werte von zahl1 und zahl2 und addiert diese.

12

Und auch dieses Ergebnis können wir wieder in einer Variable speichern:

ergebnis = zahl1+zahl2

Übung

Wie können wir nun das Ergebnis der Addition ansehen? Versuchen Sie es auf der Python-Konsole.

Lösung

Sie müssen den Variablennamen als Ausdruck in die Konsole eingeben:

ergebnis

Variablen können einen leeren Wert annehmen, in denen ihnen der spezielle Wert None zugewiesen wird.

ergebnis = None
ergebnis

Variablen vom Wert None erzeugen keine Ausgabe.

Frage(n)

Was passiert, wenn wir die folgende Zeilen nacheinander ausführen?

zahl1
Zahl2

Lösung

>>> zahl1
5
>>> Zahl2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'Zahl2' is not defined

Was hat das zu bedeuten? Wie können wir das „reparieren“? Was erfahren wir über Variablennamen?

Einfache eingebaute Funktionen

Sogenannte Funktionen haben einen Namen, es können ein odere mehrere Argumente in Klammern angegeben werden und sie liefern einen Wert zurück (mehrere Argumente werden durch Komma getrennt).

Zum Beispiel liefert die eingebaute Funktion mit dem Namen type eine Information über den Typ eines Werts oder Variable.

type(zahl1)
<class 'int'>

Der Rückgabewert zeigt an, dass es sich um eine Ganze Zahl (Integer) handelt.

Im Gegensatz dazu, liefert

type(3.141)
<class 'float'>

einen Rückgabe wert für eine Kommazahl (Float) zurück.

Mit der eingebauten Funktion isinstance(wert, klasse) kann man überprüfen, ob ein Wert bzw. eine Variable einen bestimmten Typ hat. Der Rückgabewert ist dabei vom Typ bool, also ein Wahrheitswert, und kann True oder False sein.

isinstance(3, int)
True
isinstance(3.0, int)
False

Python ist eine dynamisch typisierte Programmiersprache. Das heißt, die gleiche Variable kann unterschiedliche Typen wie Float oder Integer zugewiesen bekommen. Mit type kann man den Typ herausfinden, aber es gibt auch Funktionen um explizit eine Variable zu einem anderen Typ zu überführen („casten“).

pi = int(3.141)
type(pi)
<class 'int'>
pi
3
float(pi)
3.0

Es noch gibt eine Vielzahl weiterer, bereits eingebauter Funktionen in Python. Eine Listen davon finden Sie unter https://docs.python.org/3.7/library/functions.html Einige davon benötigen keine Eingabeargumente, trotzdem müssen in diesem Fall die Klammern mit angegeben werden.

Kommentare und Dokumentation

Kommentieren Sie ihren eigenen Code und dokumentieren Sie somit dessen Funktionsweise. Das erleichtert anderen und auch Ihnen, den Code später noch zu verstehen. Außerdem können auf diese Weise Voraussetzungen Ihres Programms an die Eingabe und eine Darlegung der Form des Outputs dargelegt werden. Kommentare im Code beginnen Sie mit einer #.

Ein Beispiel:

# Das ist ein Kommentar
# This is a comment

Sprache in Python-Skripten

Es ist üblich Kommentare und andere Element des Quelltexts in Englisch zu halten, da sie so für ein breiteres Publikum verständlich sind. Im Rahmen dieses Kurses können Sie das aber ignorieren. Sie sollten lediglich sicherstellen, dass Ihre Mit-Studierenden und Ihr Dozent Sie verstehen.

Kernpunkte

  • Einfache Ausdrücke können durch die interaktive Eingabe in der Python-Konsole ausgeführt werden.

  • Datentypen sind Kategorien von Werten

  • Unterschiedliche Ausdrücke können Werte mit unterschiedliche Datentypen erzeugen

  • Variablen speichern Werte

  • Variablen muss ein Wert zugewiesen werden bevor sie genutzt werden können

  • Variablen können in Ausdrücken benutzt werden.

  • Variablen haben Namen und diese Namen unterscheiden Groß- und Kleinschreibung