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

こんにちは、上記のコードは動作していません。これはPython関数です。私はプログラムを実行するとエラーが返されます: "UnboundLocalError:割り当て前に 'new_word'が参照されました"Python UnboundLocalError "助けが必要"

これはどういう意味ですか?誰でも助けてくれますか?

は私の関数の出力は次のようになります。

印刷rotate_word( 'ABC'、5)

出力:

+0

'z'た後、それはラップので、私はあなたのコードを更新しました。うわー! –

+0

次の問題は 'rotate_word( 'xyz'、5)'の場合です。 –

+0

はい、次の問題です。私は今それを解決しようとしています。あなたはそれのために何かを持っていますか? –

答えて

2

FGHあなたがそれを使用する前new_wordを定義する必要があります。 for前にこれを配置します。

new_word = '' 

あなたはまた、リターンとdefの後にコロンのためにインデントが欠落しています。

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:ここでは修正版である私はすでに..私はちょうどのために問題が発生する前にnew_word =「」を宣言し、問題を解決する