lunes, 18 de marzo de 2019

Encriptar y desencriptar con Python

El codigo de abajo usando un diccionario encripta y desencripta le texto que tú le des.

d1={'00':'a','01':'b','02':'c','03':'d','04':'e','05':'f','06':'g','07':'h','08':'i','09':'j','10':'k','11':'l','12':'m','13':'n','14':'ñ','15':'o','16':'p','17':'q','18':'r','19':'s','20':'t','21':'u','22':'v','23':'w','24':'x','25':'y','26':'z'}
d2 = {v: k for k, v in d1.items()} #d2 es el diccionario inverso a d1

def encriptar(x,d2):
  resultado=''
  for i in x:
    resultado+=d2.get(i)
  return resultado

def desencriptar(y,d1):
  resultado=''
  for i in range(0,len(y),2):
    resultado+=d1.get(y[i]+y[i+1])
  return resultado

x=list(input("¿Qué frase quieres encriptar?").lower() or 'hola')
y=encriptar(x,d2)
print(y)
z=desencriptar(y,d1)
print(z)

Primero definimos el diccionario con los valores de las letras y el número que las identifica. Usando una función para encriptar, que empieza resultado como una variable vacía y usa un for para recorrer una por una las letras de la frase que nos ha dado el usuario, añadimos a resultado el número que representa a la letra que estamos analizando, devolvemos el valor final de resultados y lo imprimimos ya fuera del def.

Para el def desencriptar hacemos algo parecido, definimos resultado vacio, for recorriendo uno por uno los elementos de y, una variable que tiene el mismo valor que el mensaje encriptado, y luego añadimos a nuestra nueva variable, resultado, el valor que le corresponde a cada número de el diccionario de d2, que es el diccionario d1 pero cambiamos los números por las letras, y viceversa, devolvemos lo que eso nos dé.

Para finalizar el código definimos la variable x, que coge el mensaje del usuario, ejecutamos los dos def, y les damos los valores en los paréntesis, para encriptar y desencriptar e imprime todo.

martes, 12 de marzo de 2019

Histogramas avanzados en Python

En un post anterior explicaba como hacer un histograma simple, en este me gustaría expandir un poco mas en ello.

Para emepzar me gustaría explicar como darle un titulo o añadir algunas cosas para que quede mas bonito y la información repesentada se entienda mejor.

Para poner un titulo el codigo seria alg así:
 plt.title("Tú titulo")  

Si quisieramos decir que valor está en el valor