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.

Pythonschell in Windows 10

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.

Idle in Windows 10

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:

https://www.inf-schule.de/programmierung/imperativeprogrammierung/konzepteimp/variablen

https://www.inf-schule.de/programmierung/imperativeprogrammierung/konzepteimp/datentypen

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 Save as Textfile)! Gib anschließend in der Textdatei den Datentyp des Ergebnisses an!

a) b) c)

d) (ganzzahlig) e) f)

g) h) 'Hallo ' + "Welt!" i) "ABC"

j) 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.

>> Lösungen

>> Algorithmen und ihre Grundstrukturen