Aufgaben 0 bis 8 im Überblick
Jupyter Notebook
0 & 1: Hello World & Kommentare
Textausgabe und Steuerung des Sprachmodells über Intent-Kommentare.
2: Variablen & Summe
Summation zweier Variablen summand1 + summand2.
3 & 4: Gerade Zahlen filtern
Funktion summe_von_geraden_zahlen(arr) mit Modulo-Filter.
5: Test-Generierung
Generierung von begleitenden Assertions und Testfällen.
6: For- & While-Schleifen
Iteratives Aufsummieren mit Zwischenstands-Logging.
7: Semantische Benennung
Zufallszahlen-Generator: Präziser Funktionsname führt zu saubererem Code.
8: Bubblesort & Insertionsort
Sortierung eines Arrays mit Ausgabe aller Zwischenzustände zur Verifikation der Konvergenz.
Aufgabe 9: Fibonacci-Refactoring
Code-Audit
Original-Vorlage (Kryptisch, O(N) RAM)
task9_original.py
def x(n):
a = [1, 1]
for _ in range(n - 1):
a += [a[-1] + a[-2]]
return a[n]
# Schwächen:
# 1. Name 'x' verrät Intent nicht
# 2. Crasht bei n=0 (IndexError)
# 3. Allokiert Liste im RAM (O(N))
Refactored (O(1) Speicher, Type Hints)
task9_refactored.py
def fibonacci(n: int) -> int:
if n < 0:
raise ValueError("n muss >= 0 sein")
if n in (0, 1):
return n
a, b = 0, 1
for _ in range(n - 1):
a, b = b, a + b
return b
= 55
Aufgabe 10: Bugfixing in Code-Schnipseln
Fehler-Korrektur
Bug 1: SyntaxError (Zuweisung im if)
def check_if_even(number):
- if number % 2 = 0: # SyntaxError: '=' statt '=='
+ if number % 2 == 0: # Korrekter Vergleichsoperator
return "Even"
else:
return "Odd"
Bug 2: TypeError (int + str)
def add_numbers(a, b):
return a + b
x = 5
- y = "2" # TypeError: int + str
+ y = 2 # Integer-Wert