преобразовать между строк текста и списков чисел, в которых описаны в числовых эквивалентах букв - PullRequest
0 голосов
/ 05 октября 2019

dic - это поиск по буквам для чисел, а numdic - поиск по буквам от num до

    'k':'10','l':'11','m':'12','n':'13','o':'14','p':'15','q':'16','r':'17','s':"18",'t':'19','u':'20',
    'v':'21','w':'22','x':'23','y':'24','z':'25'}
numdic = {'0':'a','1':'b','2':'c','3':'d','4':'e','5':'f','6':'g','7':'h','8':'i',
    '9':'j','10':'k','11':'l','12':'m','13':'n','14':'o','15':'p','16':'q','17':'r','18':'s','19':'t','20':'u',
    '21':'v','22':'w','23':'x','24':'y','25':'z'}

def encode(message):
    cipher = ''
    for letter in message:
        # checks for space
        if(letter != ' '):
            #adds the corresponding letter from the lookup_table
            cipher += dic[letter]
        else:
            # adds space
            cipher += ' '

    return cipher

def decode(nummessage):
    ciphertext = ''
    for letter in nummessage:
        if (letter != ' '):
            ciphertext += numdic[letter]
        else:
            ciphertext  +=' '
    return ciphertext

# Driver function to run the program
def main():
    #encrypt the given message
    print('Enter a message to encrypt:')
    message = input()
    print(encode(message))
    print('Enter message to decrypt:')
    nummessage = input()
    #decrypt the given message
    print(decode(nummessage))

if __name__ == '__main__':
    main()

, когда я запускаю код, для декодирования, например, если я ввожу 18, это дает мне би вместоs, есть ли другой способ сделать это?

1 Ответ

0 голосов
/ 05 октября 2019

Ваша проблема в том, что вы интерпретируете 18 как '18'. Затем, когда вы повторяете это, вы получаете '1' и '8'. Попробуйте:

def decode(nummessage):
    ciphertext = ''
    for letter in nummessage.split(','):
        if (letter != ' '):
            ciphertext += numdic[letter]
        else:
            ciphertext  +=' '
    return ciphertext

И вы можете использовать его так:

>>> decode("18,1,2")
sbc
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...