Помогите найти баг, переменная изменяется, но где она изменяется не известно
Я решил сделать свой шифр насмотревшись всяких арг,пишу программу чисто для себя.Вот в чем суть проблемы:список 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")