2. Unterrichtsblock

Python Variablen

Variablen sind Container zum Speichern von Datenwerten.

Variablen erstellen

Python hat keinen Befehl zum Deklarieren einer Variablen.

Eine Variable wird in dem Moment erstellt, in dem Sie ihr zum ersten Mal einen Wert zuweisen.

x = 5
y = "Peter"
print(x)
print(y)

Variablen müssen nicht mit einem bestimmten Typ deklariert werden und können sogar den Typ ändern, nachdem sie festgelegt wurden.

x = 4        # x ist vom Typ int
x = "Servus" # x ist nun vom Typ str
print(x)

Casting

Möchte man den Datentyp einer Variablen spezifizieren, kann dies durch Casting erfolgen.

x = str(3)    # x wird '3' sein
y = int(3)    # y wird 3 sein
z = float(3)  # z wird 3.0 sein

Den Datentypen ermitteln

Den Datentyp einer Variablen erhält man mit der type()Funktion.

x = 5
y = "Apfel"
print(type(x))
print(type(y)) 

In einer anderen Unterrichtseinheit gehen wir mehr auf Datentypen und Casting ein.

Einfache oder doppelte Anführungszeichen?

String-Variablen können entweder mit einfachen oder doppelten Anführungszeichen deklariert werden:

x = "Zwetschge"
# ist das selbe wie
x = 'Zwetschge'

Groß-/Kleinschreibung beachten

Bei Variablennamen wird zwischen Groß- und Kleinschreibung unterschieden.

Dadurch werden zwei Variablen erstellt:

a = 4
A = "Servus"
#A wird a nicht überschreiben

Variablennamen

Eine Variable kann einen kurzen Namen (wie x und y) oder einen aussagekräftigeren Namen (Alter, Autoname, Gesamtvolumen) haben. Regeln für Python-Variablen:

  • Ein Variablenname muss mit einem Buchstaben oder dem Unterstrich beginnen
  • Ein Variablenname darf nicht mit einer Zahl beginnen
  • Ein Variablenname darf nur alphanumerische Zeichen und Unterstriche (Az, 0-9 und _ ) enthalten.
  • Bei Variablennamen wird zwischen Groß- und Kleinschreibung unterschieden (Alter, Alter und Alter sind drei verschiedene Variablen)
  • Ein Variablenname darf keines der Python-Schlüsselwörter sein .
# Zulässige Variablennamen:
meinevar = "Apfel"
meine_var = "Apfel"
_meine_var = "Apfel"
meineVar = "Apfel"
MEINEVAR = "Apfel"
meinevar2 = "Apfel"
# Unzulässige Variablennamen:
2meinevar = "Apfel"
meine-var = "Apfel"
meine var = "Apfel"
print = "Apfel"
if = "Apfel"

Hinweis: Denke daran, dass bei Variablennamen zwischen Groß- und Kleinschreibung unterschieden wird

Variablennamen mit mehreren Wörtern

Variablennamen mit mehr als einem Wort können schwer lesbar sein. Es gibt mehrere Techniken, die verwendet werden können, um Variablen lesbarer zu machen:

Camel Case

Jedes Wort, außer dem ersten, beginnt mit einem Großbuchstaben:

meinVariablenName = "Peter"

Pascal Case

Jedes Wort beginnt mit einem Großbuchstaben:

MeinVariablenName = "Peter"

Snake Case

Jedes Wort wird durch einen Unterstrich getrennt:

mein_variablen_name = "Peter"

Viele Werte in mehreren Variablen speichern

Mit Python kann man mehreren Variablen innerhalb einer Zeile Werte zuweisen:

x, y, z = "Apfel", "Birne", "Zwetschge"
print(x)
print(y)
print(z)

Hinweis: Hierbei ist sicherzustellen, dass die Anzahl der Variablen mit der Anzahl der Werte übereinstimmt, sonst erhält man eine Fehlermeldung.

