Inhaltsverzeichnis
Grundlegende Datentypen, Variablen - die Pythonshell
Python ist eine Skriptsprache, d.h. der Pythoninterpreter übersetzt in einem Pythonprogramm immer einen Befehl in Maschinencod und führt ihn anschließend aus. Einzelne Pythonbefehle hingegen lassen sich auch in der Pythonshell ausführen.
Um die Pythonshell in Windows zu starten, gibt man in die Eingabeaufforderung den Befehl python
ein. Alternativ kann man aus dem Startmenü den Menüeintrag Python wählen.
Man kann den Pythoninterpreter aber auch aufrufen, indem man das Programm Idle startet. Idle ist die Entwicklungsumgebung, mit der man Pythonprogramme schreiben kann (siehe ). Der Vorteil der Pythonshell in Idle ist, dass man die ganze Sitzung speichern kann.
Trennzeichen
Pythonbefehle werden durch den Zeilenumbruch voneinander getrennt. Sobald ich also in der Pythonshell <ENTER> drücke wird der Befehl ausgeführt. Im Beispiel wird in der Pythonshell der Befehl print("Hallo Welt")
eingegeben und danach die <ENTER>-Taste gedrückt.
>>> print("Hallo Welt!") Hallo Welt!
Will man trotzdem mehrere Befehle in eine Zeile schreiben, so muss man diese durch ein Semikolon voneinander trennen.
>>> print("Erste Zeile!"); print("Zweite Zeile!") Erste Zeile! Zweite Zeile!
Ein weiteres Trennzeichen ist der Doppelpunkt. Mit dem Doppelpunkt werden Codeblöcke abgegrenzt. Nach einem Doppelpunkt müssen die folgenden Befehle, die zum selben Codeblock gehören, um die selbe Tiefe eingerückt werden.
>>> a = 1 >>> b = 2 >>> if a < b: print("a ist kleiner als b.") a ist kleiner als b.
Teste die Beispiele in der Pythonshell!
Kommentare
Kommentare beginnen in Python hinter dem Zeichen #. Alles, was dahinter steht, wird bis zum Zeilenende vom Pythoninterpreter ignoriert. Mit Kommentaren wird der Quellcode für den Programmierer und für andere besser lesbar.
>>> print("Hallo Welt") #gibt "Hallo Welt" aus! Hallo Welt!
Teste das Beispiel!
Datentypen
In Python unterscheidet man die folgenden grundlegenden Datentypen:
- Ganze Zahlen (int)
Beispiele:-3 ; 4 ; 35
Python kennt beliebig große ganze Zahlen. Der Wertebereich ist also nicht eingeschränkt.
- Dezimalzahlen (float)
Beispiele:1.0, 2.234, 0.12e17, 0.23E-3
Bei Dezimalzahlen in Python wird der Punkt und nicht das Komma benutzt. Zum Abtrennen des Exponenten kann man e oder E benutzen. Nach dem e folgt der Exponent. Es sind auch negative Exponenten möglich.
- Zeichenketten, Strings (str)
Beispiele:"Zeichenkette 1" 'Zeichenkette 2' """Zeichenkette über mehrere Zeilen"""
Zeichenketten (Strings) können in Python in einfache'
oder in doppelte"
Hochkommas geklammert werden. Eine mehrzeilige Zeichenkette beginnt und endet mit drei Doppelten Hochkommas"""
. Weitere Informationen zu Zeichenketten findet man um Abschnitt Strings. - Wahrheitswerte (bool)
Wahrheitswerte können in Python nur die folgenden beiden Werte annehmen:True, False
Variablen und Wertzuweisung
Variablen sind Platzhalter für Werte. In Python muss der Name einer Variablen mit einen Buchstaben oder einem Unterstrich beginnen. Ansonsten sind in Variablennamen Buchstaben (seit Python 3 auch Umlaute und das ß), Zahlen und der Unterstrich erlaubt. Die folgenden Python-Schlüsselworte sind nicht als Variablennamen erlaubt:
and, assert, break, class, continue, def, del, elif, else, except, exec, finally, for, from, global, if, import, in, is, lambda, not, or, pass, print,raise, return, try, while, yield
Mit dem Operator =
kann man in Python Variablen Werte zuweisen. Python ist eine dynamisch typisierte Sprache, d.h. der Typ der Variablen wird bei der Zuweisung durch den Datentyp des zugewiesenen Wertes festgelegt.
Beispiele für Wertzuweisungen:
n = 5 #Datentyp int x = 5.3 #Datentyp float zeichenkette = "Hallo Welt!" #Datentyp str antwort = True #Datentyp bool
Operatoren
Neben dem Zuweisungsoperator gibt es in Python noch weitere Operatoren. Wir unterscheiden die folgenden Operatorentypen:
Arithmetische Operatoren
Operator | Wirkung bei | ||
---|---|---|---|
int | float | str | |
+ | Addition | Addition | Verkettung |
- | Subtraktion | Subtraktion | |
* | Multiplikation | Multiplikation | |
/ | Division | Division | |
// | ganzzahlige Division | ganzzahlige Division | |
% | ganzzahliger Rest (Modulo) | Rest | |
** | Potenzieren | Potenzieren, Radizieren |
Vergleichsoperatoren
Operator | Wirkung |
---|---|
> | größer |
< | kleiner |
>= | größer gleich |
<= | kleiner gleich |
== | gleich |
!= | ungleich |
Logische Operatoren
Operator | Wirkung |
---|---|
A and B | ist wahr, wenn A und B wahr sind |
A or B | ist wahr, wenn A oder B oder beide wahr sind |
not A | ist wahr, wenn A nicht wahr (falsch) ist |
Typumwandlungen
Bei vielen Rechnungen mit Pythonausdrücken ergibt sich automatisch der korrekte Datentyp.
Beispiele:
>>> a = 5 # Datentyp int >>> b = 4 # Datentyp int >>> a/b # wird umgewandelt in Datentyp float 1.25 >>> a > b # Datentyp bool True
In manchen Fällen ist Python allerdings nicht in der Lage aus der Rechnung einen eindeutigen Datentyp zu ermitteln. Dann muss man mit Hilfe der Funktionen int()
, float()
und str()
einzelne Operanten in den gewünschten Datentyp umwandeln.
Beispiele:
>>> 5 + "5" # Fehlermeldung ... >>> str(5) + "5" # der erste Ausdruck wird in eine Zeichenkette umgewandelt '55' >>> 5 + int("5") # der zweite Ausdruck wird in eine ganze Zahl umgewandelt 10 >>>
Teste die Beispiele in der Pythonshell!
Feststellung des Datentyps eines Ausdrucks
Eigentlich lässt sich der Datentyp eines Ergebnisses in der Pythonshell immer recht gut erkennen. Ganze Zahlen (int) werden einfach als Zahlen dargestellt. Dezimalzahlen (float) erkennt man am Dezimalpunkt und Zeichenketten stehen in Anführungsstrichen. In Python gibt es aber noch mehr und auch komplexere Datentypen, die nicht so einfach erkennbar sind. In diesem Fall kann man die Funktion type()
verwenden um den Datentyp zu ermitteln.
>>> 5*"A" 'AAAAA' >>> type(5*"A") <class 'str'> >>> 5/7 0.7142857142857143 >>> type(5/7) <class 'float'> >>> 5>7 False >>> type(5>7) <class 'bool'>
Erklärvideo
Im folgenden Video werden die Inhalte dieser Seite nochmal erklärt.
Vertiefung
Im Lehrbuch inf-Schule wird das Thema nochmal vertieft:
Aufgaben
Aufgabe 1:
Berechne die folgenden Ausdrücke in der Pythonshell (Idle). Verwende dazu die oben angegebenen Operatoren. Speichere die Shellsitzung als Textdatei ab (File $\rightarrow$ Save as $\rightarrow$ Textfile)! Gib anschließend in der Textdatei den Datentyp des Ergebnisses an!
a) $35 \cdot 11$ $\qquad$ b) $2.76 \cdot 26$ $\qquad$ c) $\dfrac{35}{11}$
d) $\dfrac{35}{11}$ (ganzzahlig) $\qquad$ e) $35^{256}$ $\qquad$ f) $\sqrt{35}$
g) $\sqrt[5]{8^3}$ $\qquad$ h) 'Hallo ' + "Welt!" $\qquad$ i) $4 \cdot$ "ABC"
j) $17-1>8$ $\qquad$ k) Rest bei der Divison von 35 durch 8
Aufgabe 2:
Öffne eine Shellsitzuung mit Idle und führe die folgenden Wertzuweisungen durch:
>>> n=7 >>> m=9 >>> x=3.6 >>> y=7.1 >>> s="Hallo" >>> t="10" >>> w=True
Führe in der Shell die folgenden Rechnungen aus:
n*m n*x n*t m+y m+t s+t n>x and w y < t
Überlege dir jeweils vorher, welchen Datentyp das Ergebnis haben wird. Speichere die Sitzung wieder als Textdatei ab.
Bei einigen Rechnungen ergeben sich Fehlermeldungen. Überlege dir, wie man mit Hilfe der Funktionen int()
, float()
und str()
aus den fehlerhaften, korrekte Rechnungen machen könnte und probiere dies aus.