我需要删除此程序中的空白以便进行加密/解密

2024-04-25 23:19:15 发布

您现在位置:Python中文网/ 问答频道 /正文

例如,此代码输出:

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

解密邮件: T~h~我~s~~i~s~~a~~T~e~s~T

…由于解密方法将空格视为“~”。你知道吗

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

Tags: inmessagerawcountoutd2d1eod
1条回答
网友
1楼 · 发布于 2024-04-25 23:19:15

你相信吗,我花了10分钟的故障排除才意识到你在循环中调用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

相关问题 更多 >

    热门问题