Помогите найти баг, переменная изменяется, но где она изменяется не известно

Я решил сделать свой шифр насмотревшись всяких арг,пишу программу чисто для себя.Вот в чем суть проблемы:список num_message изменяется когда не надо, в итоге после функция encrypted_num_message выдает неверный результат.Например, слово "как" превращается список, с элеменатми номеров букв, из которых состоит слово, потом эти номера зашифровываются и обратно превращаются по полученным цифрам в буквы, но до того как числа зашифруются,num_number изменятся, в итоге, получается белеберда, которую расшифровать нельзя

#1. Перевод букв в числа
def letter_to_num(message):
    num_message=[]
    for j in range(0,len(message)):
        for i in range(0,32):
            if message[j]==alphabet[i]:
                num_message.append(i)
                if debug==True:
                    print(num_message)
                    print(message[j],"message[j]")
                    print(alphabet[i],"alphabet[i]")
    print(num_message ,1)
    return num_message

#2. Перевод чисел в другую СС
def based_number(number,base):
    digits=""
    if number==0:
        return 0
    while number:
        digits=digits+str((number%base))
        number=number//base
    return int(digits[::-1])

#модуль
def mod(n):
    if n<0:
        return -n
    if n>=0:
        return n

#3. Перевод номеров чисел сообщения в другую СС
def encrypted_num_message(num_message,message_key):
    crypted_num_message=num_message
    message_key=message_key.split("-")
    if debug==True:
        print(crypted_num_message,"-сообщение")
    if debug==True:
        print(message_key,"-ключ")
    for i in range(len(message)):
        for j in range(len(message_key)):
            crypted_num_message[i]=based_number(crypted_num_message[i],int(message_key[j]))
            crypted_num_message[i]=mod(32-crypted_num_message[i])
            if debug==True:
                print(crypted_num_message)
    return crypted_num_message

#Буквы
def num_to_letter(num_message):
    crypted_message=""
    if debug==True:
        print(num_message,"num_message")
    for i in range(len(num_message)):
        crypted_message=crypted_message+alphabet[int(num_message[i])]
        if debug==True:
            print(alphabet[num_message[i]])
    return crypted_message

#Расшифровка 
def decrypted(num_message,message_key):
    x=0
    message_key=message_key.split("-")
    message_key=message_key[::-1]
    if debug==True:
        print(message_key,'-ключ(перевернутый)')
        print(num_message,"-num_message")
    for i in range(0,len(num_message)):
        x=num_message[i]
        for j in range(0,len(message_key)): 
            x=32-x
            if debug==True:
                print(x,"x=32-x")
            x=x//10*int(message_key[j])+x%10
            if debug==True:
                print(x,"x=x//10*message_key[j]+x%10,message_key[j]=",message_key[j])
        if debug==True:
                print("-----------------------")
        num_message[i]=x
        if debug==True:
                print(x)
    return num_message

num_message=[]
message_key="7-6-8-7-9"
debug=False
message=input("Сообщение? ")
alphabet=" абвгдеёжзийклмнопрстуфхцчшщъыьэюя"
num_message=letter_to_num(message)
decrypted_message=decrypted(num_message,message_key)
print(message,"-message")
print(num_message,"-num_message")
print(encrypted_num_message(num_message,message_key),"-encrypted_num_message")
print(decrypted(num_message,message_key),"-decrypted")
print(num_to_letter(decrypted_message),"-num_to_letter")

Ответы (0 шт):