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”

这是什么意思?谁能帮我?

我的函数的输出是:

打印 rotate_word('abc',5)

输出:fgh

4

1 回答 1

2

你应该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)

编辑:我已经更新了你的代码,所以它在'z'

于 2012-04-13T01:05:38.470 回答