For example, this code outputs:
Encrypted message: J 6 5 + ~ 5 + ~ = ~ * 9 + *
Decrypted message: T ~ h ~ i ~ s ~ ~ i ~ s ~ ~ a ~ ~ t ~ e ~ s ~ t
...due to the fact that whitespace is considered '~' by the decryption method.
from collections import defaultdict
e1 = {}
e2 = {}
e3 = {} 
d3 = {}
d2 = {}
d1 = {}
print "Would you like to encrypt 'e' or decrypt 'd' a message?"
count = 1
while count >= 1:
    eod = raw_input("> ")
    if eod in ("Encrypt", "encrypt", "e", "E"):
        print "Enter your message here:"
        emessage_in = raw_input("> ")
        elength = len(emessage_in)
        elistm = list(emessage_in)
        for x in range(0, elength):
            e1[x] = elistm[x]
            e2[x] = ord(e1[x])
            e3[x] = 158 - e2[x]
            emessage_out = chr(e3[x])
            print emessage_out,
            count = 0
    elif eod in ("Decrypt", "dencrypt", "d", "D"):
        print "Enter your message here:"
        dmessage_in = raw_input("> ")
        dlength = len(dmessage_in)
        dlistm = list(dmessage_in)
        for y in range(0, dlength):
            d3[y] = dlistm[y]
            d2[y] = ord(d3[y])
            d1[y] = 158 - d2[y]
            dmessage_out = chr(d1[y])
            print dmessage_out,
            count = 0
    else:
        print "Please type 'e' or 'd':"
        count += 1
 
     
    