Ein Wert für mehrere Variablen

Und man kann mehreren Variablen in einer Zeile denselben Wert zuweisen :

x = y = z = "Butterbreze"
print(x)
print(y)
print(z)

Entpacken / Extrahieren einer Sammlung

Wenn man eine Sammlung von Werten in einer Liste, einem Tupel usw. hat, kann man mit Python die Werte in Variablen extrahieren. Diesen Vorgang nennt man unpacking .

# Liste entpacken:
brotzeit = ["Semmel", "Essiggurke", "Leberkas"]
x, y, z = brotzeit
print(x)
print(y)
print(z)

Über das Entpacken lernen wir im Unterrichtsblock zu Tupeln mehr.

Variablen ausgeben

Die Python- print()-Funktion wird oft verwendet, um Variablen auszugeben.

x = "Ich lerne Python"
print(x)

Mit der print()-Funktion lassen sich auch mehrere Variablen, getrennt durch ein Komma ausgeben.

x = "Python "
y = "ist "
z = "toll"
print(x, y, z)

Man kann den + Operator auch verwenden, um mehrere Variablen auszugeben:

x = "Python "
y = "ist "
z = "toll"
print(x + y + z)

Zu beachten ist das Leerzeichen nach "Python "und "ist ", ohne die Leerzeichen wäre das Ergebnis „Pythonisttoll“.

Bei Zahlen fungiert das + Zeichen als mathematischer Operator:

x = 5
y = 10
print(x + y)

Wenn Sie in der print()Funktion versuchen, eine Zeichenfolge und eine Zahl mit dem + Operator zu kombinieren, gibt Python einen Fehler aus:

x = 5
y = "Peter"
print(x + y)

Der beste Weg, mehrere Variablen in der print() Funktion auszugeben besteht darin, sie durch Kommas zu trennen, da diese unterschiedliche Datentypen unterstützen:

x = 5
y = "Peter"
print(x, y)

Python Casting

Es kann vorkommen, dass man einen Typ für eine Variable angeben möchte. Dies kann durch „Casting“ erfolgen. Python ist eine objektorientierte Sprache und verwendet als solche Klassen, um Datentypen zu definieren, einschließlich ihrer primitiven Typen.

Das Casting in Python erfolgt daher über Konstruktorfunktionen:

  • int() – konstruiert eine ganze Zahl aus einem ganzzahligen Literal, einem Float-Literal (durch Entfernen aller Dezimalstellen) oder einem String-Literal (vorausgesetzt, der String repräsentiert eine ganze Zahl)
  • float() – konstruiert eine Float-Zahl aus einem Integer-Literal, einem Float-Literal oder einem String-Literal (vorausgesetzt, der String repräsentiert einen Float oder eine ganze Zahl)
  • str() – konstruiert einen String aus einer Vielzahl von Datentypen, einschließlich Strings, Integer-Literalen und Float-Literalen
# Integer (Ganzzahlen):
x = int(1)   # x wird 1 sein
y = int(2.8) # y wird 2 sein
z = int("3") # z wird 3 sein
 
# Floats (Kommazahlen):
x = float(1)     # x wird 1.0 sein
y = float(2.8)   # y wird 2.8 sein
z = float("3")   # z wird 3.0 sein
w = float("4.2") # w wird 4.2 sein

# Strings (Zeichenketten)
x = str("s1") # x wird 's1' sein
y = str(2)    # y wird '2' sein
z = str(3.0)  # z wird '3.0' sein

Aufgabe – Variablentypen

Teste die o.g. Codebeispiele und beobachte, wie Python mit verschiedenen Datentypen umgeht:

1. Grundlagen testen

Nutze die Beispiele aus dem Code:

  • int(), float(), str() mit verschiedenen Eingabewerten
  • Beobachte, wie sich die Werte verändern

2. Eigene Beispiele ergänzen

