Lösungen: Teil 2 - Variablen
Lösung 2.1: Variable ändern
python
x = 10
x = 20Erklärung: Variablen können neu zugewiesen werden. Der neue Wert überschreibt den alten.
Lösung Aufgabe 2.1: Variable + Quadrat
python
from turtle import *
# Teil 1: Quadrat mit Variable für Seitenlänge
seitenlaenge = 100
forward(seitenlaenge)
right(90)
forward(seitenlaenge)
right(90)
forward(seitenlaenge)
right(90)
forward(seitenlaenge)
right(90)
done()Teil 2: Mit Farbe
python
from turtle import *
# Variablen
seitenlaenge = 100
farbe = "blue"
# Farbe setzen
color(farbe)
# Quadrat zeichnen
forward(seitenlaenge)
right(90)
forward(seitenlaenge)
right(90)
forward(seitenlaenge)
right(90)
forward(seitenlaenge)
right(90)
done()Alternative mit Schleife:
python
from turtle import *
seitenlaenge = 100
farbe = "blue"
color(farbe)
for i in range(4):
forward(seitenlaenge)
right(90)
done()Lösung 2.5: Code Reading
Variablen-Tabelle:
| Zeile | Code | x | y |
|---|---|---|---|
| 1 | x = 5 | 5 | - |
| 2 | y = 10 | 5 | 10 |
| 3 | x = y | 10 | 10 |
| 4 | y = 20 | 10 | 20 |
Antworten:
- Wert von x am Ende: 10 (x wurde in Zeile 3 auf den Wert von y gesetzt)
- Wert von y am Ende: 20 (y wurde in Zeile 4 auf 20 gesetzt)
Erklärung:
- Zeile 1: x bekommt den Wert 5
- Zeile 2: y bekommt den Wert 10
- Zeile 3: x bekommt den aktuellen Wert von y (also 10)
- Zeile 4: y bekommt den Wert 20
Wichtig: x = y kopiert den Wert von y nach x. Danach sind beide Variablen unabhängig voneinander!
Lösung Aufgabe 2.2: Steckbrief
python
# Variablen definieren
name = "Max"
alter = 16
hobby = "Fussball"
# Ausgabe
print(name)
print(alter)
print(hobby)Erweiterte Variante mit formatierten Ausgaben:
python
name = "Max"
alter = 16
hobby = "Fussball"
print(f"Name: {name}")
print(f"Alter: {alter}")
print(f"Hobby: {hobby}")Oder alles in einer Zeile:
python
name = "Max"
alter = 16
hobby = "Fussball"
print(f"Ich heisse {name}, bin {alter} Jahre alt und mein Hobby ist {hobby}.")Lösung Aufgabe 2.3: Temperaturumrechner
python
# Temperatur in Celsius speichern
celsius = 25
# Umrechnung in Fahrenheit
fahrenheit = celsius * 1.8 + 32
# Ausgabe
print(f"{celsius}°C entspricht {fahrenheit}°F")Erklärung:
- Die Formel
F = C * 1.8 + 32wird verwendet - Bei 25°C ergibt das: 25 * 1.8 + 32 = 45 + 32 = 77°F
Beispiel-Ausgabe:
25°C entspricht 77.0°FLösung Aufgabe 2.4: Mein Haus
python
from turtle import *
# Variablen für die Größe
hausbreite = 100
haushoehe = 80
dachhoehe = 60
fenstergroesse = 20
# Wände zeichnen (Rechteck)
color("brown")
forward(hausbreite)
left(90)
forward(haushoehe)
left(90)
forward(hausbreite)
left(90)
forward(haushoehe)
left(90)
# Dach zeichnen (Dreieck)
color("red")
left(90)
forward(haushoehe)
right(150)
forward(dachhoehe)
right(60)
forward(dachhoehe)
right(150)
# Position für Fenster
up()
goto(hausbreite * 0.4, haushoehe * 0.4)
down()
# Fenster zeichnen
color("blue")
for i in range(4):
forward(fenstergroesse)
right(90)
hideturtle()
done()Erklärung:
- Alle Distanzen sind als Variablen gespeichert
- Durch Ändern der Variable
hausbreite(z.B. auf 150) wird das ganze Haus größer - Die relative Positionierung des Fensters nutzt Prozent-Werte
Lösung 2.6: Debugging
Fehler: Der Code versucht Werte zu tauschen, aber es funktioniert nicht. Das Problem: Nachdem a = b ausgeführt wurde, haben beide Variablen den Wert 20. Dann setzt b = a den Wert von b auf 20 (der schon 20 ist).
Problem-Analyse mit Debugger:
python
# Schritt für Schritt:
a = 10 # a = 10, b = noch nicht definiert
b = 20 # a = 10, b = 20
a = b # a = 20, b = 20 (a hat seinen alten Wert verloren!)
b = a # a = 20, b = 20 (b wird auf 20 gesetzt, was es schon ist)Korrekte Lösung - Variante 1 (mit Hilfsvariable):
python
a = 10
b = 20
temp = a # Alten Wert von a zwischenspeichern
a = b # a bekommt Wert von b
b = temp # b bekommt alten Wert von a
print(f"a = {a}, b = {b}") # Ausgabe: a = 20, b = 10Korrekte Lösung - Variante 2 (Python-Trick):
python
a = 10
b = 20
a, b = b, a # Gleichzeitiger Tausch in Python
print(f"a = {a}, b = {b}") # Ausgabe: a = 20, b = 10Erklärung:
- Variante 1 verwendet eine Hilfsvariable
tempzum Zwischenspeichern - Variante 2 nutzt eine Python-Besonderheit: Mehrfachzuweisung in einer Zeile