Cifra de César [espaçamento]

09/10/2023

0

Acabei de terminar um programa da Cifra de César pedido pelo meu professor. Ele está funcionando perfeitamente, no entanto há um problema. Se eu escrevo uma frase com espaços, o programa desconsidera os espaços e põe uma letra 'a' no lugar e não espaça a frase. Alguém conseguiria me auxiliar.

 

print("-=-" * 16)
print(15 * " ", "CIFRA DE CÉSAR")
print("-=-" * 16)

chave = int(input("Digite a chave de criptografia (Máx. 26): "))
while chave > 26 or chave < 0:
    chave = int(input("Chave inválida, tente novamente: "))

alfabeto = "abcdefghijklmnopqrstuvwxyz"

opcao = int(input("\nEscolha o modo que vc deseja\n[ 1 ] Encriptar\n[ 2 ] Descriptar\n "))

texto = str(input("\nInsira o texto: ")).lower()

cripto = ' '

if opcao == 1:
    for letra in texto:
        posicao = alfabeto.find(letra)
        #como a contagem de uma string inicia-se no 0, somei mais 1 para poder realizar a soma de forma convencional
        posicao += chave

        if posicao > len(alfabeto):
            posicao -= len(alfabeto)

        cripto += alfabeto[posicao]


elif opcao == 2:
    for letra in texto:
        posicao = alfabeto.find(letra)
        posicao -= chave

        if posicao < 0:
            posicao = len(alfabeto) - abs(posicao)

        cripto = cripto + alfabeto[posicao]

print(f"Sua mensagem:")

Lucas Aoki

Lucas Aoki

Responder

Post mais votado

09/10/2023

Você quer que, quando a frase contiver um espaço, a resposta seja exibida com espaço: "caldo de cana" => "dbmep ef dbob"

Faça um

if letra = " ":
    cripto += " "
else
    ...
    cripto += alfabeto[posicao]


Ou coisa parecida

Arthur Heinrich

Arthur Heinrich
Responder

Mais Posts

10/10/2023

Lucas Aoki

Você quer que, quando a frase contiver um espaço, a resposta seja exibida com espaço: "caldo de cana" => "dbmep ef dbob"

Faça um

if letra = " ":
    cripto += " "
else
    ...
    cripto += alfabeto[posicao]


Ou coisa parecida


Valeu irmão, vou tentar! Tamo junto
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar