Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from code_lab import lfind
- def get_code(message, code_table):
- for i in range(len(code_table)):
- if code_table[i][0] in message: message=message.replace(code_table[i][0], code_table[i][1])
- return message
- def decode(code, code_table):
- decoded = ''
- while code:
- for i in code_table:
- if lfind(code, i[1]):
- code=code[len(i[1])::]
- decoded+=i[0]
- return decoded
- def main():
- message = "ЕНОТА НЕТ" # кодируемое сообщение
- char_sep = '00' # разделитель букв
- space_separator = '000' # пробел
- code_table = [['Е','10'+char_sep], # таблица, составленная методом,
- ['Н','01'+char_sep], # который пожелал остаться анонимным
- ['О','110'+char_sep],
- ['Т','1111'+char_sep],
- ['А','0010'+char_sep],
- [' ', space_separator]]
- code = get_code(message, code_table)
- decoded = decode(code, code_table)
- print('кодируемое сообщение: {}'.format(message))
- print('полученный код сообщения: {}'.format(code))
- print('вес изначального сообщения: {}\nвес закодированного: {}\nполученный код отличаетсся в {} раз'.format(len(message)*16, len(code), round(len(message)*16/len(code),2)))
- print('расшифрованный код сообщения: {}'.format(decoded))
- if __name__ == "__main__": main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement