viernes, 24 de agosto de 2018

Receta Python 3 No. 7-8: Usar Diferente Número de Argumentos en una Función

1. Problema

Invocar una función con una cantidad de argumentos diferente a la requerida.

2. Solución

 El módulo functools cuenta con la función partial la cual permite especificar valores fijos a uno o más parámetros de una función (Beazly, Jones, 2013).

3. Código Python 3

Archivo Python fijar_valores_funcion_invocacion.py [enlace alternativo]:

Prueba de ejecución:


10
26

4. Literatura & Enlaces

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

O

Receta Python 3 No. 7-7: Capturar Variables en Funciones Anónimas

1. Problema

En una expresión lambda capturar variables durante el tiempo de su diseño.

2. Solución

Las variables usadas en el cuerpo de definición de una expresión lambda (i.e., modelo para la definición de una función anónima) se conocen como variables libres: los valores actuales de estas variables son los que se recuperan en la expresión usada (Beazly, Jones, 2013).

3. Código Python 3

Archivo Python variables-libres-funciones-anonimas.py [enlace alternativo]:
Prueba de ejecución:

27
27
25
27

4. Literatura & Enlaces

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

O

miércoles, 22 de agosto de 2018

Receta Python 3 No. 7-6: Definir Funciones Anónimas En Línea

1. Problema

Se requiere escribir una función anónima para ordenar los elementos de una lista.

2. Solución

Las funciones anónimas resultan útiles para la definición de un conjunto de operaciones que no requieren estar definidas dentro del cuerpo de una función con nombre (Beazly, Jones, 2013).

Por ejemplo, se podría utilizar una función anónima para ordenar los elementos de una lista sin necesidad de crear un cuerpo de función con un nombre particular.

3. Código Python 3


Prueba de ejecución:


5
7
['Jaela Meneses', 'Oliva Ordoñez', 'Edward Ortiz', 'Juan Urbano']

4. Literatura & Enlaces

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

O

viernes, 17 de agosto de 2018

Receta Python 3 No. 7-5: Definir Funciones con Parámetros Predeterminados

1. Problema

Se requiere definir funciones que acepten parámetros por defecto y opcionales.

2. Solución

Para definir un parámetro opcional y predeterminado sobre una función basta con asignar, a través del operador asignación =, el valor en cuestión. Además, es necesario especificar los argumentos opcionales al final de los requeridos (Beazly, Jones, 2013).

3. Código Python 3

Archivo Python funcion-parametros-predeterminados.py [enlace alternativo]:

Prueba de ejecución:

fernando@outlook.com Mensaje de prueba john@outlook.com 2018-08-17 07:47:13.992053

4. Literatura & Enlaces

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

O

jueves, 16 de agosto de 2018

Receta Python 3 No. 7-4: Retornar Múltiples Valores desde una Función

1. Problema

Se requiere retornar múltiples valores desde una función.

2. Solución

Para retornar múltiples valores desde una función se recurre al uso de tuplas (Beazly, Jones, 2013).

3. Código Python 3

Archivo Python multiples-valores-retorno-funcion.py [enlace alternativo]:

Prueba de ejecución:

2 3 4 5

4. Literatura & Enlaces

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

O

sábado, 11 de agosto de 2018

Receta Python 3 No. 7-3: Especificar Metadatos a los Parámetros de una Función

1. Problema

Se requiere especificar en una función metadatos sobre sus parámetros.

2. Solución

Entre los metadatos que se pueden especificar en los parámetros de una función es el tipo de dato. Además, también es posible asignar el tipo de dato al valor de retorno de la función (Beazly, Jones, 2013).

3. Código Python 3

Archivo Python metadatos-funcion.py [enlace alternativo]:

Prueba de ejecución:


Help on function sumar in module __main__:

sumar(numero1:int, numero2:int) -> int
    Suma dos números enteros.
    :param numero1: Primer sumando (int)
    :param numero2: Segundo sumando (int)
    :return: Suma de dos números (int)

4. Literatura & Enlaces

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

O

viernes, 10 de agosto de 2018

Receta Python 3 No. 7-2: Escribir Funciones que Acepten Solo Argumentos por su Nombre

1. Problema

Se requiere escribir una función que acepte determinados argumentos por palabra clave.

2. Solución

Se debe preceder el argumento por un carácter de asterisco *, antes que nada es necesario separarlo por una coma (como cualquier otro argumento) (Beazly, Jones, 2013).

3. Código Python 3

Archivo Python argumentos-nombrados.py [enlace alternativo]:

Prueba de ejecución:


La línea 6 produce el error TypeError el cual indica sólo se ha pasado un argumento; se debe remover o comentar esta línea para eliminar el error.

4. Literatura & Enlaces

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

O

