Каждый раз, когда вы go через свой l oop, вы заменяете одну букву в string
, а затем присваиваете результат этой однобуквенной подстановки ciphered
, перезаписывая любое значение, которое оно имело ранее. Значение, которое вы получите в конце, - это значение, которое было присвоено во время последней l oop итерации.
Фактически изменение строки на месте с помощью replace
- плохая идея, так как вы в конечном итоге перевернете одни и те же буквы туда и обратно. Вместо этого вы можете итеративно создавать зашифрованную строку:
alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
cipher = "ZYXWVUTSRQPONMLKJIHGFEDCBA"
ciphered = ""
for char in string:
i = alphabet.find(char)
ciphered += cipher[i]