Untitled

mail@pastecode.io avatar
unknown
python
a year ago
1.9 kB
2
Indexable
Never
def recognize_alphabet(symbol):
    if symbol.lower() in rus:
        if symbol.islower():
            return rus
        return rus.upper()

    if symbol.lower() in eng:
        if symbol.islower():
            return eng
        return eng.upper()


# ЛОГИКА ЗАШИФРОВКИ
def encrypt(word, step):
    encrypted = ''
    for char in word:
        encrypted += encrypt_symbol(char, step)
    return encrypted


def encrypt_symbol(symbol, step):
    if symbol.isalpha():
        alphabet = recognize_alphabet(symbol)
        i = alphabet.index(symbol) + step
        return alphabet[i % len(alphabet)]
    return symbol


# ЛОГИКА РАСШИФРОВКИ
def decrypt(word, step):
    decrypted = ''
    for char in word:
        decrypted += decrypt_symbol(char, step)
    return decrypted


def decrypt_symbol(symbol, step):
    if symbol.isalpha():
        alphabet = recognize_alphabet(symbol)
        i = alphabet.index(symbol) - step
        return alphabet[i % len(alphabet)]
    return symbol


def main():
    encrypt_word = input('Вы хотите зашифровать или расшифровать ? enc/dec :  \n')
    if encrypt_word == 'enc':
        word = input('Введите слово которое хотите зашифровать: \n')
        step = int(input('Введите шаг: \n'))
        print(encrypt(word, step))
    elif encrypt_word == 'dec':
        word = input('Введите слово которое хотите расшифровать: \n')
        step = int(input('Введите шаг: \n'))
        print(decrypt(word, step))
    else:
        print('Я не совсем вас понял, попробуем снова ?')
        main()


rus = 'абвгдежзийклмнопрстуфхцчшщъыьэюя'  # 32
eng = 'abcdefghijklmnopqrstuvwxyz'  # 26

if __name__ == '__main__':
    main()