2014-02-24 2 views
0

프로젝트에 대해 vigenere 암호를 사용해야하며 코드가 계속 반복됩니다. 그것은 암호화 또는 해독을 실행 못해. 여기 내 코드입니다. 이 같은 은 Python Vigenere 코드 반복 오류

"어이가 사용자 .. 그것이 예를 들어 무엇이다!

무슨 메시지? 안녕하세요

메시지에 얼마나 많은 편지?

이 당신을 수행

해독 또는 암호화 할?

이 메시지를 해독 할 수 있습니다 해독!

당신이 해독 또는 암호화 하시겠습니까? " 또한,

def vig(message): 
    ui = raw_input("Encrypt or decrypt? ").lower() 
    if "decrypt" in ui: 
     return decrypt(message) 
    else: 
     return encrypt(message) 

:

if "encrypt" in vig(): 

두 가지 기능으로 암호화 및 암호 해독을 분리하고 적절하게 호출보십시오 : 당신이 dore에서 할 첫 번째 일의

print "Hey There user!" 
def vig(): 
dore = raw_input("Do you want to decrypt or encrypt?") 
if "decrypt" in dore: 
    print "Lets decrypt your message!!" 
else: 
    print "lets encrypt your message!!" 


def dore(message): 
encrypt = '' 
decrypt = '' 
if "encrypt" in vig(): 
for i in range(0, len(message)): 
    e = ord(message[i]) + ord(key[i%len(key)]) - 65 
if e > 90: 
    e -= 26 
    encrypt += chr(e) 
    print encrypt 
if "decrypt" in vig(): 
    e = ord(message[i]) - ord(key[i%len(key)]) + 65 
if e < 65: 
    e += 26 
    decrypt += chr(e) 
    print decrypt 

#################################### 
###########################################:)##### 
message = raw_input("whats your message??") 
key = raw_input("How many letters are in the message?") 
vig() 
dore(message) 
message = message 
encrypt = '' 
decrypt = '' 
+1

들여 쓰기를 검토해주십시오. – jonrsharpe

+0

예,하지만 제 규칙은 괜찮습니다. 죄송합니다. – user3298288

답변

1

하나는 다시 전화 vig입니다 사용자는 메시지 길이를 입력 할 필요가 없습니다.

key = len(message) 
+0

이제는 Traceback (가장 최근의 마지막 통화)이라고 말합니다 : 파일 "C : /Python27/fehio.py" vig (메시지) 파일 "C : /Python27/fehio.py"25 행 , return encrypt (message) NameError : 글로벌 이름 'encrypt'가 정의되지 않았습니다. – user3298288

+0

음, 예; 현재 함수'dore'의 두 부분을 기반으로'encrypt'와'decrypt' 두 함수를 실제로 정의해야합니다. – jonrsharpe