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

안녕하세요, 위의 코드는 작동하지 않습니다. 이것은 파이썬 함수입니다. 프로그램을 실행하면 오류가 반환됩니다. "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 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) 

편집 : 여기에 고정 된 버전입니다 이미 .. 난 그냥에 대한 문제가 발생하기 전에 new_word = ''를 선언 문제를 해결

관련 문제