2016-11-22 4 views
0

Mein Ziel ist es, eine Zeichenfolge rekursiv zu ändern, so dass das letzte Wort entfernt wird, wenn es länger als 48 Zeichen ist. Wenn/wenn die Zeichenfolge nicht länger als 48 Zeichen ist, geben Sie sie zurück.Python: rekursiv ändern Strings

Dies ist mein Versuch:

def checkLength(str): 
    if len(str) > 48: 
    str = str.rsplit(' ',1)[0] 
    checkLength(str) 
    else: 
    return str 

ein string> 48 Zeichen lang Ergebnisse in einem leeren Wert Passing.

Was ist der richtige Weg, um dies in Python zu erreichen, und warum funktioniert die obige Funktion nicht wie erwartet?

+1

Verwenden Sie auch nicht 'str' als Variablennamen, sondern schattiert den eingebauten Typ. –

+0

Danke für den Tipp! Das werde ich mir für die Zukunft merken. – Shane

Antwort

2
def checkLength(my_str): 
    if len(my_str) > 48: 
    my_str = str.rsplit(' ',1)[0] 
    # you must return the recursive call! 
    return checkLength(my_str) 
    else: 
    return my_str