Datentypen#

In Python stehen Ihnen, wie auch in anderen Programmiersprachen, für unterschiedliche Zwecke entsprechende Datentypen zur Verfügung. Jedes Objekt ist von einem bestimmten (Daten)Typ.

Überblick über Standardtypen#

Wir verwenden die englischen Namen der Standardtypen, da Sie diese auch so in der (interaktiven) Hilfe und beim Suchen im Internet finden.

  • Boolean: die logischen Wahrheitswerte True und False

  • Numeric Types: Integers (ganze, auch negative Zahlen), Floats (Dezimalzahlen), komplexe Zahlen

  • Sequences: Lists (Listen von anderen Daten), Tuples (unveränderbare Listen), Strings (Wörter inkl. Leerzeichen, Zeilenumbruch und Sonderzeichen)

  • Sets: Mengen

  • Dictionaries: Schlüssel-Objekt-Paare wie z. B. {“AT”: 1, “CH”:2, “DE”:3}

  • Functions: Input zu Output Transformationen

Link: Python standard types documentation

Boolean#

Eine Abfrage über größer (gleich), (un)gleich oder kleiner (gleich) liefert als Ergebnis ein Objekt vom Typ Boolean:

3 > 2 # greater
True
3 > 3
False
3 >= 3 # greater or equal
True
3 == 3.0 # equal
True
42 != 42 # not equal
False

Auch Wörter (Strings, siehe weiter unten) können verglcihen werden:

"Emil" == "emil"
False

Von welchem Typ ein Objejekt ist, können Sie mit der eingebauten Funktion type bestimmen:

type(True)
bool

Numeric Types#

Ganze Zahlen: …, -3, -2, -1, 0, 1, 2, 3, … sind vom Typ int.

n = 12
type(n)
int

Fließkommazahlen (=Dezimalzahlen) sind von Typ float.

x = 12.3
type(x)
float

Komplexe Zahlen bestehen aus einen Realteil (int oder float) und einem Imaginärteil. Die imaginäre Einheit wird mit j geschrieben und ohne Malzeichen * an den Imaginärteil multipliziert.

z = 12.4 + 3.7j
type(z)
complex

Rechenoperationen:

x + 2*n
36.3
x - z
(-0.09999999999999964-3.7j)
12/5
2.4

vgl. Modulo-Rechnung

12//5
2

Achtung: Potenzieren mit ** und nicht mit ^

x**2
151.29000000000002

Sequences#

  • können Daten unterschiedlichen Typs enthalten

  • haben geordnete Elemente, Indizierung:

    • mit eckigen Klammern

    • beginnend bei 0

    • von Index a inklusive bis b exklusive mit a:b

    • der letzte Eintrag hat den Index -1, der vorletzte Eintrag hat den Index -2, …

Lists:

  • verwenden eckige Klammern

  • sind veränderbar

numbers = [12, 12.3, 5, -8, 23]
numbers
[12, 12.3, 5, -8, 23]
type(numbers)
list
len(numbers) # Länge = Anzahl an Elementen
5
numbers[0] # erstes Element
12
numbers[-1] # letztes Element
23
# erstes Element neu setzen:
numbers[0] = 10
numbers
[10, 12.3, 5, -8, 23]

Slicing: nicht nur einzelne Elemente, sondern ganze Unterlisten “herausschneiden”

numbers[2:4]
[5, -8]

Achtung: Oben wars das Element mit Index 2 (das dritte Element) inklusive und das Element mit Index 4 (das fünfte Element) exklusive!

numbers[1:] # open end
[12.3, 5, -8, 23]
numbers[:3] # beginning from start
[10, 12.3, 5]

Anfügen ans Ende der Liste:

numbers.append(-3)
numbers
[10, 12.3, 5, -8, 23, -3]

Sortieren:

numbers.sort() # aufsteigend sortieren, mit Option reverse=True absteigend
numbers
[-8, -3, 5, 10, 12.3, 23]

Achtung: + und * bewirken Aneinanderkettung

numbers + numbers
[-8, -3, 5, 10, 12.3, 23, -8, -3, 5, 10, 12.3, 23]
3*numbers
[-8, -3, 5, 10, 12.3, 23, -8, -3, 5, 10, 12.3, 23, -8, -3, 5, 10, 12.3, 23]

Sie können überprüfen, ob ein Objekt in einer Liste vorkommt.

7 in [2, 3, 4, 5, 6, 7, 8, 9, 7]  # incuded in 
True

Tipp: list comprehension

[x**2 for x in numbers if x > 0]
[25, 100, 151.29000000000002, 529]

Tuples:

  • verwenden runde Klammern

  • sind nicht veränderbar

t = (3, 2, 5)
type(t)
tuple
# results in TypeError: 'tuple' object does not support item assignment
# t[1] = 10

Strings:

Wörter, Buchstaben und Wortketten, inkl. Sonderzeichen

  • einfache oder doppelte Anführungszeichen, dieselben zu Beginn und am Ende

  • veränderbar

  • Zeilenumbruch mit \n

s1 = 'Hello \n'
s2 = "World!"
s1 + s2
'Hello \nWorld!'
print(s1 + s2)
Hello 
World!

Formatierte Ausgabe:

n = 12
print("Die Wurzel aus {:d} ist circa {:8.5f}".format(n, n**0.5))
# Variante:
print("Die Wurzel aus %d ist circa %8.5f" %(n, n**0.5))
Die Wurzel aus 12 ist circa  3.46410
Die Wurzel aus 12 ist circa  3.46410