lunes, 6 de agosto de 2018

Receta Python 3 No. 7-1: Escribir Funciones que Acepten Cualquier Número de Argumentos

1. Problema

Se requiere escribir funciones que acepten cualquier número de argumentos.

2. Solución

El operador * (asterisco) seguido de un nombre de parámetro ayuda a especificar un número variable de argumentos de entrada en una función (Beazly, Jones, 2013).

3. Código Python 3

Archivo Python funciones-argumentos-variable.py  [enlace alternativo]:

Prueba de ejecución:


2.5
4.25

4. Literatura & Enlaces

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

O

domingo, 5 de agosto de 2018

Receta Python 3 No. 6-13: Resumen y Estadísticas de Datos

1. Problema

Se requiere crear un resumen y estadísticas de un volumen de datos considerable.

2. Solución

Existe una librería muy poderosa para computar estadísitcas y resúmenes de datos: Pandas. Esta librería provee un sinnúmero de funciones para el tratamiento de datos de gran volumen (Beazly, Jones, 2013).

3. Código Python 3

Archivo Python resumenes-estadisticas-datos.py [enlace alternativo]:

Prueba de ejecución:


   Unnamed: 0  litter  rx  time  status
0           1       1   1   101       0
1           2       1   0    49       1
2           3       1   0   104       0
3           4       2   1   104       0
4           5       2   0   102       0
     Unnamed: 0  litter  rx  time  status
145         146      49   0    91       0
146         147      49   0   104       0
147         148      50   1   104       0
148         149      50   0   104       0
149         150      50   0    79       1
0     0
1     1
2     0
3     0
4     0
5     0
6     0
7     0
8     0
9     0
10    0
11    0
12    0
13    0
14    0
15    1
16    1
17    0
18    1
19    0
20    1
21    1
22    0
23    0
24    0
25    0
26    0
27    1
28    0
29    0
Name: status, dtype: int64
       Unnamed: 0      litter          rx        time      status
count  150.000000  150.000000  150.000000  150.000000  150.000000
mean    75.500000   25.500000    0.333333   89.426667    0.266667
std     43.445368   14.479214    0.472984   17.277190    0.443698
min      1.000000    1.000000    0.000000   34.000000    0.000000
25%     38.250000   13.000000    0.000000   78.250000    0.000000
50%     75.500000   25.500000    0.000000   94.500000    0.000000
75%    112.750000   38.000000    1.000000  104.000000    1.000000

max    150.000000   50.000000    1.000000  104.000000    1.000000

Archivo ratas.csv [enlace alternativo].

4. Literatura & Enlaces

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

O

sábado, 4 de agosto de 2018

Receta Python 3 No. 6-12: Leer Estructuras Binarias Anidadas de Tamaño Variable

1. Problema

Se requiere leer datos en formato binario que contiene registros anidados representados con estructuras de tamaño variable. Los datos pueden ir desde texto, pasando por imáganes, vídeo y figuras.

2. Solución

El módulo struct permite codificar y decodificar cualquier estructura de datos representada como datos binarios (Beazly, Jones, 2013).

3. Código Python 3

Archivo Python lectura-estructura-datos-anidadas.py [enlace alternativo]:

Prueba de ejecución:

[[(1.0, 2.5), (3.5, 4.0), (2.5, 1.5)], [(7.0, 1.2), (5.1, 3.0), (0.5, 7.5), (0.8, 9.0)], [(3.4, 6.3), (1.2, 0.5), (4.6, 9.2)]]

4. Literatura & Enlaces

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

O

viernes, 3 de agosto de 2018

Receta Python 3 No. 6-11: Leer y Escribir Arreglos Binarios

1. Problema

Se requiere leer y escribir arreglos binarios para diferentes estructuras de datos.

2. Solución

El módulo struct permite trabajar con datos binarios. Entre sus capacidades está la de permitir guardar tuplas en un archivo binario.

3. Código Python 3

Archivo Python leer-escribir-arreglos-binarios.py [enlace alternativo]:

Prueba de ejecución:


(2, 3.0, 5.0)
(7, 11.0, 13.0)
(17, 19.0, 23.0)

4. Literatura & Enlaces

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

O

miércoles, 1 de agosto de 2018

Receta Python 3 No. 6-10: Codificar y Decodificar en Base64

1. Problema

Codificar y decodifcar datos binarios en el sistema de codificación Base64.

2. Solución

El módulo integrado base64 provee las funciones b64encode() y b64decode() para llevar a cabo las operaciones requeridas (Beazly, Jones, 2013).

3. Código Python 3

Archivo Python codificar-decodificar-base64.py [enlace alternativo]:

Prueba de ejecución:


b'UHl0aG9u'
b'Python'

4. Literatura & Enlaces

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

O