Python - Descifrar un código secreto

 
Vista:
sin imagen de perfil
Val: 4
Ha disminuido 1 puesto en Python (en relación al último mes)
Gráfica de Python

Descifrar un código secreto

Publicado por Sara (2 intervenciones) el 11/11/2020 21:34:10
Buenas tardes, debo descifrar un mensaje pero no logro hacer que el for se repita las veces necesarias para poder ver el mensaje real, solo me hace la iteración una vez. Ayuda

secretocodigo
secretoejemplo1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
codigo=list(input())
contador=0
mensaje=[]
for letra in  range(len(codigo)):
    if letra==len(codigo):
        continue
    elif letra!=0:
        if codigo[letra]==codigo[letra-1]:
            contador+=1
        elif codigo[letra]!=codigo[letra-1]: #letra 2 veces
            if contador==1:
                mensaje+=[(chr(ord(codigo[letra-1])-1) )]#letra 3 veces
            elif contador == 2:  # letra 3 veces
                mensaje += [(chr(ord(codigo[letra - 1]) + 1))]
            elif contador == 0:
                mensaje += [(chr(ord(codigo[letra - 1])))]
            contador = 0
codigo=mensaje
print(codigo)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 2.275
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Descifrar un código secreto

Publicado por tincopasan (628 intervenciones) el 13/11/2020 12:24:33
hay muchas formas de hacer esto, te falta mucho código y no entiendo la lógica de como lo estás intentando hacer, te muestro la primera que se me ocurre para ver si te orienta, aunque ya está funcional,salvo que no está comprobando que ingresa el usuario.
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
cadena = input(">>>").upper()
contador = 0
 
def simplifica(codigo):
    mensaje = ""
    for caracter in  range(len(codigo)):
        actual = ord(codigo[caracter])
        if codigo[caracter] == codigo[caracter-1] and caracter != 0:
            contador+=1
        else:
            contador = 0
        if contador == 0:
            if codigo[caracter] != "," and codigo[caracter] != '"':
                mensaje+=codigo[caracter]
        elif contador == 1:
            mensaje=mensaje[:-1]
            if actual == 65:
                mensaje+="Z"
            else:
                mensaje+=chr(ord(codigo[caracter]) -1)
        elif contador == 2:
            mensaje=mensaje[:-1]
            if actual == 90:
                mensaje+="A"
            else:
                mensaje+=chr(ord(codigo[caracter]) +1)
    if "." in mensaje:
        mensaje=mensaje.replace(".",". ")
    mensaje = f'"{mensaje}"'
    return mensaje
final = simplifica(cadena)
for x in range(len(final)):
    if final[x] ==final[x-1] and x != 0:
        final = simplifica(final)
        break
print(final)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar