Mostrando entradas con la etiqueta Capítulo 3. Mostrar todas las entradas
Mostrando entradas con la etiqueta Capítulo 3. Mostrar todas las entradas

sábado, 9 de junio de 2018

Receta Python 3 No. 3-16: Manipular Fechas con Zonas Horarias

1. Problema

Manipular fechas que involucran zonas horarias.

2. Solución

El módulo pytz cuenta con la base de datos Olson; ésta provee información de facto sobre zonas horarias para diferentes idiomas y sistemas operativos (Beazly, Jones, 2013).

3. Código Python 3

Archivo Python fechas-zonas-horarias.py [enlace alternativo]:

Prueba de ejecución:


Fecha base: 2013-03-14 17:23:29
Fecha Bogotá: 2013-03-14 17:23:29-05:00
Fecha Singapur: 2013-03-15 06:23:29+08:00

4. Literatura & Enlaces

Beazly D, Jones B. K. (2013). Python Cookbook, Third Edition. United States: O'Reilly Media.

O

viernes, 8 de junio de 2018

Receta Python 3 No. 3-15: Convertir una Cadena de Caracteres en Fechas y Horas

1. Problema

Convertir una cadena de caracteres en la representación de una fecha y hora.

2. Solución

El módulo datetime facilita la solución de este problema por medio de varias construcciones -i.e., métodos- utilitarios (Beazly, Jones, 2013).

3. Código Python 3

Archivo Python conversion-cadena-fecha.py [enlace alternativo]:

Prueba de ejecución:

2013-04-13 00:00:00
1882 days, 6:41:01.908285

4. Literatura & Enlaces

Beazly D, Jones B. K. (2013). Python Cookbook, Third Edition. United States: O'Reilly Media.

O

jueves, 7 de junio de 2018

Receta Python 3 No. 3-14: Encontrar un Rango de Fecha para un Mes Particular

1. Problema

Encontrar un rango de fecha para un mes específico.

2. Solución

Por medio del objeto datetime.timedelta se calcula el incremento de fecha de acuerdo a un paso dado (Beazly, Jones, 2013).

3. Código Python 3


Prueba de ejecución:


2018-06-01
2018-06-02
2018-06-03
2018-06-04
2018-06-05
2018-06-06
2018-06-07
2018-06-08
2018-06-09
2018-06-10
2018-06-11
2018-06-12
2018-06-13
2018-06-14
2018-06-15
2018-06-16
2018-06-17
2018-06-18
2018-06-19
2018-06-20
2018-06-21
2018-06-22
2018-06-23
2018-06-24
2018-06-25
2018-06-26
2018-06-27
2018-06-28
2018-06-29
2018-06-30

4. Literatura & Enlaces

Beazly D, Jones B. K. (2013). Python Cookbook, Third Edition. United States: O'Reilly Media.

O

miércoles, 6 de junio de 2018

Receta Python 3 No. 3-13: Determinar la Fecha del Último Día

1. Problema

Encontrar la fecha de la última ocurrencia de una día de la semana previo a la fecha actual.

2. Solución

El módulo incorporado datetime cuenta con métodos utilitarios que ayudan a la resolución de este caso (Beazly, Jones, 2013).

3. Código Python 3


Prueba de ejecución:


2018-06-06 07:25:29.804835
2018-06-03 07:25:29.804835
2018-05-30 07:25:29.804835
2018-06-01 07:25:29.804835

4. Literatura & Enlaces

Beazly D, Jones B. K. (2013). Python Cookbook, Third Edition. United States: O'Reilly Media.

O

martes, 5 de junio de 2018

Receta Python 3 No. 3-12: Convertir Días en Segundos

1. Problema

Convertir días en segundos. De forma análoga, realizar conversiones comunes de tiempo.

2. Solución

El módulo datetime de Python permite realizar conversiones de tiempo. Otras operaciones interesantes son las de aritmética: diferencia y suma entre dos instancias de tiempo (Beazly, Jones, 2013).

3. Código Python 3


Prueba de ejecución:


5
37800
10.5
130.5

2018-06-19 00:00:00
1879

2018-06-05 07:19:08.949999

2018-06-05 07:32:08.949999

4. Literatura & Enlaces

