Função de Cifra de César em Python: Strings criptografadas
Ao implementar uma função de Cifra de César em Python, surge um problema comum onde o texto criptografado final exibe apenas o último caractere deslocado. Para resolver isso, é necessário entender o problema que causa esse comportamento.
No código fornecido, o loop itera sobre cada caractere do texto simples. Para caracteres alfabéticos, ele altera o código ASCII do caractere com base no valor de deslocamento fornecido. No entanto, cada caractere deslocado é anexado a uma string vazia chamada cipherText dentro do loop. Como resultado, apenas o último caractere é exibido como o texto criptografado.
Para corrigir esse problema, o texto cifrado deve ser construído dentro do loop e retornado assim que todos os caracteres forem processados. Isso pode ser conseguido modificando o código da seguinte forma:
def caesar(plainText, shift):
cipherText = ""
for ch in plainText:
if ch.isalpha():
stayInAlphabet = ord(ch) shift
if stayInAlphabet > ord('z'):
stayInAlphabet -= 26
finalLetter = chr(stayInAlphabet)
cipherText = finalLetter
return cipherText
Com esta modificação, a string cipherText é inicializada uma vez e todos os caracteres deslocados são anexados a ela dentro do loop. Quando a função retorna, a string criptografada contém todos os caracteres deslocados, conforme pretendido.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3