2013-11-15 2 views
0

이것은 내가 지금까지 Caeser Cipher 프로그램에 대해 가지고있는 것입니다. Caeser Cipher는 어떻게 작동합니까?

import string 
    character = [] 
    message = raw_input('What is your message? ').lower() 
    shift = raw_input('What is your shift key? ') 
    code = raw_input('Would you like to cipher(c) or decipher(d)? ') 
    if str(code) == 'd': 
     for character in message: 
      number = ord(character) - int(shift) 
      if number <= 96: 
       number = ord(character) + 26 - int(shift) 
      character = chr(number) 
    elif str(code) == 'c': 
     for character in message: 
      number = ord(character) + int (shift) 
      if number >= 123: 
       number = ord(character) - 26 + int(shift) 
      character = chr(number) 
    print(str(character)) 

나는이 프로그램을 사용할 때마다

, 나는 내가 메시지를 입력 라인의 마지막 편지의 암호화 또는 암호 해독 된 메시지를 다시 얻을. 내 전체 암호화되거나 해독 된 메시지를 출력하는 방법을 모르겠습니다.

답변

2

문제는 for 루프 외부에서만 한 번만 인쇄하는 것입니다.

print 문을 for 루프 내에서 이동할 수 있습니다.

if str(code) == 'd': 
    for character in message: 
     number = ord(character) - int(shift) 
     if number <= 96: 
      number = ord(character) + 26 - int(shift) 
     character = chr(number) 
     print(str(character)) 
elif str(code) == 'c': 
    for character in message: 
     number = ord(character) + int (shift) 
     if number >= 123: 
      number = ord(character) - 26 + int(shift) 
     character = chr(number) 
     print(str(character)) 
+0

감사합니다. 나는 그것을 당신이 그것을 설명했던 방식으로 완전히 얻는다. – JPtheK9

+0

참고로, 각 문자 사이에 공백을 두지 않고 어떻게 문장을 나열 할 수 있습니까? – JPtheK9

관련 문제