Daten und Informationen
Lernziele
- Sie können erklären, wie aus Rohdaten Informationen entstehen.
- Sie wissen, für was Dateiendungen beim Computer gut sind.
- ⛔️ Sie kennen die Namen der simplen Datentypen und was für Informationen sie speichern.
- ⛔️ Sie können in einem Pythonprogramm einen Semantikfehler von einem Syntaxfehler unterscheiden.
Dieser Block dreht sich um die Frage: Wie repräsentieren wir die Welt mit 0 und 1, damit wir die Rechenleistung von Computern nutzen können?
Dazu folgendes Beispiel: Überlegen Sie sich, was Sie hier sehen.
LösungDie Rohdaten, die Sie hier sehen, haben keine inhärente Bedeutung. Objektiv existieren eigentlich einfach zwei dunkle Flecken, die vielleicht Ihr Gedächtnis in Schwung bringen, aber die Bedeutung, die Sie eventuell hinein interpretieren, existiert nicht "da draussen" in der Welt.
Information wird daraus erst, wenn Sie sich sicher sind, wie Sie die Daten interpretieren müssen. Ist es eine Zahl oder ein Buchstabe? Je nachdem ist die Bedeutung ganz anders!
Simple Datentypen und Dateiformate
Schauen wir uns damit drei Grundbegriffe an:
- Rohdaten = Letztlich 0 und 1
- Kodierung = Interpretationsregeln - was bedeuten diese Nullen und Einsen in diesem Fall?
- Information = Für Menschen verständliche Daten
Rohdaten ohne Kodierung sind bedeutungslose Nullen und Einsen.
Simple Datentypen
In den allermeisten Programmiersprachen gibt es eine Reihe von simplen Datentypen.
- Ganzzahlen heissen Integer.
- Fliesskommazahlen sind Floats.
- Zeichenketten sind Strings.
- Wahr oder unwahr sind Bools.
Alle diese Datentypen werden im Speicher anders mit Nullen und Einsen repräsentiert.
Wieso gibt es zwei verschiedene Zahlentypen - Integer und Floats? Weil sie unterschiedlich gespeichert werden.
- Integer funktionieren so, wie wir das mit den Lämpchen beim Addierer auch getan haben. (Wobei negative Zahlen eine kleine Komplikation sind.)
- Floats speichern zwei Zahlen ähnlich der wissenschaftlichen Notation.
Datentypen in Python
Wieso mussten Sie sich noch (fast) nie um Datentypen kümmern? Weil Python automatisch den Datentyp einer Variable festlegt und dynamisch anpasst.
Das merken Sie z.B. bei einer Division von zwei Ganzzahlen. Python kreiert bei Divisionen von zwei Ganzzahlen automatisch einen Float (Fliesskommazahl), auch wenn die Division eigentlich restlos aufgehen würde - wie bei der Variable ergebnis in diesem Beispiel.
Dateiendungen
Wenn Sie Informationen abspeichern, müssen Sie also auch abspeichern, wie diese Daten interpretiert werden müssen. Sie kennen das vielleicht von Dateiendungen (oder "Dateierweiterungen", oder "Suffixe") auf Ihrem Computer.
Wieso weiss der Computer, dass eine Datei ein Word-Dokument ist? Weil die Datei mit ".docx" endet, also z.B. "abschlussarbeit.docx". Hätte die Datei keine Dateiendung, wären Sie schön aufgeschmissen!
Bei mir sehe ich keine Dateiendungen!
Man spricht hier vom Dateiformat, das festlegt, wie die Daten in der Datei interpretiert werden müssen. Die Dateiendung signalisiert dem Computer das Dateiformat.
Versuchen wir das mal. Laden Sie sich diese Datei mit einer unbekannten Dateiendung herunter.
Ihr Betriebssystem versucht Ihnen eventuell zu helfen und macht daraus eine ".zip"-Datei, doch das stimmt nicht!
Öffnen Sie diese im Texteditor. Sie werden so etwas sehen:
Pasted image 20231105164519Versuchen Sie mal herauszufinden, wie Sie die Informationen in der Datei anzeigen können!
LösungEs ist eine Word-Datei. Öffnen Sie sie direkt in Word oder fügen Sie die Dateiendung ".docx" am Ende des Dateinamens hinzu.
Semantikfehler
Dass Datentypen in Python trotz automatischer Typisierung existieren und wichtig sind, zeigt folgendes Problem. Spielen Sie mit den Werten der Variablen und versuchen Sie, eine gute Erklärung für die Ergebnisse zu finden!
- Im ersten Beispiel sind zahl1 und zahl2 als Ganzzahlen (Integers) definiert, weil sie ohne Anführungszeichen geschrieben sind. Ein "+" zwischen zwei Ganzzahlen bedeutet --> eine mathematische Addition.
- Im zweiten Beispiel sind zahl1 und zahl2 als Zeichenketten (Strings) definiert wegen der Anführungszeichen. Ein "+" zwischen zwei Zeichenketten bedeutet --> die Zeichen aneinanderhängen.
Das nennt man einen Semantikfehler, den Sie von einem Syntaxfehler unterscheiden können müssen.
Syntax und Syntaxfehler
Die Syntax einer Programmiersprache beschreibt die Regeln für die korrekte Schreibweise von Code.
Ein Syntaxfehler führt dazu, dass der Code nicht ausgeführt werden kann.
Ein Beispiel:
👆 Führen Sie den Code aus und beachten Sie die Fehlermeldung.
- Das erste Anführungszeichen läutet eine Zeichenkette ein, aber das schliessende Anführungszeichen fehlt.
- Der Code wirft einen Fehler.
Syntaxfehler gibt es auch in der normalen Sprache, z.B.
dieser satz, hat viele syntaxfeler!
Semantik und Semantikfehler
Die Semantik beschreibt die Bedeutung eines korrekt geschriebenen Programms oder Ausdrucks. Sie legt fest, was der Code tut und wie er interpretiert wird.
Semantikfehler lassen das Programm laufen, aber es tut nicht das, was eigentlich beabsichtigt war.
Ein zusätzliches Beispiel:
- Der Code läuft ohne Syntaxfehler.
input()erzeugt immer einen String, auch wenn die User Zahlen eingeben.*bedeutet bei Strings: Wiederholung, nicht Multiplikation!- Beispiel: Wenn die User
5eingeben, gibt der Code555aus, nicht15.
Semantikfehler gibt es auch in der normalen Sprache. Oft verwendet wird dieser Satz:
Farblose grüne Ideen schlafen zornig.