Datentypen und Datenstrukturen, mit denen in der Informatik oft gearbeitet wird:
wichtige Arten von Zahlen in der Informatik:
In Programmiersprachen werden hauptsächlich integer und floats verwendet
In Datenbanken oder CSV-Dateien kommt auch der Typ decimal vor
Achtung Rundungsfehler: Einige Zahlen können nicht genau als Kommazahlen repräsentiert werden, sie werden immer gerundet
z.B.: 1/3
Im Binärsystem können auch Zahlen wie 0.1
oder 0.2
nicht genau repräsentiert werden - hier gibt es ganz kleine Abweichungen
Beispiel: 0.3 - 0.2
ergibt in Programmiersprachen nicht exakt 0.1
, sondern meist 0.09999999999999998
Typen wie integer oder float haben üblicherweise eine vorgegebene Genauigkeit
Beispiele:
Speicherung als Zahl oder als Text?
Wie speichert man Kreditkartennummern, Postleitzahlen, Telefonnummern, ...?
Kreditkartennummern, Postleitzahlen, Telefonnummern, etc sollten als Text gespeichert werden
Gründe:
/
, Leerzeichen, ...) enthaltenGrundregel: wenn mit einer Zahl nicht sinnvoll gerechet werden kann, sollte sie als String gespeichert werden.
Boolescher Wert = Ja/Nein bzw wahr/falsch - Wert
Haben entweder einen eigenen Datentyp oder werden durch die Werte 1
und 0
repräsentiert
Werden üblicherweise durch die Ausdrücke true
und false
(oder True
und False
) bezeichnet
Ein String - auch Zeichenkette genannt - repräsentiert Text
Heutzutage können in Strings meist alle Unicode-Zeichen verwendet werden; in manchen Fällen ist die Zeichenauswahl allerdings eingeschränkt - z.B. auf ASCII
Strings werden üblicherweise mit einfachen oder doppelten Anführungszeichen begrenzt
Gültiger String in Python, JavaScript, JSON:
"Hello, world!"
Gültiger String in Python, JavaScript, SQL:
'Hello, world!'
Problem: Wie schreiben wir Zeichen wie z.B. "
innerhalb eines Strings?
Ungültig:
"He said: "hi!""
Lösungen in Python, JavaScript, JSON:
"He said: \"hi!\""
Die Zeichenfolge \"
wird wie ein einzelnes Anführungszeichen interpretiert
Lösung in CSV (und ähnlich in SQL):
"He said: ""hi!"""
Die Zeichenfolge ""
wird wie ein einzelnes gewöhnliches Anführungszeichen interpretiert
Weitere Escape-Sequenzen in Programmiersprachen:
Zeilenumbruch in 1 Zeile (Linux, Mac):
"line 1\nline 2"
Zeilenumbruch in 1 Zeile (Windows):
"line 1\r\nline 2"
Einzelner Backslash:
"C:\\programs\\firefox"
Mit null
wird ausgedrückt, dass ein bestimmter Wert fehlt oder unbekannt ist
JSON = JavaScript Object Notation: Datenformat, das insbesondere in der Webentwicklung wichtig ist.
Der Ausdruck null
symbolisiert, dass ein Wert fehlt oder unbekannt ist
null
Strings werden in JSON mit doppelten Anführungszeichen begrenzt
(In JavaScript wären als Alternative auch einfache Anführungszeichen erlaubt)
Ein Array beinhaltet eine Abfolge von anderen Objekten
["Anne", "Bob", "Chris"]
[2, 3, 5, 7, 11]
Ein Objekt beinhaltet benannte Einträge
{
"firstName": "Thomas",
"lastName": "Edison",
"birthYear": 1847,
"living": false
}
(In JavaScript könnten die Namen der Einträge auch ohne Anführungszeichen stehen, z.B. firstName
)
CSV (comma-separated values) ist ein Textdateiformat, das tabellarische Daten beinhaltet
ISO,Country,Capital,Languages
AD,Andorra,Andorra la Vella,"ES,FR"
AE,United Arab Emirates,Abu Dhabi,"AE,fa,en,hi,ur"
AF,Afghanistan,Kabul,"AF,tk"
Es gibt keinen definitiven Standard
Varianten des CSV Formats können sich durch die folgenden Aspekte unterscheiden:
Das Format ist älter als die Standards - in der Praxis gibt es viele Variationen
Regeln aus RFC 4180 und dem W3C-Standard
"
) innerhalb eines Felds vorkommt, muss es verdoppelt werden (""
)In Anlehnung an CSV: tab-separated values
Vorteile: eventuell besser zu lesen, Kommas müssen nicht escaped werden
Nachteile: nicht Standardisiert, weniger verbreitet
ISO Country Capital Languages
AD Andorra Andorra la Vella ES,FR
AE United Arab Emirates Abu Dhabi AE,fa,en,hi,ur
AF Afghanistan Kabul AF,tk
Ãœbung: selbst in VS Code einfache CSV-Datei anlegen und in Tabellenansicht begutachten (Icon open in preview rechts oben in der Ansicht)
XML = Extensible Markup Language
Sprache, die viele Ähnlichkeiten zu HTML hat
War lange Zeit eine sehr wichtige Standardsprache für Datenaustausch; wird zunehmend durch JSON ersetzt
Beispiel
<person>
<name>Adam</name>
<age unit="years">40</age>
</person>