Beazly D, Jones B. K. (2013). Python Cookbook, Third Edition. United States: O'Reilly Media.

O

lunes, 4 de junio de 2018

Receta Python 3 No. 3-11: Seleccionar Elementos de una Colección de Forma Aleatoria

1. Problema

Seleccionar elementos de una colección usando aleatoriedad.

2. Solución

La función choice() del módulo random permite escoger un elemento entre varias opciones. Las opciones estarán almacenadas, por ejemplo, en una lista.


La función shuffle() aleatoriza la posición de los elementos de una lista. Se comparta como una baraja de cartas: las cartas quedan repatidas sin seguir ningún patrón.



Alternativamente, para la sección de varios elementos como muestra se usal a función random.sample(coleccion, cantidad_muestra) (Beazly, Jones, 2013).

3. Código Python 3


Prueba de ejecución:


2
7
3
11
2

[3, 11, 7, 5, 2]

[3, 7, 2]
[11, 7, 2]
[3, 11]
[2, 5]

4. Literatura & Enlaces

Beazly D, Jones B. K. (2013). Python Cookbook, Third Edition. United States: O'Reilly Media.

O

jueves, 31 de mayo de 2018

Receta Python 3 No. 3-10: Cómputo de Operaciones de Álgebra Lineal

1. Problema

Realizar operaciones con matrices, y cálculo matricial (o álgebra lineal).

2. Solución

La librería NumPy provee elementos de programa para trabajar con matrices; entre ellos se encuentra el objeto matrix. El cálculo matricial o álgebra lineal ayuda resolver problemas del mundo real utilizando la matriz como estructura contenededora de los datos a manipular (Beazly, Jones, 2013).

3. Código Python 3


Prueba de ejecución:

[[-2  3 -5]
 [ 2  3  5]
 [ 7 11 13]]

[[-2  2  7]
 [ 3  3 11]
 [-5  5 13]]

[[-0.2962963  -1.74074074  0.55555556]
 [ 0.16666667  0.16666667  0.        ]
 [ 0.01851852  0.7962963  -0.22222222]]

[[2]
 [3]
 [5]]
[[-20]
 [ 38]
 [112]]

53.999999999999986

[15.45540789+0.j         -0.72770395+1.72173448j -0.72770395-1.72173448j]

[[-3.03703704]
 [ 0.83333333]
 [ 1.31481481]]

4. Literatura & Enlaces

Beazly D, Jones B. K. (2013). Python Cookbook, Third Edition. United States: O'Reilly Media.

O

miércoles, 30 de mayo de 2018

Receta Python 3 No. 3-9: Realizar Operaciones con Arreglos Numéricos Grandes

1. Problema

Realizar cálculos sobre arreglos numéricos grandes.

2. Solución

Por medio de la librería NumPy se realizan cálculos entre escalares y arreglos, o arreglos arreglos; además, es posible hacer álgebra lineal. Esta librería cuenta con optimizaciones verdadaremente poderosas para cálculos matemáticos complejos (Beazly, Jones, 2013).

3. Código Python

Archivo Python calculo-arreglos-numericos-grandes.py [enlace alternativo]:

Prueba de ejecución:


[ 4  6 10 14 22]
[ 7  8 10 12 16]
[15 20 24 20 40]
[ 26  51  95  91 319]
[ 15  28  72 140 348]

4. Literatura & Enlaces

Beazly D, Jones B. K. (2013). Python Cookbook, Third Edition. United States: O'Reilly Media.

O

domingo, 27 de mayo de 2018

Receta Python 3 No. 3-7: Validar Valores Infinitos y NaN

1. Problema

Validar el estado de infinidad (positiva y negativa) y no-número de un valor punto flotante.

2. Solución

El módulo math cuenta con los métodos isinf() y math.isnan() para realizar estas comprobaciones (Beazly, Jones, 2013).

3. Código Python 3


Prueba de ejecución:


-inf
inf
nan
True
True
True

4. Literatura & Enlaces

Beazly D, Jones B. K. (2013). Python Cookbook, Third Edition. United States: O'Reilly Media.

O

jueves, 24 de mayo de 2018

Receta Python 3 No. 3-6: Operar con Números Complejos

