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'在赋值之前被引用”
这意味着什么?任何人都可以帮助我吗?我的函数的输出是:
print rotate_word('abc',5)
输出:fgh
答案 0 :(得分: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'