Caso ainda não tenha feito o Desafio 2 – Clique Aqui
Descrição:
A Cifra de César é uma das técnicas de criptografia mais antigas da história. O conceito é simples: cada letra da mensagem original é deslocada um certo número de posições no alfabeto.
Neste desafio, você vai criar um programa em Python que:
- Pede uma mensagem do usuário.
- Pede o número de posições para deslocar (a “chave”).
- Retorna a mensagem criptografada usando a cifra de César.
- Apenas letras devem ser criptografadas (espaços, acentos e outros símbolos devem permanecer como estão).
Regras:
- Use o alfabeto de
'a'
a'z'
. - Faça o deslocamento circular. Exemplo: com deslocamento 2,
'y'
vira'a'
,'z'
vira'b'
. - Use listas, laços e dicionário se desejar.
Exemplo de execução:
Digite sua mensagem: Oi tudo bem?
Digite o número da chave: 3
Mensagem criptografada: Rl wxgr ehp?
Resultado em Lista
alfabeto_minusculo = ["a","b","c","d","e","f",
"g","h","i","j","k","l",
"m","n","o","p","q","r",
"s","t","u","v","w","x","y","z"]
alfabeto_maiusculo = ["A","B","C","D","E","F",
"G","H","I","J","K","L",
"M","N","O","P","Q","R",
"S","T","U","V","W","X","Y","Z"]
cifra = input("Digite sua mensagem: ")
chave = int(input("Digite o número da chave: "))
cifra_listada = list(cifra)
indice_cifra = 0
for caractere in cifra_listada:
if caractere in alfabeto_minusculo:
indice_alfabeto = alfabeto_minusculo.index(caractere)
novo_indice = (indice_alfabeto + chave) % 26
cifra_listada[indice_cifra] = alfabeto_minusculo[novo_indice]
elif caractere in alfabeto_maiusculo:
indice_alfabeto = alfabeto_maiusculo.index(caractere)
novo_indice = (indice_alfabeto + chave) % 26
cifra_listada[indice_cifra] = alfabeto_maiusculo[novo_indice]
indice_cifra += 1
resultado = "".join(cifra_listada)
print("Mensagem criptografada:", resultado)
Resultado sem Lista
alfabeto_minusculo = "abcdefghijklmnopqrstuvwxyz"
alfabeto_maiusculo = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
cifra = input("Digite sua mensagem: ")
chave = int(input("Digite o número da chave: "))
resultado = ""
for caractere in cifra:
if caractere in alfabeto_minusculo:
indice = alfabeto_minusculo.index(caractere)
novo_indice = (indice + chave) % 26
resultado += alfabeto_minusculo[novo_indice]
elif caractere in alfabeto_maiusculo:
indice = alfabeto_maiusculo.index(caractere)
novo_indice = (indice + chave) % 26
resultado += alfabeto_maiusculo[novo_indice]
else:
resultado += caractere # mantém espaço e pontuação
print("🔐 Mensagem criptografada:", resultado)