我需要删除此程序中的空格,以便加密/解密工作

时间:2015-03-31 21:54:44

标签: python whitespace

例如,此代码输出:

加密邮件: J 6 5 + ~5 +〜=〜* 9 + *

解密邮件: T~h~i~s~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

...由于解密方法将空格视为'〜'这一事实。

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

1 个答案:

答案 0 :(得分:0)

您是否认为我花了十分钟的时间进行故障排除才意识到您正在循环调用print? :)添加/修改的行被注释。

if eod in ("Encrypt", "encrypt", "e", "E"):
    print "Enter your message here:"
    emessage_in = raw_input("> ")
    elength = len(emessage_in)
    elistm = list(emessage_in)
    emessage_out = '' # initialize an empty string
    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]) # concatenate each character onto that string
        count = 0
    print emessage_out # move this out of the loop
elif eod in ("Decrypt", "dencrypt", "d", "D"):
    print "Enter your message here:"
    dmessage_in = raw_input("> ")
    dlength = len(dmessage_in)
    dlistm = list(dmessage_in)
    dmessage_out = '' # initialize an empty string
    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]) # concatenate each character onto that string
        count = 0
    print dmessage_out # move this out of the loop