1. Problema

Realizar operaciones aritméticas con números complejos.

2. Solución

En Python se cuenta con la función complex(real, imag) para formar la estructura que representa números complejos, es decir, (parte_real, parte_compleja). Para operaciones adicionales con complejos es necesario importar el módulo cmath (Beazly, Jones, 2013).


Nota: El interés en este campo radica en fortalecer esquemas de autenticación para la Web. Por eso es importante que el programador Python entienda estas estructuras matemáticas.

3. Código Python 3


Prueba de ejecución:


(2+4j)
(3-5j)
2.0
-5.0
(2-4j)
(5-1j)
(26+2j)
(-0.4117647058823529+0.6470588235294118j)
4.47213595499958
(24.83130584894638-11.356612711218173j)
(-11.36423470640106-24.814651485634183j)
(-4.829809383269385-5.5920560936409816j)

4. Literatura & Enlaces


Beazly D, Jones B. K. (2013). Python Cookbook, Third Edition. United States: O'Reilly Media.


O

miércoles, 23 de mayo de 2018

Receta Python 3 No. 3-5: Empaquetar y Desempaquetar Enteros Grandes desde Elementos Byte

1. Problema

A partir de una cadena de bytes recrear (desempaquetar) un número entero. Realizar el proceso inverso (empaquetar) usando un entero y obtener una cadena de bytes.

2. Solución

El método from_bytes() -propio de int- permite interpretar una cadena de bytes como un número entero. De forma análoga, un número entero grande puede ser revertido a su representación de bytes por medio del método to_bytes() (Beazly, Jones, 2013).

3. Código Python 3


Prueba de ejecución:


16
69120565665751139577663547927094891008
94522842520747284487117727783387188

b'\x00\x124V\x00x\x90\xab\x00\xcd\xef\x01\x00#\x004'
b'4\x00#\x00\x01\xef\xcd\x00\xab\x90x\x00V4\x12\x00'

4. Literatura & Enlaces

Beazly D, Jones B. K. (2013). Python Cookbook, Third Edition. United States: O'Reilly Media.

O

viernes, 18 de mayo de 2018

Receta Python 3 No. 3-4: Representar Enteros como Números Binarios, Octales y Hexadecimales

1. Problema

Representar números enteros como binarios, octales y hexadecimales a partir de representaciones enteras.

2. Solución

Python cuenta con las funciones bin(), oct(), y hex() que permiten la conversiones de valores enteros en bases binaria, octal y hexadecimal (Beazly, Jones, 2013).


Las conversiones también se pueden realizar por medio del método format().

3. Código Python 3

Archivo Python bases-numericas.py [enlace alternativo]:

Prueba de ejecución:


0b10011010010100
0o23224
0x2694

10011010010100
23224
2694

4. Literatura & Enlaces

Beazly D, Jones B. K. (2013). Python Cookbook, Third Edition. United States: O'Reilly Media.

O

jueves, 17 de mayo de 2018

Receta Python 3 No. 3-3: Formatear Números para Presentación Visual

1. Problema

Formatear números para presentación visual: precisión, alineación, separador de unidades de mil, entre otros.

2. Solución

Por medio de la función integrada format() de Python es fácil y flexible realizar el formateo de números (Beazly, Jones, 2013).

3. Código Python 3


Prueba de ejecución:


3141.59
    3141.6
3141.6    
3,141.59265
3,141.6
3.141593e+03
3.14E+03

4. Literatura & Enlaces

Beazly D, Jones B. K. (2013). Python Cookbook, Third Edition. United States: O'Reilly Media.

O

miércoles, 9 de mayo de 2018

Receta Python 3 No. 3-2: Realizar Cálculos Precisos con Decimales

1. Problema

Realizar cálculos precisos con números reales evitando la pérdida generada por tipos numéricos de punto flotante.

2. Solución

El módulo decimal provee la clase Decimal para el tratamiento de operaciones o cálculos de némeros decimales (Beazly, Jones, 2013).

3. Código Python


Prueba de ejecución:

6.300000000000001
False
6.3
True

4. Literatura & Enlaces

Beazly D, Jones B. K. (2013). Python Cookbook, Third Edition. United States: O'Reilly Media.

O