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

In [2]:
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

In [3]:
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

In [4]:
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.

In [5]:
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
In [6]:
%%Mooc Video
Out[6]:

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)

In [7]:
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

In [8]:
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

In [9]:
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

In [10]:
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

In [11]:
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

In [12]:
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
In [13]:
%%Mooc Video
Out[13]: