ich habe zwei Aufgabe zur Rekursion die ich zur Übung lösen wollte und komme nicht weiter bzw. hab gedacht ich hab sie richtig gelöst aber es kommen Fehlermeldungen.
Die 1 Aufgabe war, eine rekursive Funktion zu schreiben, welche eine Liste als Input (mit Buchstaben in dem Fall) bekommt und einen Buchstaben. Die Funktion soll nun rekursiv den Buchstaben, welcher übergeben wurde aus der Übergebenen Liste löschen (alle die vorkommen) z.B. ["t","e","s","t"] man übergibt "t" und dann soll als die Liste am Ende so aussehen: ["e","s"].
Ich hab das mit folgenden Code realisieren:
Code: Alles auswählen
def entferne_Alles(n,arr):
if arr == []:
return
else:
if arr[0] == n:
return entferne_Alles(n,arr[1:])
else:
return arr[0] + entferne_Alles(n,arr[1:])
[Previous line repeated 1 more time]
TypeError: can only concatenate str (not "NoneType") to str
Ausgeführt habe ich es so:
Code: Alles auswählen
liste = ["e","l","i","a","s","e"]
print(entferne_Alles("e",liste))
Also z.B. [0,0,0] ist die List und 3 die übergebene Zahl, dann soll als Ergebnis das kommen => [3,3,3]
Code: Alles auswählen
def addieren(n,arr):
if len(arr) > 0:
return [arr[0] + n] + addieren(n,arr[1:])
Code: Alles auswählen
arr = [0,0,0,0,0,0]
print(addieren(3,arr))
[Previous line repeated 3 more times]
TypeError: can only concatenate list (not "NoneType") to list
Könnte mir jemand bei dem Problem helfen und mir sagen was ich falsch gemacht habe? Also kann es sein, dass irgendwas mit der Abbruchbedingung nicht stimmt?
LG