Erstelle eigene Variablen mit:

  • negativen Zahlen (-5, -2.3)
  • Dezimalzahlen als Strings ("5.7")
  • Kombinationen wie str(float(3))

3. Typen überprüfen

Nutze die Funktion type() um den Typ der Variablen zu prüfen:

x = float("3.5")
print(type(x))  # Ausgabe: <class 'float'>

4. Typumwandlung experimentieren

Was passiert, wenn du versuchst, einen ungültigen String in eine Zahl umzuwandeln?

x = int("Hund")  # Was passiert hier?

Erkläre, warum ein Fehler entsteht und wie man ihn vermeiden kann.

Python Datentypen

Bei der Programmierung ist der Datentyp ein wichtiges Konzept. Variablen können Daten unterschiedlichen Typs speichern, und unterschiedliche Typen können unterschiedliche Dinge tun.

Python hat standardmäßig die folgenden Datentypen in diesen Kategorien integriert:

Texttyp:str
Numerische Typen:intfloatcomplex
Sequenztypen:listtuplerange
Zuordnungstyp:dict
Set-Typen:set,frozenset
Boolescher Typ:bool
Binäre Typen:bytesbytearraymemoryview
Keine Typ:NoneType

Abrufen des Datentyps

Man kann den Datentyp eines beliebigen Objekts erhalten, indem man die type()Funktion verwendet:

# Ausgabe des Datentyps der Variablen x:
x = 5
print(type(x))

Einstellen des Datentyps

In Python wird der Datentyp gesetzt, wenn Sie einer Variablen einen Wert zuweisen:

BeispielDatentyp
x = „Hallo Welt“str
x = 20int
x = 20.5float
x = 1jcomplex
x = [„pfannenkuchen“, „dampfnudel“, „kaiserschmarrn“]list
x = („pfannenkuchen“, „dampfnudel“, „kaiserschmarrn“)tuple
x = range(6)range
x = {„name“ : „Peter“, „alter“ : 36}dict
x = {„pfannenkuchen“, „dampfnudel“, „kaiserschmarrn“}set
x = frozenset({„pfannenkuchen“, „dampfnudel“, „kaiserschmarrn“})frozenset
x = Truebool
x = b“Hallo“bytes
x = bytearray(5)bytearray
x = memoryview(bytes(5))memoryview
x = NoneNoneType

Festlegen des spezifischen Datentyps

Wenn der Datentyp angegeben werden soll, kann die folgende Konstruktorfunktion verwendet werden:

BeispielDatentyp
x = str(„Hallo Welt“)str
x = int(20)int
x = float(20.5)float
x = complex(1j)complex
x = list((pfannenkuchen“, „dampfnudel“, „kaiserschmarrn))list
x = tuple((pfannenkuchen“, „dampfnudel“, „kaiserschmarrn))tuple
x = range(6)range
x = dict(name=“Peter“, alter=36)dict
x = set((pfannenkuchen“, „dampfnudel“, „kaiserschmarrn))set
x = frozenset((pfannenkuchen“, „dampfnudel“, „kaiserschmarrn))frozenset
x = bool(5)bool
x = bytes(5)bytes
x = bytearray(5)bytearray
x = memoryview(bytes(5))memoryview

Aufgabe – Datentypen

1. Datentypen testen

Nutze die Tabelle mit den Beispielvariablen und führe jeden Code aus. Verwende die type()-Funktion, um den Datentyp jeder Variable auszugeben.

Beispiel:

x = str("Hallo Welt")
print(type(x))  # Ausgabe: <class 'str'>

2. Eigene Beispiele ergänzen

Erstelle zu jedem Datentyp ein eigenes Beispiel. Nutze dabei verschiedene Werte, z. B. negative Zahlen, Dezimalzahlen, leere Strings, Listen mit gemischten Typen usw.

Beispiel für list:

meine_liste = [1, "Hund", 3.5]
print(type(meine_liste))

3. Typumwandlung ausprobieren

