2012-04-13 1 views
0
def rotate_word(word,number) 
    for i in word: 
     word_num = ord(i) 
     new_word += chr(word_num + number) 
return new_word 

Hallo Leute, der obige Code funktioniert nicht. Dies ist eine Python-Funktion. Wenn ich das Programm starte, gebe ich einen Fehler zurück: "UnboundLocalError: 'new_word' referenziert vor der Zuweisung"Python UnboundLocalError "Brauchen Sie Hilfe"

was bedeutet das? Kann mir jemand helfen?

die Ausgabe meiner Funktion wäre:

Druck rotate_word ('abc', 5)

Ausgang: fgh

+0

ich schon das Problem lösen .. Ich erkläre nur die new_word = ‚‘, bevor die für geschieht. Wütend! –

+0

Das nächste Problem ist, was passiert 'rotate_word ('xyz', 5)' '? –

+0

Ja, das nächste Problem. Ich versuche es jetzt zu lösen. oder hast du irgendeinen Algo dafür? –

Antwort

2

Sie sollten new_word definieren, bevor es zu benutzen. Legen Sie diese vor dem for:

new_word = '' 

Sie sind auch eine Vertiefung für die Rückkehr und einen Doppelpunkt nach dem def fehlt. Hier ist eine feste Version:

def rotate_word(word, number): 
    new_word = '' 
    for i in word: 
     word_num = ord(i) 
     new_char = chr(word_num + number) 
     if new_char > 'z': 
      new_char = chr(ord(new_char) - 26) 
     new_word += new_char 
    return new_word 

print rotate_word('abc', 5) 
print rotate_word('xyz', 3) 

EDIT: Ich habe Ihren Code aktualisiert, so wickelt es nach 'z'