Su libreta de direcciones no es sólo para los nombres y direcciones. Adición de notas en sus contactos puede ayudarle a recordar detalles. Por ejemplo, cuando es el cumpleaños de tu mejor amigo, y que le debe $ 5? La mejor parte es que usted puede cifrar,
o despegue en tiempo mínimo, las notas. Usted no quiere que cualquiera de leerlos!
Copia el código:
"" "CryptopyTake un mensaje de texto claro y cifrar que usinga César cipherTake un mensaje de texto cifrado y descifrar lo usingthe misma cipherEncrypt / descifrar desde y hacia un fileBrendan Scott, 2015" "" #### cadena Importaciones Sectionimport #### Constantes SectionCHAR_SET = cadena .printable [: - 5] SUBSTITUTION_CHARS = char_set [-3:] + char_set [: - 3] # generar diccionario cifrado del carácter setand # su substitutionsENCRYPTION_DICT = {} DECRYPTION_DICT = {} para i, k en enumerate (char_set): v = SUBSTITUTION_CHARS [i] ENCRYPTION_DICT [k] = vDECRYPTION_DICT [v] = k # otros personajes - t, n etc - no están changedfor c en string.printable [-5:]: #! miran los dos puntos ENCRYPTION_DICT [c ] = cDECRYPTION_DICT [c] = cTEST_MESSAGE = "Me gusta Monty Python.They son muy divertido." Input_File_Name = "cryptopy_input.txt" Output_File_Name = "cryptopy_output.txt" #### Función Sectiondef encrypt_msg (texto plano, encrypt_dict): "" "Tome un mensaje de texto sin formato y cifrar eachcharacter utilizando el provided.key diccionario cifrado traduce a su asociado value.Return el texto cifrado" "" texto cifrado = [] para k en texto plano: v = encrypt_dict [k] ciphertext.append (v) # usted podría decir # ciphertext.append (encrypt_dict [k]) # I dividió a cabo por lo que podría seguir better.return '' .join (texto cifrado) def decrypt_msg (texto cifrado, decrypt_dict): "" "Tome un mensaje de texto cifrado y descifrar eachcharacter utilizando el provided.key diccionario descifrado se traduce a su asociado value.Return el texto en claro "" "texto plano = [] para k en el texto cifrado: v = decrypt_dict [k] plaintext.append (v) el regreso de '.join (texto plano) #### Principal Sectionif __name__ == "__main __": ## mensaje = raw_input ("Escriba el mensaje que le gustaría toprocess continuación: n") ## = encrypt_msg texto cifrado (mensaje, ENCRYPTION_DICT) ## = decrypt_msg texto plano ( mensaje, DECRYPTION_DICT) ## print ("Este mensaje encripta a") ## impresión (texto cifrado) ## impresión # sólo una línea en blanco para facilitar la lectura ## print ("Este mensaje descifra a") ## impresión (texto plano) ENCRYPT = Falso # Esta es la constante utilizado para ladrón clausewith abierto (Input_File_Name, 'r') como archivo_entrada: Mensaje = input_file.read () si ENCRYPT: text_to_output = encrypt_msg (mensaje, ENCRYPTION_DICT) else: text_to_output = decrypt_msg (mensaje, DECRYPTION_DICT) de impresión (text_to_output) # sólo para testingwith abierto (Output_File_Name, 'w') como output_file: output_file.write (text_to_output)
Crear una constante llamada PASSPHRASE y establecer su frase de contraseña secreta allí.
Añadir un atributo a AddressEntry llamado secret_note. Inicialice como una cadena vacía.
Añadir un método para AddressEntry llamado add_secret_note.
Añadir un método para AddressEntry llamado decrypt_secret_note.
en el Principal sección, crear un persona ficticia entrada y texto de ejemplo para cifrar.
Usar persona ficticia y el texto de la muestra para probar la add_secret_note y decrypt_secret_note métodos.
Aquí está la nueva importación:
cryptopy importación
La nueva constante en el Constantes sección:
PASSPHRASE = "¡Guau! Este es un gran libro." # ... O thinkof su propio
El nuevo atributo en el AddressEntry constructor:
self.secret_note = ""
Los nuevos métodos en AddressEntry:
def add_secret_note (self, note_text): "" "note_text cifrar y sobrescribir theexisting atributo secret_note con el texto thisencrypted" "" self.secret_note = cryptopy.encrypt_msg (note_text, cryptopy.ENCRYPTION_DICT) def decrypt_secret_note (self, frase de contraseña): "" "Descifrar un mensaje secreto existente si thepassphrase es correcto, de lo contrario returnencrypted texto "" "si la frase de contraseña == PASSPHRASE: cryptopy.decrypt_msg retorno (self.secret_note, cryptopy.DECRYPTION_DICT) else: return self.secret_note
El código de las pruebas en el Principal sección:
dummy_entry = AddressEntry ("Eric", "Idle", "29 de marzo 1943") sample_message = "Creo que son realmente genial." dummy_entry.add_secret_note (sample_message) print ("secreta nota:% s"% dummy_entry.secret_note) descifrado = dummy_entry.decrypt_secret_note (PASSPHRASE) print ("texto descifrado =% s" descifrado%) print ("Igual que el original:% s"% (descifrado == sample_message))
Aquí está la salida de la prueba:
>>> ======================= ======================= REINICIO >>> [] F | qefkh | qebv | 7ob | ob7iiv | 9lli + texto descifrado = Creo que son realmente cool.Same tan original: True
Mostrar los días hasta su próximo cumpleaños con Python
Usted puede averiguar el tiempo entre dos fechas con Python fecha y hora módulo. ¿Cuántos más días de compras hasta que su cumpleaños? Rápida, la figura hacia fuera para que todos puedan asegurarse de que ahorrar y obtener sus regalos a tiempo!
Usted puede averiguar cuántos días es hasta que su próximo cumpleaños, siguiendo estos pasos:
Añadir un nuevo método para AddressEntry llamado days_to_birthday.
En days_to_birthday, convertir la fecha de nacimiento en una fecha objeto.
Crear un fecha objeto que tiene el mismo mes y día como la fecha de nacimiento, pero un año igual al del año en curso (que se obtiene a partir de date.today).
Comparar esa fecha contra date.today.
Si está en el futuro, que es el próximo cumpleaños y tienes tu respuesta. Si está en el pasado, que ya ha tenido su cumpleaños este año. Averiguar la fecha hasta el cumpleaños el próximo año.
Utilice este método para imprimir el número de días hasta su próximo cumpleaños en display_summaries.
Aquí están las importaciones añadido:
desde datetime tiempo dateimport importación
El nuevo days_to_birthday Método:
days_to_birthday def (uno mismo): "" "Calcula el número de días hasta el cumpleaños person'snext (podría ser el año que viene)" "" hoy = date.today () Spam = time.strptime (self.date_of_birth, "% B% d% Y ") persons_dob = Fecha (today.year, spam.tm_mon, spam.tm_mday) # tomar el año a partir de la fecha de hoy, pero el día monthand partir de la fecha de nacimiento del # de la persona. Esto crea una fecha enla year.difference actual = difference.days persons_dob-todayif lt; 0: # tenía cumpleaños este yearalreadypersons_dob = Fecha (today.year + 1, spam.tm_mon, spam.tm_mday) # quedan próximos años difference.days fecha y recalculatedifference = persons_dob-todayreturn
El nuevo display_summaries método se parece a esto:
def display_summaries (auto): "" "Muestra información sumaria para cada libro inaddress entrada" "" print ("Viendo Resúmenes") para el índice, de entrada en enumerate (self.address_book.people): Spam = entry.days_to_birthday () si el spam == 0: days_to_go = "Hoy!" else: days_to_go = "% s días"% spamprint ("% s:% s próximo cumpleaños:.% s"% (índice + 1, entrada, days_to_go)) # inicia la numeración en 1
Utilice Python para ayudar con su tarea de matemáticas
Python puede hacer fracciones para que pueda comprobar sus respuestas de la tarea. Utilizar el fracciones módulo, y su Fracción oponerse, especificando el numerador y el denominador. Para llegar a la mitad, el tipo fractions.Fraction (1, 2). Durante cuatro quintas partes, el tipo fractions.Fraction (4, 5):
Tkinter en Python viene con un montón de buenos widgets. Reproductores son elementos estándar interfaz gráfica de usuario (GUI), como diferentes tipos de botones y menús. La mayoría de Tkinter los widgets se dan aquí.
Etiqueta Widget
LA Label widget de muestra de texto para el usuario. Puede actualizar el widget mediante programación para, por ejemplo, proporcionar una barra de lectura o de estado.
importación Tkinterparent_widget = Tkinter.Tk () label_widget = Tkinter.Label (parent_widget, text = "de una etiqueta") label_widget.pack () Tkinter.mainloop ()
Botón Widget
LA Botón puede ser encendido y apagado. Cuando un usuario hace clic en él, el botón emite un evento. Las imágenes se pueden visualizar en los botones.
LA Boton de radio le permite poner botones a la vez, por lo que sólo uno de ellos se puede hacer clic. Si un botón es en y el usuario hace clic en otro, el primero se establece en apagado. Usar Tkinter variables (principalmente Tkinter.IntVar y Tkinter.StringVar) Para acceder a su estado.
importación Tkinterparent_widget = Tkinter.Tk () v = Tkinter.IntVar () v.set (1) # necesitan utilizar v.set y v.get para establecer y getthis variableradiobutton_widget1 = Tkinter.Radiobutton (parent_widget, text = "RadioButton 1" , variable = v, valor = 1) radiobutton_widget2 = Tkinter.Radiobutton (parent_widget, text = "RadioButton 2", variable = v, valor = 2) radiobutton_widget1.pack () radiobutton_widget2.pack () Tkinter.mainloop ()
Botón de radio Widget (Suplente)
Puede mostrar una Boton de radio sin el indicador de punto. En ese caso muestra el estado al ser hundidos o en relieve.
LA CheckButton registros de encendido / apagado o verdadero estado / falso. Como un Boton de radio, la CheckButton widget se puede mostrar sin su marca de verificación, y hay que utilizar un Tkinter variable para acceder a su estado.
Usar una Nivel widget cuando quieres un control deslizante que va de un valor a otro. Puede configurar los valores de inicio y final, así como el paso. Por ejemplo, se puede tener un control deslizante que tiene sólo los valores pares entre 2 y 100. Acceda a su valor actual por su obtener método- establezca su valor actual por su conjunto método.
los LabelFrame actúa como un widget padre para otros widgets, mostrándolos con un título y un resumen. LabelFrame tiene que tener un control hijo antes de poder verlo.
los Menú widget se puede crear una barra de menú. Creación de menús puede ser difícil, especialmente si usted desea menús desplegables. Para ello, se utiliza una separada Menú Reproductor de cada menú desplegable que está creando.
importación Tkinterparent_widget = Tkinter.Tk () def menu_callback (): print ("Estoy en la devolución de llamada menú!") def submenu_callback (): print ("Estoy en la devolución de llamada submenú!") menu_widget = Tkinter.Menu ( parent_widget) submenu_widget = Tkinter.Menu (menu_widget, TEAROFF = False) submenu_widget.add_command (label = "Submenú Item1", comando = submenu_callback) submenu_widget.add_command (label = "Submenú Elemento2", comando = submenu_callback) menu_widget.add_cascade (label = "Item1", menu=submenu_widget)menu_widget.add_command(label="Item2",command=menu_callback)menu_widget.add_command(label="Item3",command=menu_callback)parent_widget.config(menu=menu_widget)Tkinter.mainloop()
OptionMenu Widget
los OptionMenu Reproductor permite al usuario elegir entre una lista de opciones. Para utilizar el OptionMenu de la manera correcta, usted probablemente tendrá que unirse a una devolución de llamada independiente que actualiza otra información basada en la selección del usuario. Obtener el valor seleccionado en ese momento con su obtener método.
Python 2.7 Palabra clave de subconjuntos y ejemplos
La programación es una habilidad importante. Python le servirá bien en los años venideros. Los cuadros aquí darle las palabras centrales, muebles empotrados, funciones de la biblioteca estándar y operadores que utilizará más cuando estás de codificación con Python.
Palabras Python Core
Palabra clave
Sumario
Ejemplo
y
Operador lógico para probar si dos cosas son a la vez Cierto.
x> 2 y XLT; 10
como
Asignar un objeto de archivo a una variable. Se utiliza con con. Deje que su código se refiere a un módulo con un nombre diferente (también llamado alias). Se utiliza con importación.
con abierta (lt;nombre del archivo>, lt;modo de archivo>) Como lt;nombre del objeto>: cPickle importación como salmuera
descanso
Detener la ejecución de un bucle.
for i in range (10): si i% 2 == 0: descanso
clase
Definir un objeto personalizado.
clase lt;nombre de la clase> (objeto): clase MiClase (objeto): pasar
continuar
Saltar equilibrio de bucle y comenzar una nueva iteración.
for i in range (10): si i% 2 == 0: continuar
def
Definir una función.
def lt;nombre de la función> (): pasar mi_funcion def (): pasar
elif
Añadir a una prueba condicional si cláusula.
Ver si.
otro
Añadir un bloque de código alternativo.
Ver si.
para
Crear un bucle que itera a través de elementos de una lista (u otro iterable).
para lt;ficticio nombre de variable> En lt;secuencia>: for i in range (10):
de
Importar funciones específicas de un módulo sin importar todo el módulo.
de lt;nombre del módulo> Importación lt;nombre de la función o el objeto> desde randint importación al azar
global
Hacer una variable global en su alcance. (Si una variable se define en la sección principal, puede cambiar su valor dentro de una función.)
x mundial
si
Crear una condición. Si la condición es Cierto, se ejecuta el bloque de código asociado. De lo contrario, cualquier elif se procesan los comandos. Si no hay ninguno, o ninguno son satisfechas, ejecute el otro bloquear si es que existe.
si : [elif : , ...] [más: ] si x == 1: print ("x es 1") elif x == 2: print ("x es 2") elif x> 3: print ("x es mayor que 3") otro print ("x no es mayor que 3, ni es 1 o 2 de un")
importación
Utilice el código definido en otro archivo sin volver a escribir la misma.
importación lt;nombre del módulo> importación al azar
en
Se utiliza para probar si un valor dado es uno de los elementos de un objeto.
1 en el rango (10)
es
Se utiliza para comprobar si los nombres hacen referencia al mismo objeto.
x = Ninguno x es más rápido que # Ninguno x == Ninguno
lambda
Definición de la función taquigrafía. Por lo general utiliza cuando necesita una función que se pasa como argumento a otra función.
lambda : veces = lambda x, y: x * y command = lambda x: self.draw_line (self.control_points)
no
Negación lógica, que se utiliza para negar una condición lógica. No utilice para la prueba mayor que, menor que, o igual.
No 10 en el rango (10)
o
Operador lógico para probar si al menos una de las dos cosas es Cierto.
XLT; 2 o x> 10
pasar
Palabra clave de marcador de posición. No hace más que dejar de Python quejándose de que un bloque de código está vacía.
a_function def (): pasar
impresión
Texto de salida a un terminal.
impresión("Hola Mundo!")
regreso
Retorno de la ejecución de una función. Si se especifica un valor, devolverá ese valor, de lo contrario volver Ninguno.
Return volver x + 2
mientras
Ejecutar un bloque de código mientras que la condición de asociado es Cierto.
mientras : while True: pasar
con
Obtener Python para gestionar un recurso (como un archivo) para usted.
con abierta (,) Como
Extienda la funcionalidad principal de Python con estos muebles empotrados.
Python Built-ins
Built-in
Notas
Ejemplo
Falso
Valor, devuelto por una operación lógica o directamente asignado.
ok_to_continue = False edad = 16 old_enough = edad> = 21 (evalúa la comparación edad> = 21 y asigna el resultado a edad suficiente)
Ninguno
Valor utiliza cuando en representación de la ausencia de un valor o para inicializar una variable que se cambió más tarde. Devuelto por funciones que no devuelven un valor explícitamente.
x = Ninguno
Cierto
Valor, devuelto por una operación lógica.
ok_to_continue = True edad = 21 old_enough = edad> = 21 (evalúa la comparación edad> = 21 y asigna el lugar a old_enough)
__nombre__
Constante, muestra el nombre del módulo. Si no es "__principal__", el código está siendo utilizado en una importación.
si __name __ =="__main__":
dir
Atribuye Lista de un elemento.
dir (lt;nombre del objeto>)
enumerar
Iterar a través de una secuencia y el número de cada elemento.
enumerar ('Hola')
Salida
Salga de Python (línea de comandos) intérprete.
Salida()
flotador
Convertir un número en un decimal, por lo general de manera que la división funciona correctamente.
1 / flotador (2)
getattr
Obtener un atributo de un objeto por un nombre. Útil para la introspección.
getattr (lt;nombre del objeto>, lt;nombre del atributo>)
Ayuda
Obtener Python docstring el objeto.
ayuda (lt;nombre del objeto>) ayuda (getattr)
Identificación
Mostrar la ubicación en la RAM de las computadoras donde se almacena un objeto.
id (lt;nombre del objeto>) id (ayuda)
int
Convertir una cadena en un número entero.
int ('0')
len
Obtener el número de elementos en una secuencia.
len ([0,1])
objeto
Una base sobre la que otras clases pueden heredar de.
clase CustomObject (objeto):
abierto
Abra un archivo en el disco, devolver un objeto de archivo.
abierto (, ) abierto ('mydatafile.txt'>, 'r') # leer abierta un archivo para leer datos de abierto ('mydatafile.txt'>, 'r') # escritura (crea un nuevo archivo para escribir, destruye cualquier archivo existente con el mismo nombre) abierto ('mydatafile.txt'>, 'r') # append (añade a un archivo existente en su caso, o crea uno nuevo si ninguno ya existente)
impresión
Reimplementación de impresión palabra clave, pero como una función.
impresión('Hola Mundo!')
alcance
Da números entre los límites inferior y superior especificados (incluyendo el más bajo, pero sin incluir el límite superior). Se puede especificar un paso.
rango (10) rango (5,10) rango (1,10,2)
raw_input
Obtener un poco de texto como una cadena del usuario, con un símbolo opcional.
prontas ='¿Cuál es su respuesta?' players_guess = raw_input (prompt)
str
Convertir un objeto (por lo general un número) en una cadena (por lo general para la impresión).
Es la parte izquierda superior a la derecha? > = significa mayor que o igual a
>>> 2> 1 Cierto
lt;
Menos que
Es la parte izquierda inferior a la derecha? lt; = significa menor o igual a
>>> 1 lt; 2 Cierto
(o y)
Y
Son a la vez a la izquierda y derecha Cierto? Normalmente se utiliza para condiciones complejas en las que desea hacer algo si todo está Cierto: mientras im_hungry y you_have_food:
Es a la izquierda oa la derecha Cierto? Normalmente se utiliza para condiciones complejas en las que desea por lo menos una cosa a tener en Cierto: mientras im_bored o youre_bored:
Python le proporciona un poder considerable a la hora de crear aplicaciones de medios. Sin embargo, la mayoría de las aplicaciones requieren algún tipo de procesamiento especial para hacer que funcionen. Ahí es donde entran en juego las…
LA constructor es un tipo especial de método que Python llama cuando se crea la instancia de un objeto utilizando las definiciones que se encuentran en su clase. Python se basa en el constructor para realizar tareas como inicializar (la asignación…
LA cola funciona de manera diferente que una pila en Python. Piense en cualquier línea que hayas estuviste en: Vas a la parte de atrás de la línea, y al llegar a la parte delantera de la línea se llega a hacer lo que estuviste en la línea de…
Muy pocas aplicaciones existen en su propio mundo - es decir, aparte del usuario. Esto se aplica a las aplicaciones de Python también. De hecho, la mayoría de las aplicaciones interactúan con los usuarios de una manera importante porque los…
Algunas cosas que se desarrollan en Python tienen un terrible hábito de escupir excepciones cuando los valores de las entradas del usuario inesperados. Parte de la solución es proporcionar la comprobación de rango. Sin embargo, la comprobación…
La mayoría de los lenguajes de programación (Python excluido), proporcionan algún tipo de sentencia switch. Una sentencia switch proporciona selecciones elegantes tipo menú. El usuario tiene un número de opciones, pero se le permite elegir…
Las funciones se pueden visualizar los datos directamente en Python o pueden devolver los datos de la persona que llama para que la persona que llama puede hacer algo más con ella. En algunos casos, una función muestra los datos directamente, así…
A medida que trabaja a través de ejemplos de programación Python, verá que algunas líneas están sangrados. De hecho, usted también verá una buena cantidad de espacio en blanco (como líneas adicionales entre líneas de código). Python ignora…
Incluso la introducción de datos del tipo incorrecto produce un mensaje de error en Python, pero entrar en el tipo correcto de los datos fuera del rango dice nada al usuario. En este ejemplo, a descubrir los medios para corregir este problema…
Su aplicación Python puede llegar al punto en el que es necesario utilizar el elif cláusula. Usted va a un restaurante y mira el menú. El restaurante ofrece huevos, panqueques, waffles, y la harina de avena para el desayuno. Después de elegir…
Es posible utilizar el si declaración en un número de maneras en una aplicación Python. Sin embargo, inmediatamente se necesita saber acerca de tres maneras comunes de usarlo:Utilice una sola condición para ejecutar una única sentencia, cuando…
La siguiente lista muestra cómo realizar los métodos de cadena comunes o acciones en una cadena, en Python. Llene la orden específico para lograr el resultado deseado.SintaxisAcciónS.count (subcadena [, start [, end]])Contar ocurrencias de…