Duas amigas estabeleceram o código abaixo para que suas mensagens não fossem lidas pelas demais pessoas.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
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
Observe que cada letra equivale a um número entre 1 e 26 , e o espaço ao 0 . Faça um programa que receba como entrada uma lista de números representando uma mensagem codificada, armazene estes valores em uma lista e depois traduza a mensagem de acordo com o código das amigas.

Passo 1

Beleza, o enunciado diz que temos um código onde cada número de 0 a 26 representa um caractere: 0 é espaço, 1 é “a”, 2 é “b” … até 26 ser “z”. O que a gente precisa fazer é escrever um programinha que:
  1. receba como entrada uma sequência de números (tipo “8 5 12 12 15”),
  2. armazene esses números numa lista,
  3. e então converta cada número na sua letra correspondente pra imprimir a mensagem decodificada.
    Conteúdo envolvido: listas, índices, leitura de entrada, loop e concatenação de strings.

Passo 2

Primeiro, vamos montar a tabela de tradução numa lista chamada codigo. A ideia é que codigo[n] seja o caractere certo para o número n. Em Python dá pra fazer assim:
codigo = []
for n in range(0, 27):
    if n == 0:
        codigo.append(' ')        # 0 vira espaço
    else:
        # chr(96 + n) gera 'a' para n=1, 'b' para n=2, etc.
        codigo.append(chr(96 + n))
Teoria rápida: a função chr(x) retorna o caractere cujo código ASCII é x. No padrão ASCII, 97 = ‘a’, 98 = ‘b’, … daí usar 96 + n.

Passo 3

Agora vamos ler a entrada do usuário. A ideia é digitar os números separados por espaço e transformar cada pedaço numa lista de inteiros:
entrada = input("Digite a sequência de números: ")  
pedaços = entrada.split()           # divide a string em substrings  
mensagem_codificada = [int(x) for x in pedaços]
Aqui split() separa a string toda onde houver espaço, e a list comprehension converte cada substring em int.

Passo 4

Com a lista mensagem_codificada pronta, ficamos só de puxar o caractere certo em codigo[n] pra cada n e montar a mensagem final:
mensagem = ""  
for n in mensagem_codificada:
    mensagem += codigo[n]    # vai concatenando letra por letra
Explicando o loop: para cada número n na lista, a gente pega codigo[n] e adiciona no final da string mensagem.

Passo 5

Por fim, é só imprimir o resultado:
print(mensagem)

Resposta

# Monta a tabela de tradução
codigo = []
for n in range(0, 27):
    if n == 0:
        codigo.append(' ')
    else:
        codigo.append(chr(96 + n))

# Lê e processa a entrada
entrada = input("Digite a sequência de números: ")
pedaços = entrada.split()
mensagem_codificada = [int(x) for x in pedaços]

# Decodifica
mensagem = ""
for n in mensagem_codificada:
    mensagem += codigo[n]

# Mostra a mensagem original
print(mensagem)

Exercícios relacionados