Ayuda!!!

Iniciado por jam man, 19 Septiembre 2015, 22:01 PM

0 Miembros y 1 Visitante están viendo este tema.

jam man

Hola estoy haciendo un programa en python que haga como un tipo cifrado de cualquier palabra o frase que se ingrese desde teclado. Mi codigo es este:
Código (python) [Seleccionar]

texto = raw_input ("Palabra a cifrar: ").lower()
diccionario = {'a':'aa', 'b':'ab', 'c':'ac', 'd':'ad', 'e':'ae',
              'f':'ba', 'g':'bb', 'h':'bc', 'i':'bd', 'j':'bd',
              'k':'be', 'l':'ca', 'm':'cb', 'n':'cc', 'ñ':'cc',
              'o':'cd', 'p':'ce', 'q':'da', 'r':'db', 's':'dc', 't':'dd',
              'u':'de', 'v':'ea', 'w':'eb', 'x':'ec', 'y':'ed', 'z':'ee'}
textoleet = ''
for v in texto:
       if v in diccionario.keys():
               textoleet += diccionario[v]
       else:
               textoleet +=v
print(textoleet)


ya hace lo primero que tiene que hacer que es leer la palabra ingresada pero ahora el problema es invertirlo, es decir que desde el teclado se ingrese ya la frase cifrada y que me imprima la palabra correspondiente.

De antemano gracias.

ivancea96

Empiezas desde el principio de la cadena, y buscas los valores del cifrado en la cadena. Al encontrarlos, pones en su lugar la clave.

Es lo mismo que hiciste ahora, pero al revés. Además, hay que tener la precaución de que la cadena sea una cadena cifrada. por ejemplo, si encuentras una 'z', la cadena es erronea, ya que es imposible que haya una 'z' en una cadena cifrada. ¿Me entiendes?

Incluso si no haces la comprobación, solo es eso, ir intercambiando. En vez de letra a letra, de 2 en 2.

jam man

bueno entiendo esa parte de que ahora se hace lo contrario, pero mi duda es de que si pyhton lee dos letras a la vez, es decir que si por ejemplo ingreso una "aa" y que me imprima la letra "a" que es el valor que corresponde a la clave "aa" y si al ingresar un texto mas largo se pueda descifrar.

simorg

#3
@jam man

No está permitido publicar el mismo post en distintos foros simultaneamente.

Los otros han sido eliminados.

Los titulos tienen que ser descriptivos del problema, "Ayuda", no lo es, modificalo.

El codigo debe utilizar las etiquetas GeSHi


Leete las Reglas del Foro. No podias infringir más normas en menos tiempo. :P



Saludos.

jam man

@simorg disculpa no sabía, soy nuevo en ésto. Pero gracias por comentarlo.

engel lex

usa el bottón modificar en el primer tema para cambiar el titulo y colocale un titulo descriptivo a la problematica
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

tincopasan

una forma muy simple de tomar cada 2 caracteres de la palabra cifrada
Código (python) [Seleccionar]
palabra="ceeedbdbcd"
final=2
inicio=0
while final <len(palabra)+2:
    print(palabra[inicio:final])
    final+=2
    inicio+=2

jam man