2  Variablen & Datentypen

2.1 Variablen

Eine Variable kann man sich als Aufbewahrungsbox vorstellen in welche Daten abegelegt werden können.

Der Name der Variable kann beliebig gewählt werden. Der Vorgang bei dem die Daten in die Aufbewahrungsbox gelegt werden, nennt man Zuweisung.

variable = "Wert"

2.2 Datentypen

Im Grunde geht es bei der Programmierung bzw. bei der Nutzung eines Computers darum mit Daten zu arbeiten bzw. diese zu verarbeiten. Unsere beiden Computerräume werden als EDV-1 und EDV-2 abgekürzt. EDV steht für Elektronische Datenverarbeitung. Auch der Begriff Informatik ist auch 2 Begriffen zusammengesetzt: Information und Automatik. Daher steht der Begriff für die automatisierte Informationsverarbeitung.

In der ersten Klasse haben wir uns mit dem Thema Information und Daten beschäftigt. Wir haben gelernt, dass ein Computer Information in einer geeigneten Art und Weise darstellt, damit diese in Form von Daten weiterverarbeitet werden kann. Dabei haben wir die Begriffe Codierung und Dekodierung gelernt.

Wir haben gesehen, dass es nötig ist die richtige Kodierung zu wählen, damit aus Daten wieder Information enstehen kann. Je nach der Art von Information, kann man diese unterschiedlich weiterverarbeiten. Zum Beispiel wird man Daten die als Text kodiert wurden mit einem Textverarbeitungsprogramm öffnen. Dort kann man die Information bearbeiten und wenn die Änderungen gespeichert werden, werden diese wieder in Daten (0/1) kodiert und gespeichtert.


Aber nun zur Programmierung: Für jede Programmiersprache ist es wichtig, dass klar ist welche Art von Daten wir innerhalb eines Programmes verarbeiten. Die Art der Daten wird als Datentyp bezeichnet. Ein Datentyp gibt an, welche Art von Information verarbeitet wird. Lass uns folgende Beispiele anschauen wo zwei unterschiedlieche Datentypen verwendet werden:

# Multiplikation von 2 Zahlen
3 * 3
9

Hier werden 2 Zahlen miteinander multipliziert. Logisch, dass das Ergebnis wieder eine Zahl ist. Was aber passiert wenn wir eine Zahl mit Text multiplizieren:

# Multiplikation einer Zahl mit Text
3 * "HTL Kuchl "
'HTL Kuchl HTL Kuchl HTL Kuchl '

In diesem Beispiel wird der Text 3*mal hintereinander ausgegeben, also vervielfacht. Es funktioniert aber nicht einen Text durch eine Zahl zu dividieren. Dies würde in Python folgenden Fehler liefern:

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
Cell In[3], line 2
      1 # Division einer Zahl durch einen Text
----> 2 3 / "HTL Kuchl "

TypeError: unsupported operand type(s) for /: 'int' and 'str'

Dieser Fehler teilt einem mit, dass die Division für int (=Ganzzahlen) und str (=Text) nicht unterstützt wird. Es gibt als Operationen die für Datentypen und auch Kombinationen von Datentypen möglich sind. Für jede gültige Operation die mit unterschiedlichen Datentypen durchgeführt wird, ist auch festgelegt welcher Datentyp dabei herauskommt. Mit dem Befehl type(Daten) kann man sich den Datentyp, den Python im Hintergrund verwendet, anzeigen lassen.

Schauen wir uns dies noch einmal für das Text * Zahl Beispiel an.

# Datentyp der Zahl
type(3)
int

3 wird der Datentyp int zugewiesen.

# Datentyp vom Text
type("HTL Kuchl ")
str

"HTL Kuchl " ist ein str.

# Multiplikation einer Zahl mit Text
type(3 * "HTL Kuchl ")
str

Multipliziert man beide entsteht wieder ein str. Die wichtigsten Datentypen, oft elementare Datentypen bezeichnet, findet ihr in der nachfolgenden Tabelle.

Datentyp Typbezeichner Daten
ganze Zahl int Daten vom Typ “ganze Zahl” sind alle Zahlen …, -2, -1, 0, 1, 2, … bis jeweils zu einer in der Programmiersprache festgelegten Unter- bzw. Obergrenze.
Gleitkommazahl float Daten vom Typ “Gleitkommazahl” sind Dezimalzahlen wie z. B. 4.2 oder 0.03. Für solche Gleitkommazahlen gibt es eine Reihe von Schreibweisen.
Wahrheitswert bool Daten vom Typ “Wahrheitswert” sind die Wahrheitswerte “wahr” und “falsch”.
Zeichenkette str Daten vom Typ “Zeichenkette” sind Folgen von Zeichen wie z. B. ‘Hallo!’ oder “Mir geht es gut. Dir auch?”.
Tupel tuple Daten vom Typ “Tupel” sind Zusammenfassungen von mehreren Daten zu einer Einheit. Beispiele für Tupel sind Paare wie (12, 44) oder Tripel wie (21, ‘Januar’, 2012). Tupel sind unveränderlich (immutable).
Liste list Daten vom Typ “Liste” sind ebenfalls Zusammenfassungen von mehreren Daten zu einer Einheit wie z. B. eine Zahlenliste [1, 2, 3, 4, 5]. Bei einer Liste können z.B. - im Gegensatz zum Tupel - weitere Daten eingefügt werden.

