NB_01_Datenstrukturen¶
(c) 2026 Technische Hochschule Augsburg - Fakultät für Informatik - Prof.Dr.Nik Klever - Impressum
Grundlagen¶
Variablen¶
Variablen sind die Grundlage jeglicher Programmiersprache. Alle Daten, Objekte, zusammengesetzte Objekte, Funktionen, Klassen werden in Variablen abgespeichert um sie anschliessend wieder verwenden zu können.
Als Variablennamen können beliebige Namen verwendet werden bis auf die unten aufgeführten reservierten Schlüsselwörter.
Eine Variable wird sowohl über eine Zuweisung
variablenname = wert
als auch über eine Funktions- (def) oder Klassendefinition (class) festgelegt.
Einfache Datentypen¶
Integer, Float, Complex¶
a = 3
b = 3.141
c = complex(3,4)
print("Integer: {}\nFloat: {}\nComplex: {}".format(a,b,c))
Integer: 3 Float: 3.141 Complex: (3+4j)
Dezimal-, Oktal-, Hexadezimal-, Binär-Zahlensystem¶
d = 512
b = bin(d)
o = oct(d)
h = hex(d)
print("dezimal: {}\nbinär: {}\noktal: {}\nhexadezimal:{}".format(d,b,o,h))
dezimal: 512 binär: 0b1000000000 oktal: 0o1000 hexadezimal:0x200
Zeichendarstellung¶
Character¶
a = 'a'
b = chr(0x62) # Umwandlung einer hexadezimalen Zahl in einen Character
c = hex(ord('b')) # hexadezimale Zahlendarstellung des Characters 'a'
print("a={}\nb={}\nc={}".format(a,b,c))
a=a b=b c=0x62
ASCII vs. Unicode¶
In der ursprünglichen (und immer noch vielfach verwendeten) ASCII Zeichendarstellung sind nur 128 Zeichen bzw. in der erweiterten Form 256 Zeichen darstellbar. Erst mit Unicode können die unterschiedlichsten Zeichen aller Sprachen auf der Erde dargestellt werden. Die aktuelle Version des Unicode Standards enthält 128172 Zeichen.
a = 'ä'
b = chr(0x1F609) # Umwandlung einer hexadezimalen Zahl in einen Character
c = hex(ord('ß')) # hexadezimale Zahlendarstellung des Characters 'ß'
print("a={}\nb={}\nc={}".format(a,b,c))
a=ä b=😉 c=0xdf
%%Mooc Video
Zusammengesetzte Datentypen¶
Sequenzen: Tupel, Strings, Listen¶
Sequenz-Operationen und -Methoden¶
- x in s
- x not in s
- s + t
- s * n
- s[i]
- s[i:j]
- len(s)
- min(s)
- max(s)
- s.index(x[, i[, j]]) # '[, j]' bzw. '[, i[, j]]' bedeutet hier "optional" (Backus-Naur-Form)
- s.count(x)
Teilsequenz (Slice)¶
a = "abcdefg"
b = a[1:4]
c = a[-4:-1]
print("a={}\nb={}\nc={}".format(a,b,c))
a=abcdefg b=bcd c=def
Tupel - nicht veränderliche (immutable) Sequenz¶
a = (1, "abc", 3.141)
b = (2, a[2])
c = (3, complex(2,3))
print("a={}\nb={}\nc={}".format(a,b,c))
a=(1, 'abc', 3.141) b=(2, 3.141) c=(3, (2+3j))
String - nicht veränderliche (immutable) Sequenz von Charactern¶
a = "abcdefg"
b = "123456"+a
c = "-+"*10
print("a={}\nb={}\nc={}".format(a,b,c))
a=abcdefg b=123456abcdefg c=-+-+-+-+-+-+-+-+-+-+
String-Methoden¶
Beachte, dass alle eckigen Klammern in den folgenden Ausdrücken "optional" bedeuten (Backus-Naur-Form)
- str.count(sub[, start[, end]])
- str.endswith(suffix[, start[, end]])
- str.find(sub[, start[, end]])
- str.index(sub[, start[, end]])
- str.isalnum()
- str.isdigit()
- str.islower()
- str.isspace()
- str.join(iterable)
- str.partition(sep)
- str.replace(old, new[, count])
- str.split(sep=None, maxsplit=-1)
- str.startswith(prefix[, start[, end]])
- str.strip([chars])
Listen - veränderliche (mutable) Sequenz¶
a = [1,2,3,4,11,12,13,14]
b = ["a","b","c","...","x","y","z"]
c = list(range(0,10,2))
print("a={}\nb={}\nc={}".format(a,b,c))
a=[1, 2, 3, 4, 11, 12, 13, 14] b=['a', 'b', 'c', '...', 'x', 'y', 'z'] c=[0, 2, 4, 6, 8]
Methoden für veränderliche Sequenzen¶
- s[i] = x
- s[i:j] = t
- del s[i:j]
- s.append(x)
- s.clear()
- s.copy()
- s.extend(t) or s += t
- s.insert(i, x)
- s.pop([i]) # '[i]' bedeutet hier wieder optional (s.o.)
- s.remove(x)
- s.reverse()
Sets¶
a = {1,2,3,4,9,10,11,12}
b = {"abc",3,4,5,6,7,8,9,10,"xyz"}
c = a & b
print("a={}\nb={}\nc={}".format(a,b,c))
a={1, 2, 3, 4, 9, 10, 11, 12}
b={3, 4, 5, 6, 7, 8, 9, 10, 'abc', 'xyz'}
c={9, 10, 3, 4}
Dictionaries¶
a = dict(Strasse="Emil-Eigner-Straße 1",Plz="86720",Ort="Nördlingen")
b = {"preis":3.56,"artikelnr":36757,"anzahl":4,"beschreibung":"Stecker"}
c = a["Ort"]
print("a={}\nb={}\nc={}".format(a,b,c))
a={'Strasse': 'Emil-Eigner-Straße 1', 'Plz': '86720', 'Ort': 'Nördlingen'}
b={'preis': 3.56, 'artikelnr': 36757, 'anzahl': 4, 'beschreibung': 'Stecker'}
c=Nördlingen
Dictionary-Methoden¶
- dict.keys()
- dict.items()
- dict.values()
- dict.get(key[, default]) # '[, default]' bedeutet hier wieder optional (s.o.)
- dict.setdefault(key[, default]) # '[, default]' bedeutet hier wieder optional (s.o.)
- dict.update([other]) # [other] bedeutet hier entweder ein anderes Dictionary oder ein iterierbares Objekt
%%Mooc Video