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