Python Desafio 3 – Cifra de César

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:

  1. Pede uma mensagem do usuário.
  2. Pede o número de posições para deslocar (a “chave”).
  3. Retorna a mensagem criptografada usando a cifra de César.
  4. 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)

Deixe um comentário