Skip to content

Lösungen: Teil 2 - Variablen

Lösung 2.1: Variable ändern

python
x = 10
x = 20

Erklä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:

ZeileCodexy
1x = 55-
2y = 10510
3x = y1010
4y = 201020

Antworten:

  1. Wert von x am Ende: 10 (x wurde in Zeile 3 auf den Wert von y gesetzt)
  2. 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 + 32 wird verwendet
  • Bei 25°C ergibt das: 25 * 1.8 + 32 = 45 + 32 = 77°F

Beispiel-Ausgabe:

25°C entspricht 77.0°F

Lö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 = 10

Korrekte 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 = 10

Erklärung:

  • Variante 1 verwendet eine Hilfsvariable temp zum Zwischenspeichern
  • Variante 2 nutzt eine Python-Besonderheit: Mehrfachzuweisung in einer Zeile

Informatik & ICT Unterricht Neufeld