# Grundlegende Datentypen und Operationen¶

## Numerische Typen¶

In [ ]:

    # Ganzzahlen (Integers)

    a = 42
    b = 23
    print(a)
    print(b)
    print(a + b)

In [ ]:

    # Fließkommazahlen (Floats)

    pi = 3.14159
    e = 2.71828
    print(pi)
    print(type(pi))
    print(e)
    print(pi * e)

In [ ]:

    # Implizite Umwandlung von numerischen Typen

    i = 3
    f = 1.5
    summe = a + f
    print(i, f, summe)
    print(type(e))
    z = 1
    n = 6
    print(z / n)

In [ ]:

    # Grundrechenarten

    # Integer
    print(1 + 1)
    print(1_000 - 1)
    print(12 * 12)  # Vorsicht: Asterisk ("Sternchen"), nicht x)
    print(64 / 8)

    # Floats
    print(0.5 + 3.3)
    print(1.99 - 0.99)
    print(20.0 * 1.19)
    print(1.0 / 3.0)

In [ ]:

    # X hoch Y

    x = 8
    x2 = x ** 2
    print(x2)
    print(x ** 3)
    print(pow(x, 3))

    print(x ** e)
    print(pow(x, e))   # pow akzeptiert integer und floats

In [ ]:

    # Modulo

    x = 10
    y = 3
    rest = x % 3
    print(rest)
    print(type(rest))

# Strings¶

In [ ]:

    s = "Dies ist ein String!"
    print(s)
    s2 = 'Man kann einfache oder doppelte Anführungszeichen verwenden.'
    print(s2)
    s3a = 'Innerhalb der Anführungszeichen kann man den jeweils "anderen Typ" verwenden'
    print(s3a)
    s3b = "Oder 'andersherum'."
    print(s3b)
    s4 = "Alternativ kann man eine Backslash als \"Escape\"-Zeichen verwenden"
    print(s4)
    s5 = "String-Literale" ", die direkt hintereinander" ", durch Leerzeichen getrennt, stehen" "werden zusammengefügt."
    print(s5)
    s6 = ("Mit Klammerung klappt das auch "
          "über mehrere Zeilen "
          "hinweg")
    print(s6)

In [ ]:

    # Längere Strings

    long_string = """Dies ist ein langer String ("triple quoted string").
    Er kann Zeilenumbrüche enthalten.

    Und Leerzeilen.

    Und auch 'einfache' oder "doppelte" Anführungszeichen.

    Er endet mit drei weiteren Anführungszeichen des gleichen Typs.
    """
    print(long_string)
    print(repr(long_string))

In [ ]:

    # Escape Sequenzen

    # Zeilenumbrüche und Tabs
    print("Erste Zeile\r\nZweite Zeile")  # Zeilenumbruch nach Windows-Art
    print("Eine Zeile\nNoch eine Zeile")  # Rest der Welt ;-)
    print("Eins\tZwei\tDrei")
    print("1\t2\t3")

    # Null und Hexadezimal- und Unicode-Sequenzen
    print(repr("Dieser String enthält ein\0Null-Zeichen"))
    print("Hexadezimal-Codes können wir druckbare (e.g. '\x40') und nicht druckbare Zeichen (e.g. \x7F) verwendet werden.")
    print('\u2764')  # Unicode

In [ ]:

    # String-Operationen

    s1 = "Dies ist der erste String."
    s2 = "Und dies der zweite."
    s3 = s1 + s2
    print(s3)
    s4 = "Ich habe es dir schon dreimal gesagt! "
    print(s4 * 3)

In [ ]:

    klein = "schrei nicht so laut!"
    print(klein.upper())
    print("hallo" == "HALLO".lower())
    print("hallo" == "Hallo".lower())
    print("straße".upper() == "STRASSE")

In [ ]:

    hallo = "Hallo"
    print(hallo)
    print(hallo[1])
    print(hallo[0] + 'e' + hallo[2:])

In [ ]:

    # Aber das geht nicht!:

    hallo[1] = 'e'