2017-02-21 5 views
0

저는 Ceasar 암호로 텍스트를 번역하기위한 간단한 프로그램을 만들고 있습니다. 여기 내 코드가있다. 내가 코드를 실행하면Ceasar의 암호 (파이썬)

alphabet = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"] 
text = "hello how are you" 
text = text.split(" ") 
new_text_array = [] 
key = 3 
for w in range(len(text)): 
    new_word_array = [] 
    word = list(text[w]) 
    for i in range(len(word)): 
     if word[i] in alphabet: 
      new_index = alphabet.index(word[i]) + key 
      if new_index > 25: 
       new_index -= 26 
      new_word_array += alphabet[new_index] 
    new_word = ''.join(new_word_array) 
    print(new_word) 
    new_text_array += new_word 
    print(new_text_array) 
new_text = ' '.join(new_text_array) 
print(new_text) 

는 라인 (20)에 올바르게 문자열로 암호화 된 단어를 인쇄,하지만 난 배열에 단어를 추가 해요 라인 (21)에, 그것은 배열의 개별 항목으로 각 문자를 추가 전체 단어를 추가하는 대신 나는 여전히 Python을 처음 접했을 뿐이다. 무엇이 빠졌는가? 도와주세요. 미안하다. 내 영어로 말하면 내가하는 말을 이해할 수 있기를 바란다.

+4

교체'+ ='로 배열에 new_word를 넣어 new_text_array += [new_word]입니다'... –

+0

빠른 답변 주셔서 감사합니다. 그것은 완벽하게 작동합니다. 환호 –

답변

3

new_text_array.append(new_word)을 사용해야합니다. +=new_text_array += new_word에서

문자열도 new_word[x]에 걸쳐 반복 될 수 없으므로, 제 배열에 제 2 어레이의 모든 요소를 ​​추가되므로 new_word 위에 파이썬 반복되는 것을 의미하고, (여기서 문자)의 모든 요소를 ​​더하고 별도의 요소로.

또 다른 옵션이 여기에 그냥`APPEND (..)와 유일한 요소

+0

설명해 주셔서 감사합니다. –