View difference between Paste ID: qbuh9mTa and HUJv2TbH
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()