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' referenced before assignment」というエラーが返されます

これはどういう意味ですか?誰でも私を助けることができますか?

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

印刷回転_単語('abc',5)

出力: fgh

4

1 に答える 1

2

new_word使用する前に定義する必要があります。これを の前に置きますfor:

new_word = ''

また、return のインデントと 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)

編集:コードを更新したので、後にラップします'z'

于 2012-04-13T01:05:38.470 に答える