SHOW:
|
|
- or go back to the newest paste.
| 1 | # функция занимается раскодировкой одной буквы (возвращает букву которая соответствует отправленной с шагом step) | |
| 2 | def decrypt_letter(letter, step): | |
| 3 | if letter.isalpha(): # если буква явялется буквой а не пробелом | |
| 4 | number = ord(letter) - step % 26 # отнимаем от кода буквы шаг (поделенный с остатком на 26) | |
| 5 | if number < 97: # если получился код < 97, то: | |
| 6 | number += 26 # прибавляем 26 что бы перейти в конец алфавита (цикличный сдвиг) | |
| 7 | return chr(number) # возвращаем букву соответсвующую полученному коду символа | |
| 8 | return letter # если это была не буква, то возвращаем символ который нам отправили | |
| 9 | ||
| 10 | # функция шифрует одну букву сдвигая её на step шагов, работает аналогично предыдущей функции | |
| 11 | def encrypt_letter(letter, step): | |
| 12 | if letter.isalpha(): | |
| 13 | number = ord(letter) + step % 26 | |
| 14 | if number > 122 or 90 < number < 97: | |
| 15 | number -= 26 | |
| 16 | return chr(number) | |
| 17 | return letter | |
| 18 | ||
| 19 | # занимается расшифровкой целой строки (по факту вызывает функцию расшифровки для каждого символа в строке) | |
| 20 | def encrypt(msg, step): | |
| 21 | newMsg = "" | |
| 22 | for i in range(0, len(msg)): | |
| 23 | newMsg += encrypt_letter(msg[i], step) | |
| 24 | return newMsg | |
| 25 | ||
| 26 | # занимается зашифровкой целой строки (по факту вызывает функцию зашифровки для каждого символа в строке) | |
| 27 | def decrypt(msg, step): | |
| 28 | newMsg = "" | |
| 29 | for i in range(0, len(msg)): | |
| 30 | newMsg += decrypt_letter(msg[i], step) | |
| 31 | return newMsg | |
| 32 | ||
| 33 | # функция для удобного ввода шифруемого сообщения, говорит пользователю что нужно ввести | |
| 34 | def func_encrypt(): | |
| 35 | step = int(input("Input step: "))
| |
| 36 | s = input("Enter message: ")
| |
| 37 | print(encrypt(s, step)) | |
| 38 | ||
| 39 | # функция для удобного ввода расшифруемого сообщения, говорит пользователю что нужно ввести | |
| 40 | def func_decrypt(): | |
| 41 | s = input("Enter message: ")
| |
| 42 | step = int(input("Input crypt step: "))
| |
| 43 | print(decrypt(s, step)) | |
| 44 | ||
| 45 | # вызываем по очереди зашифровку и расшифровку | |
| 46 | func_encrypt() | |
| 47 | func_decrypt() |