Homepage von Papa

Projekt Taschenrechner

Datentypen in Python

Wie versprochen, gehen wir es langsam an. Kopiert die nachfolgenden Zeilen in den Editor Eurer Wahl (rechts oben im Quellcode solltet Ihr einen Button finden) und lasst den Code ausführen:

zahl_1 = 12
zahl_2 = 3

summe = zahl_1 + zahl_2
differenz = zahl_1 - zahl_2
produkt = zahl_1 * zahl_2
quotient = zahl_1 / zahl_2

print('Summe     = ', summe)
print('Differenz = ', differenz)
print('Produkt   = ', produkt)
print('Quotient  = ', quotient)

Bei mir kommt dann folgendes heraus:

Was haben wir hier vor uns? In den Zeilen 1 und 2 im Code sind zwei Variablen deklariert, diese sind beide vom Typ "Integer" (int). Integer-Werte sind Ganzzahlen, also Zahlen ohne Komma.

Woher weiß ich, dass die Datentypen vom Typ int sind? Mit der Funktion type() kann man sich den Datentyp einer Variable ausgeben lassen:

type(name_der_variablen)

Erweitern wir den Code entsprechend, um das auszuprobieren:

zahl_1 = 12
zahl_2 = 3

print('Datentyp zahl_1 =', type(zahl_1))
print('Datentyp zahl_2 =', type(zahl_2))

summe = zahl_1 + zahl_2
differenz = zahl_1 - zahl_2
produkt = zahl_1 * zahl_2
quotient = zahl_1 / zahl_2

print('Summe     = ', summe, " ist vom Typ : ", type(summe))
print('Differenz = ', differenz, " ist vom Typ : ", type(differenz))
print('Produkt    = ', produkt, " ist vom Typ : ", type(produkt))
print('Quotient  = ', quotient, " ist vom Typ : ", type(quotient))

Die Ausgabe dazu lautet:

Was gibt es also noch für Datentypen?

Wenn wir uns die Ausgabe noch einmal betrachten, sehen wir einen Punkt im Wert des Quotienten (4.0). Die Variable "quotient" ist also vom Typ "float", übersetzt Fließl;kommazahl. Wobei das Komma hier kein Komma, sondern ein Punkt ist (das ist in den meisten anglo-amerikanischen Regionen der Fall und da die Syntax von Python auf Englisch beruht, ist das nur konsequent).

Probieren wir es aus. Machen wir uns den Spaß und kopieren nachfolgenden Code in den Editor:

string_1 = '1'
string_2 = "zwei"
zahl_mit_komma = 5,2
zahl_mit_punkt = 5.2
zahl_mit_komma_2 = (5,2)
liste_1 = ["Apfel", "Birne", "Zitrone"]
set_1 = {"Apfel", "Badewanne"}
dict_1 = {"deutsch":"Apfel", "english":"apple"}
boolean_1 = True

print('Datentyp string_1 =', type(string_1))
print('Datentyp string_2 =', type(string_2))
print('Datentyp zahl_mit_komma =', type(zahl_mit_komma))
print('Datentyp zahl_mit_komma_2 =', type(zahl_mit_komma_2))
print('Datentyp zahl_mit_punkt =', type(zahl_mit_punkt))
print('Datentyp liste_1 =', type(liste_1))
print('Datentyp set_1 =', type(set_1))
print('Datentyp dict_1 =', type(dict_1))
print('Datentyp boolean_1 =', type(boolean_1))

Schauen wir auf die Ausgabe:

Wir sehen die Typen

"str", "tuple", "float", "list", "set", "dict" und "bool".

"str" steht für String, also Zeichenketten, die Buchstaben und Zahlen beinhalten können. Diese werden mit den einfachen oder doppelten Anführungsstrichen ausgedrückt.

Die Zahl "5,2" wird nicht als Zahl, sondern als "tuple" gespeichert. Ein Tupel ist eine Kombination aus mehreren Einträgen, in unserem Fall 2, nämlich die "5" und die "2". Wenn wir

zahl_mit_komma = 5,'zwei' oder zahl_mit_komma = 5,'zwei', 2

schreiben würden, wäre es also immer noch ein Tupel.

Dann haben wir noch die Typen "list" für Listen, "set" für Sammlungen, "dict" für Dictionary und "bool" für Boolean. Im Verlauf brauchen wir die Listen und die Booleans, daher gehe ich auf die anderen Typen hier nicht weiter ein.

Listen sind ganz praktisch, hier können wir logisch zusammengehörende Informationen ablegen, diese um neue Elemente erweitern oder bestehende Elemente löschen.

Dazu ein kurzer Ausflug:

zu_kaufen = ["Brot","Milch","Eier","Käse","Wrust"]
print("Liste 1 = ", zu_kaufen)
zu_kaufen.append("Bananen")
print("Liste 2 = ", zu_kaufen)
zu_kaufen.sort()
print("Liste 3 = ", zu_kaufen)
zu_kaufen.remove("Wrust")
print("Liste 4 = ", zu_kaufen)
zu_kaufen.insert(4,"Wurst")
print("Liste 5 = ", zu_kaufen)
zu_kaufen.pop()
print("Liste 6 = ", zu_kaufen)
zu_kaufen.pop(3)
print("Liste 7 = ", zu_kaufen)
print("Eintrag an 2. Stelle = ", zu_kaufen[1])
zu_kaufen.sort(reverse = True)
print("Liste 8 = ", zu_kaufen)

Schauen wir auf die Ausgabe:

Zeile 3: zu_kaufen.append("Bananen") # --> fügt ein Element am Ende an
Zeile 5: zu_kaufen.sort() # --> sortiert die Liste, geht nur bei gleichen Datentypen!
Zeile 7: zu_kaufen.remove("Wrust") # --> löscht das erste Element, das dem Eintrag entspricht
Zeile 9: zu_kaufen.insert(4,"Wurst") # --> fügt das Element an der 5. Stelle hinzu (Beginn bei 0!)
Zeile 11: zu_kaufen.pop() # --> löscht das letzte Element
Zeile 13: zu_kaufen.pop(3) # --> löscht das 4. Element der Liste
Zeile 15: zu_kaufen[1] # --> liefert das 2. Element der Liste
Zeile 17: zu_kaufen.sort(reverse = True) # --> sortiert absteigend

So viel zu den Listen. Es gäbe zwar noch wesentlich mehr zu den Listen zu sagen, das sprengt aber hier den Rahmen.

Den Typ "bool" kennen wir ja auch schon aus der Steuerung unseres Spiels:

Die Variable "spielen" dient uns also zur Unterscheidung und ist damit so etwas wie ein Schalter.

Zurück zum Rechnen, wie oben beschrieben klappt die Rechnung nur mit Variablen vom Typ Integer oder Float. Strings können nicht berechnet werden. Der nachfolgende Code erzeugt einen Fehler, die beiden Variablen sind als Strings deklariert:

zahl_1 = '12'
zahl_2 = "3"

print('Datentyp zahl_1 =', type(zahl_1))
print('Datentyp zahl_2 =', type(zahl_2))

summe = zahl_1 + zahl_2
differenz = zahl_1 - zahl_2
produkt = zahl_1 * zahl_2
quotient = zahl_1 / zahl_2

print('Summe     = ', summe, " ist vom Typ : ", type(summe))
print('Differenz = ', differenz, " ist vom Typ : ", type(differenz))
print('Produkt    = ', produkt, " ist vom Typ : ", type(produkt))
print('Quotient  = ', quotient, " ist vom Typ : ", type(quotient))

Die Ausgabe dazu:

Einzig die Addition funktioniert für Strings, es führt aber zu einer nicht wirklich erwünschten Ausgabe. Kommentieren wir die anderen Rechnungen mal aus:

Man sieht, das Ergebnis ist "123", wobei es nicht die Zahl 123 ist, sondern die Zeichenkette "12" und das Zeichen "3" hintereinander ist.

Klarer wird es mit folgender Kombination:

Das Ergebnis ist jetzt der String "12drei". Damit kann natürlich nicht gerechnet werden.

Um die Berechnung mit dem Typ Float zu demonstrieren, können wir aus der "12" eine "12.0" machen, das Ergebnis ist dann:

Damit sind jetzt alle Ergebnisvariablen auch vom Typ "Float". Das soll es dann auch zum Thema Datentypen gewesen sein.

  • Zurück
  • Weiter

Inhaltsverzeichnis:

1. Vorwort
2. Das Projekt
3. Vorarbeiten
4. Projekt Snake
4.1. Der Funktionsumfang
4.2. Die Planung der Umsetzung
4.3. Das Coden
4.3.1. Datentypen in Python
4.3.2. Eingabe von Zahlen
4.3.3. Rechnen mit der Funktion eval()
4.3.4. Das Fenster mit PySimpleGui
4.3.5. Die Button
5. Abschluss

© by Papa. Die Seite ist online seit 2020.

Menu

  • Startseite
  • Projekte
    • Übersicht aller Projekte
    • Nachbau Snake
    • Taschenrechner
  • Helferlein
    • Übersicht Hilfprogramme
    • Fonts in pygame
    • Quellcode nach HTML
    • Text nach HTML
  • Impressum
  • Disclaimer

Modal content goes here