Booleanos, operaciones lógicas y binarias

Booleanos, operaciones lógicas y binarias

…re del comportamiento de otros lenguajes en los que dicha expresión sería considerada como (a < b) < c. Evaluación de las operaciones lógicas La evaluación de una expresión al utilizar los operadores and u or sigue las siguientes reglas: and y or evalúan una expresión de izquierda a derecha. La operación and, si todos los valores son True, retorna el último en ser evaluado. Si algún valor es falso, retorna el primero. or retorna el primer valor qu…

Subir múltiples archivos con progreso en web2py

Subir múltiples archivos con progreso en web2py

…& drop files here</h3> <div class=»btn btn-primary btn-block mb-5″> <span>Open the file Browser</span> <input type=»file» title=’Click to add Files’ /> </div> </div><!– /uploader –> </div> <div class=»col-md-6 col-sm-12″> <div class=»card h-100″> <div class=»card-header»> File List </div> <ul class=»list-unstyled p-2 d-flex flex-column col» id=»files»> <li class=»text-muted text-center empty»>No files uploaded.</li> </ul> </div> </div> </div><!…

Compresión y descompresión de archivos zip, gz y bz2

Compresión y descompresión de archivos zip, gz y bz2

…ivos, los cuales comprime y, en caso de estar comprimido, descomprime solicitando la contraseña de ser necesario. # zipcompressor.py from zipfile import BadZipfile, ZipFile import os import sys def compress(filename): with ZipFile(filename + «.zip», «w») as f: arcname = filename.replace(«\\», «/») arcname = arcname[arcname.rfind(«/») + 1:] f.write(filename, arcname) def decompress(filename, pwd=None): with ZipFile(filename) as f: try: f.extractall…

Calcular tiempo de ejecución

…dbye'») La herramienta puede también ser utilizada a través de la línea de comandos: python -m timeit «‘Hello, world!’.replace(‘Hello’, ‘Goodbye’)» 1000000 loops, best of 3: 0.385 usec per loop Para medir el tiempo transcurrido durante la ejecución de una función, el siguiente decorador, que hace uso de la función time.time, me ha resultado útil al momento de desarrollar. from time import time def count_elapsed_time(f): «»» Decorator. Execute the

El módulo platform – Información del sistema y ordenador

…nformación del compilador utilizado para compilar Python. >>> platform.python_compiler() # Windows ‘MSC v.1600 64 bit (AMD64)’ >>> platform.python_compiler() # Linux ‘GCC 4.6.3’ # Retorna una tupla indicando el número de compilación junto con la fecha >>> platform.python_build() # Python 2 (‘default’, ‘Nov 10 2013 19:24:24’) >>> platform.python_build() # Python 3 (‘v3.3.3:c3896275c0f6’, ‘Nov 18 2013 21:19:30’) # Nombre de la implementación de Pyth…

multiprocessing – Tareas concurrentes con procesos

…l bucle principal de una aplicación gráfica. Otras implementaciones de Python como Jython o IronPython carecen de GIL, por lo que pueden explotar al máximo los beneficios de la programación multi-hilo. Sackless Python permite ejecutar grandes cantidades de «microthreads», «tasklets» o «hilos livianos» (véase StacklessPython). La programación multi-proceso resulta una óptima alternativa, limpia y eficiente. El paquete incluye módulos para intercamb…

Comprensión de listas y otras colecciones

Comprensión de listas y otras colecciones

…sión de listas vamos a generalizar su sintaxis del siguiente modo: [expresion for variable in colección if condición] A menudo la expresión (es decir, aquello que terminará inserto en la lista resultante) es igual a la variable (como vimos en el último ejemplo), y la condición es opcional. La colección puede ser una lista o cualquier otro objeto iterable (esto es, cualquier cosa sobre lo que podamos aplicar un bucle «for»). A través de la comprens…

hashlib – Cifrar con los algoritmos MD5 y SHA

hashlib – Cifrar con los algoritmos MD5 y SHA

…primir el resultado en pantalla: h = hashlib.new(«sha1», b«www.recursospython*]}*.com – Recursos Python») print(h.digest()) h = hashlib.new(«sha1», «www.recursospython*]}*.com – Recursos Python») print h.digest() El método digest() retorna la cadena cifrada en binario. Para obtenerla en hexadecimal, existe la función hexdigest(). Nótese que para los algoritmos SHAKE, los métodos digest() y hexdigest() requieren como argumento la longitud de la cadena resu

Desarrollo de extensiones de Python en C

…z que hayas terminado con tu archivo setup.py, abre la terminal o línea de comandos, y dirígete a su ubicación (utilizando el comando cd, por ejemplo, cd usuario/proyectos/extc). Luego, ejecuta: python setup.py build Este comando comenzará con el proceso de compilado de nuestra extensión. Asegúrate que python esté enlazado con el intérprete correspondiente a la versión que has utilizado para escribir tu extensión de C. Esto generará una salida sim…

Introducción a web2py

Introducción a web2py

…st.content}} </p> <h3>Comentarios</h3> {{if post.comments is not None:}} {{for comment in post.comments:}} <div class=»comment»> {{=comment}} </div> {{pass}} {{else:}} No hay comentarios. {{pass}} </html> Aquí hemos utilizado un poco de código Python dentro de la vista para mostrar cada uno de los comentarios. La única diferencia es que debemos emplear {{pass}} para delimitar los bloques de código, dado que en las vistas la sangría es opcional. Ah…