2014-10-25 1 views
-2

필자는 입력을 암호화하는 프로그램을 만드는 데 어려움을 겪고 있습니다. 프로그램을 만드는 방법을 살펴 보았지만 그렇게하는 방법은별로 없습니다. 너무 복잡해서는 안되는 것처럼 보이지만 내 수업에서 그 중 아무 것도 가르쳐주지 않았습니다. 나는이 게시물을 너무 Get character position in alphabet 읽었지만 행운이 없었어요! 나는 지금까지 이것을 가지고있다 :알파벳을 앞으로 옮기시겠습니까?

나는 각 문자 값에 5를 더한 다음 제품을 다시 인쇄하면 생각했다. 어떤 함수를 사용하여 알파벳 순서로 5를 더합니까? ord()? 그렇다면 누군가 그것을 사용하는 방향으로 나를 가리킬 수 있습니까? 미리 감사드립니다!

+0

int와 문자열을 추가 할 수 없습니다. –

+0

팁을 주셔서 감사합니다. 편지를 옮기기 위해 ord()와 다른 함수를 사용할 수 있습니까? – user3411623

+0

나는 모듈로를 사용하여 교대를 수행하는 한자를 쓸 것입니다. –

답변

0
import string 


def encrypt_s(shift): 
    lower = string.ascii_lowercase 
    # shift forward current index of each character + the shift 
    dict_map = {k:lower[(lower.index(k)+shift)%26] for k in lower} 
    return dict_map 

def decrypt_s(shift): 
    lower = string.ascii_lowercase 
    # shift forward current index of each character - the shift to get original string 
    dict_map = {k:lower[(lower.index(k)-shift)%26] for k in lower} 
    return dict_map 


def Cryption(): 

    #################### 
    encrypt = 'encrypt' 
    decrypt = 'decrypt' 
    #################### 
    s = raw_input("Would you like to encrypt or decrypt? Enter your answer") 
    if encrypt in s: 
     print("Loading encryption sector...") 
     time.sleep(2) 
     enc = raw_input("Please input the string you would like to encrypt").lower() 
     enc_s = encrypt_s(5) 
     enc = "".join([enc_s[char] if char in enc_s else char for char in enc]) 
     print ("Your encrypted word is: ",enc) 
    elif decrypt in s: 
     print("Loading decryption sector...") 
     time.sleep(2) 
     dec = raw_input("Please input the string you would like to decrypt").lower() 
     dec_s = decrypt_s(5) 
     dec = "".join([dec_s[char] if char in dec_s else char for char in dec]) 
     print ("Your decrypted word is: ",dec) 
    else: 
     print("Your input was invalid, please re-enter your choice!") 
관련 문제