miércoles, 27 de diciembre de 2017

Receta Python No. 1-2: Comparación de Cadenas de Caracteres (Strings)

1. Problema

Comparar dos cadenas de caracteres y comprobar si son iguales; o determinar si dos variables de cadenas de caracteres apuntan a un mismo objeto de tipo String.

2. Solución

En Python nos encontramos con dos mecanismos que permiten realizar las operaciones anteriores:
  1. Operador ==: comprueba si dos cadenas de caracteres son iguales.
  2. Operador is: comprueba si dos cadenas de caracteres apuntan al mismo objeto de tipo String.

3. Código Python

Con el código:

Archivo Python cadenas-igualdad.py [enlace alternativo]:

se retorna el valor Las cadenas de caracters son iguales. Y esto a razón de que el contenido no es igual: en Python hay diferencia entre mayúsculas y minúsculas respecto a los caracteres de una cadena de caracteres.


Por otra parte, con el operador is se puede comprobar si dos variables apuntan a un mismo objeto String:

Archivo Python operador-is.py [enlace alternativo]:
Aquí se retorna se imprime en pantalla Dostoevsky es el escritor de Memorias del subsuelo. Tanto la variable escritor como autorMemoriasSubsuelo apuntan a la misma dirección.

4. Literatura & Enlaces

Bernard J. (2016). Python Recipes Handbook: A Problem-Solution Approach. Canada: Apress.
O

lunes, 25 de diciembre de 2017

Receta Python No. 1-1: Concatenación de Cadenas de Caracteres (String)

1. Problema

Crear una cadena de caracteres compuesta de variables o literales.

2. Solución

En Python el programador cuenta con el operador +. También el operador sobrecargado * para multiplicar o reproducir una cadena de caracteres cierto número de veces (tal como se indique por una constante multiplicadora).

3. Código Python

Se concatena el nombre y el apellido del escritor ruso Fyodor Dostoevsky usando el operador +:

escritor = 'Fyodor' + ' ' + 'Dostoevsky'
print (escritor)

Nótese que la variable escritor contendrá el resultado de unir las tres literales de cadenas de caracteres.

Resultado: Fyodor Dostoevsky

También se puede utilizar el operaador * para reproducir o multiplicar una cadena de caracteres:

web = 'W' * 3
print (web)

Resultado: WWW

Adicionalmente, para concatenar valores procedentes de variables o literales con tipo de dato (implícito) distinto a string (o cadena de caracteres) se puede utilizar la función str (Bernard, 2016):

w3c = 'W' + str(3) + 'C'
print (w3c)

Resultado: W3C

4. Literatura & Enlaces

Bernard J. (2016). Python Recipes Handbook: A Problem-Solution Approach. Canada: Apress.

O

Bienvenidos a Recetas Python

Índice

1. Introducción
2. Palabras Clave
3. Recetas Python

1. Introducción

A partir de esta entrada el lector podrá aprender, comprender, aplicar y disfrutar el conocimiento del lenguaje de programación interpretado Python. El aprendizaje se realizará a través de la metología de recetas: el contenido de la receta empieza por el plantemiento de un problema hasta alcanzar una solución de código efectiva.

2. Palabras Clave

  • Aprendizaje
  • Conocimiento
  • Problema
  • Python
  • Receta
  • Solución

3. Recetas Python

Los contenidos que se desarrollarán harán uso del lenguaje de programación interpretado Python: un lenguaje que juego un rol importante en la solución problemas de forma efectiva para diferentes contextos: aplicaciones Web, de escritorio, scripting, automatización de tareas, ciencia de datos (data science), entre otras tareas de relavante interés.

La metodología de desarrollo de contenidos consiste en recetas. Una receta se caracteriza por 4 partes fundamentales:
  1. Problema
  2. Solución
  3. Discusión de la solución
  4. Práctica: Código Python
Esta forma documental facilita al lector la consulta, referenciación, y aplicación de códigos esenciales para tareas comunes que se realizan en este lenguaje de programa; por ejemplo:
  1. Cadenas de caracteres
  2. Números, Fechas y horas
  3. Generadores e iteradores
  4. Manipulación de archivos
  5. Análisis de datos
  6. Funciones
  7. Programación orientada a objetos
  8. Metaprogramación
  9. Red e Internet
  10. Módulos y paquetes
  11. Librería Numpy
  12. Utilidades
  13. Testing
  14. Extensiones y lenguaje C
  15. Arduino y Raspi
Espero que estos contenidos contribuyan a estudiantes y profesionales a mejorar sus habilidades en este magnífico lenguaje de programación que es Python.



O

lunes, 4 de diciembre de 2017

Receta T-SQL No. 5-5: Crear un Cubo Multidimensional para un Resultado

Índice

1. Introducción
2. Palabras Clave
3. Problema
4. Solución
5. Discusión de la Solución
6. Práctica: Subtotal de Productos
7. Conclusiones
8. Literatura & Enlaces

1. Introducción

Con esta receta T-SQL se pretende mostrar cómo sumarizar un conjunto de resultados en un cubo multidimensional. Esta operación es de importante interés para obtener totales a partir de la combinación o agrupación de varias columnas respecto a otra que representa una cantidad, un valor, etc. Se usará el operador CUBE.

2. Palabras Clave

  • Combinación
  • Cubo
  • Multidimensional
  • Resumen

3. Problema


Se requiere obtener los subtotales a partir de todas las combinaciones posibles de las columnas Traje y Color. Los datos con los que se cuentan son:
Datos a combinar
Tabla 1. Datos a combinar.

3. Solución

T-SQL cuenta con el operador CUBE para generar todas las posibles combinaciones a partir de los nombres de columnas especificados como argumentos.

4. Discusión de la Solución

CUBE ("GROUPING (Transact-SQL)", 2017) es un operador de la cláusula GROUP BY, con el cual podemos obtener todas las combinaciones posibles de columnas. Las columnas se especifican como argumentos.

Para el caso que se requiere resolver es necesario crear la siguiente combinación:

...GROUP BY CUBE(Traje, Color)

Pero además en la cláusula SELECT se ha de especificar la columna que se quiere sumarizar o agregar:

SELECT Traje, Color, SUM(Cantidad) AS SumaCantidades ...

Nótese cómo ha resaltado la tercera columna. Esta columna contendrá la suma de los datos combinados; por ejemplo 350 que será el total de la combinación de las blusas tanto de color rojo como amarillo.

5. Práctica: Subtotal de Productos

El código T-SQL para obtener le resultado requerido es, entonces:

SELECT Traje, Color, SUM(Cantidad) AS SumaCantidades
    FROM Producto
    GROUP BY CUBE(Traje, Color);

Una vez ejecutemos esta sentencia, obtendremos:
Resultado combinación con CUBE
Tabla 2. Resultado combinación con CUBE.

La fila que contiene el valor NULL para las columnas Traje y Color el total de blusas y camisas que ya sean de color amarillo o rojo es de 850. Que es lo mismo que sumar la columna Cantidad de la Tabla 1.

7. Conclusiones

A través de esta receta el lector ha comprendido los básicos de combinaciones de columnas para obtener subtotales a través del operador CUBE de la cláusula GROUP BY.

8. Literatura & Enlaces

Brimhall, J., Dye, D., Gennick, J., Roberts, A., Sheffield, W. (2012). SQL Server 2012 T-SQL Recipes - A Problem-Solution Approach. United States: Apress.
GROUPING (Transact-SQL) | Microsoft Docs (2017). Recuperado desde: https://docs.microsoft.com/en-us/sql/t-sql/functions/grouping-transact-sql


O