2.3 Aufgabe

2.3.1 Aufgabe Variablen

Die Aufgabe wurde von (RaspberryPi-Foundation) übernommen und abgeändert. Lizensiert mit

Erstelle in Visual Studio Code eine Python Datei mit dem Namen variablen_01.py und kopiere den untenstehenden Code in die Datei.

2.3.2 Code analysieren

  1. Führe den Code aus und schau was passiert!
substantiv = "Auto"
adverb = "sanft"        
adjektiv = "laut"
print(f"Das {substantiv} war {adjektiv}, als es {adverb} zur Schule ging")
substantiv = "Zebra"
adverb = "aggressiv"
adjektiv = "riesig"
print(f "Das {substantiv} war {adjektiv}, als es {adverb} zur Schule ging")
  1. Nimm ein Blatt Papier und beantworte folgende Fragen:
  • In welcher Zeile wird die Variable adjektiv initialisiert?
  • In welcher Zeile wird der Variable adverb ein neuer Wert zugewiesen?
  • Wann wird die Variable substantiv zum ersten Mal verwendet?
  • Gibt es einen Unterschied zwischen dem Code in Zeile 4 und Zeile 8?
  • Entfernen Sie in Zeile 4 das f nach print und vor dem Anführungszeichen. Führen Sie den Code aus und schreiben Sie auf, was passiert.
  • ! Denken Sie daran, das f wieder einzusetzen, wenn Sie fertig sind.
  • Was denken Sie, wofür das f verwendet wird? Dieser Artikel realpython.com/python-f-strings/ könnte zum Verständnis beitragen.
  • Entfernen Sie in Zeile 4 die geschweiften Klammern {}, die das substantiv umgeben, und führen Sie den Code erneut aus. Was passiert? -! Denken Sie daran, die {} wieder einzufügen, wenn Sie fertig sind.
  • Warum wird bei der Ausführung des Codes nicht folgendes angezeigt: Das Auto Zebra ein lauter Riese war laut riesig, als es sanft aggressiv zur Schule ging

2.3.2.1 Code verändern

  • Ändere alle Werte in beiden Vorkommen von Nomen, Adjektiv und Adverb zu etwas anderem. Du kannst im Internet nach Listen von Nomen, Adjektiven und Adverbien suchen, wenn du Ideen brauchst.

Denke daran, die Anführungszeichen um die Zeichenketten beizubehalten. Diese sind wichtig für den Datentyp string.

  • Erstelle eine neue Variable namens proper_noun und initialisiere sie mit London. Denke über die Platzierung der Variable nach, wenn sie initialisiert wird. Wo werden alle anderen Variablen initialisiert? Platziere sie dort.

  • Ersetze das Wort school durch {proper_noun} in beiden print-Anweisungen. Achte darauf, keine wichtige Syntax zu löschen. Schaue dir den Code in Zeile 8 an, um sicherzustellen, dass du immer noch die richtigen Klammern und Anführungszeichen hast.

  • Mache eine Änderung an deinem Code, die sicherstellt, dass die zweite print-Anweisung ein anderes proper_noun anzeigt. Denke daran, dass Variablen später im Code etwas anderes zugewiesen werden können. Denke sorgfältig über die Platzierung nach.

  • Füge am Ende des Codes einen völlig neuen albernen Satz hinzu. Du kannst dieselben Variablen verwenden, aber denke dir einen anderen Satz aus. Schaue dir die Syntax der anderen print-Anweisungen genau an und nutze diese, um Fehler in deinem Code zu finden.

2.3.3 Code erstellen:

Hier ist die Übersetzung im Markdown-Format:

Erstelle deine eigene alberne Geschichte, indem du den Code aus dieser Aktivität als Leitfaden verwendest. Es gibt viele „Lückentext“-Geschichten online, die du als Inspiration nutzen kannst.

  1. Schreibe eine alberne Geschichte
  2. Entscheide, welche Wörter leer bleiben sollen
  3. Weise den Lücken Variablen zu
  4. Schreibe das Programm

Du musst nicht unbedingt ein Adverb, Adjektiv oder Nomen verwenden. Du könntest Wörter wie beliebtes_Restaurant oder oeffentliches_Verkehrsmittel verwenden. Sei so kreativ wie möglich, je alberner, desto besser! ```

Viel Spaß beim Erstellen deiner Geschichte! 😊