Teste, ob du bestimmte Typen ineinander umwandeln kannst. Was passiert, wenn du z. B. einen String in eine Zahl umwandeln willst?

Beispiel:

x = "5.5"
y = float(x)  # funktioniert
z = int(x)    # funktioniert nicht – warum?

Erkläre, warum manche Umwandlungen funktionieren und andere nicht.

4. Mini-Quiz

Beantworte folgende Fragen:

  1. Welcher Datentyp eignet sich für eine Liste von Tiernamen?
  2. Was ist der Unterschied zwischen set und list?
  3. Warum kann man True als int verwenden?

Python Zahlen

Es gibt drei numerische Typen in Python:

  • int
  • float
  • complex

Variablen numerischer Typen werden erstellt, wenn man ihnen einen Wert zuweist:

x = 1    # int
y = 2.8  # float
z = 1j   # complex

# Man verwendet die Funktion type(), um den Typ eines beliebigen Objekts in Python zu überprüfen:

print(type(x))
print(type(y))
print(type(z))

Aufgabe

  1. Führe den o.g. Code aus und lasse dir die Datentypen ausgeben.
  2. Was passiert, wenn du versuchst, eine komplexe Zahl in einen int-Typ umzuwandeln? Probiere es aus und erkläre das Ergebnis.

Int (Ganzzahl)

int oder Integer ist eine ganze Zahl, positiv oder negativ, ohne Dezimalstellen und unbegrenzter Länge.

# Ganze Zahlen:

x = 1
y = 35656222554887711
z = -3255522

print(type(x))
print(type(y))
print(type(z))

Aufgabe

  1. Führe den o.g. Code aus und lasse dir die Datentypen ausgeben.
  2. Eigene Ganzzahlen testen: Erstelle drei weitere Variablen mit unterschiedlichen Ganzzahlen:
    • eine sehr kleine Zahl (z. B. 0 oder -1)
    • eine große Zahl mit vielen Stellen
    • eine mathematische Berechnung (z. B. 5 * 1000)
    • Gib jeweils den Wert und den Typ aus.
  3. Typvergleich mit anderen Datentypen: Erstelle eine float– und eine str-Variable mit dem gleichen Wert wie x (also z. B. 1.0 und "1"). Vergleiche die Typen und erkläre, worin sich die Variablen unterscheiden – obwohl sie ähnlich aussehen.

float (Kommazahlen)

float oder „Gleitkommazahl“ ist eine Zahl, positiv oder negativ, die eine oder mehrere Dezimalstellen enthält.

# Floats:

x = 1.10
y = 1.0
z = -35.59

print(type(x))
print(type(y))
print(type(z))

Aufgabe

  1. Führe den o.g. Code aus und lasse dir die Datentypen ausgeben.
  2. Teste, ob du einen String wie "4.7" in einen Float umwandeln kannst.
  3. Was passiert, wenn du versuchst, einen nicht-numerischen String wie "Hund" in einen Float umzuwandeln? Erkläre den Fehler und wie man ihn vermeiden kann.

Float können auch wissenschaftliche Zahlen mit einem „e“ sein, um die Potenz von 10 anzuzeigen.

Schwimmer:

# Floats:

x = 35e3
y = 12E4
z = -87.7e100

print(type(x))
print(type(y))
print(type(z))

Aufgabe

  1. Führe den o.g. Code aus und lasse dir die Datentypen ausgeben.
  2. Was bedeuten diese Zahlen in „normaler“ Schreibweise?

complex (komplexe Zahl)

Eine komplexe Zahl complex besteht aus einem reellen Realteil und einem Imaginärteil. Der Imaginärteil ist eine reelle Zahl, die mit der imaginären Einheit j multipliziert wird. Das Symbol j wird als imaginäre Einheit bezeichnet. Komplexe Zahlen schreibt man mit einem „j“ als Imaginärteil.

# Komplexe Zahl:

x = 3+5j
y = 5j
z = -5j

print(type(x))
print(type(y))
print(type(z))

Solltest du nicht mit komplexen Zahlen vertraut sein, kannst du diesen Abschnitt gefahrlos überspringen. Er behandelt nichts, was für das weitere Erlernen von Python vorausgesetzt würde und ist auch nicht prüfungsrelevant.

Typkonvertierung

Man kann mit den Methoden int()float(), und complex() von einem Typ in einen anderen konvertieren:

# Konvertieren von einem Typ in einen anderen:

x = 1    # int
y = 2.8  # float
z = 1j   # complex

# Konvertieren von int zu float:
a = float(x)

# Konvertieren von float zu int:
b = int(y)

#Konvertieren von int zu complex:
c = complex(x)

print(a)
print(b)
print(c)

print(type(a))
print(type(b))
print(type(c))

Hinweis: Man kann komplexe Zahlen nicht in einen anderen Zahlentyp umwandeln.

Zufallszahl

Python hat keine random()Funktion, um eine Zufallszahl zu erstellen, aber Python hat ein eingebautes Modul namens random, das verwendet werden kann, um Zufallszahlen zu erstellen:

# Importieren des Zufallsmoduls und Ausgabe einer Zufallszahl zwischen 1 und 9:

import random

print(random.randrange(1, 10))

Aufgabe

  1. Führe den o.g. Codes aus, um ein Gefühl hierfür zu bekommen.
  2. Der Code erzeugt eine Zufallszahl zwischen 1 und 9 – also inklusive 1, aber ohne die 10.
    • Ändere den Code so, dass auch die 10 als mögliche Zahl ausgegeben werden kann.  Was musst du dafür an randrange() ändern?
    • Teste, was passiert, wenn du random.randrange(10, 1) verwendest. Erkläre, warum ein Fehler entsteht und wie man die Funktion korrekt verwendet.

Aufgaben

Erstellen Sie eine Variable und geben Sie sie aus:

  • Erstellen Sie zwei Variablen, eine mit Ihrem Namen und eine mit Ihrem Alter, und geben Sie beide mit der print()-Funktion aus.

Variablentyp ändern:

  • Erstellen Sie eine Variable mit einem Initialwert als Zahl und ändern Sie dann deren Typ zu einem String. Geben Sie den neuen Wert aus.

Casting von Variablen:

  • Verwenden Sie Casting, um eine Zahl als String zu speichern, und überprüfen Sie den Datentyp mittels der type()-Funktion.

Unterschiedliche Anführungszeichen verwenden:

  • Deklarieren Sie zwei String-Variablen, eine mit einfachen und eine mit doppelten Anführungszeichen, und geben Sie sie aus.

Groß- und Kleinschreibung von Variablennamen:

  • Erstellen Sie zwei Variablen mit denselben Buchstaben, eine groß und eine klein, und weisen Sie ihnen verschiedene Werte zu. Geben Sie die Variablen aus, um den Unterschied zu erkennen.

Erstellen Sie Variablennamen mit Camel Case, Pascal Case und Snake Case:

  • Verwenden Sie verschiedene Konventionen zur Benennung, um drei Variablen mit demselben Wert zu erstellen, und geben Sie sie aus.

Mehreren Variablen in einer Zeile zuweisen:

  • Weisen Sie drei Variablen in einer Zeile unterschiedliche Werte zu und geben Sie sie unter Verwendung der print()-Funktion aus.

Einen Wert mehreren Variablen zuweisen:

  • Weisen Sie mehreren Variablen denselben Wert in einer Zeile zu und geben Sie sie aus.

Casting mit verschiedenen Datentypen:

  • Verwenden Sie die int(), float() und str() Funktionen, um Variablen zu casten. Geben Sie die Ergebnisse und die jeweiligen Datentypen aus.

Verwenden der random-Bibliothek:

  • Verwenden Sie das random-Modul, um eine Zufallszahl zwischen 1 und 100 zu generieren und auszugeben.