Algoritmos, Python y Jupyter
Contents
Algoritmos, Python y Jupyter#
Important
¿Cómo vamos?
Hasta el momento debemos tener claro lo siguiente:
Estudiaremos hoy herramientas que me permiten diagramar o representar los algoritmos y hablaremos un poco del lenguaje de programnación que estudiaremos hoy. También de Jupyter, el aplicativo web en el que trabajaremos nuestros cuadernos y documentaremos nuestras experiencias.
Algoritmos#
Aunque nos hemos referido a los algoritmos y hemos citados algunos ejemplos, se ha dicho que no se dará una definición formal, sin embargo, vale la pena mencionar diferentes herramientas que utilizaremos en este curso para tener claro los pasos que se llevarán a cabo antes de empezar a codificar. Hablaremos de pseudocódigo y diagramas de flujo.
Pseudo-código#
Se trata de una descripción de un algoritmo de una manera plana y compacta. Utiliza diversas normas y reglas estructurales de un lenguaje de programación pero se escribe en lenguaje natural. Particularmente en español resulta bastante útil puesto que la mayoría de lenguajes se escriben en inglés, en ese caso podríamos entenderlo como la traducción apropiada de un código al lenguaje natural.
Ejemplos de pseudocódigo
En el estudio de bash creamos un algoritmo para crear un nuevo archivo, el pseudocódigo que equivale a esa acción es el siguiente:
(Crear un archivo)
Input La información a guardar:
día ganancia
01 $5000
02 $8000
03 $9000
Output Archivo testfile.txt con esa información
Identificar carpeta de trabajo
Si estamos en el directorio, crear carpeta prueba;
si no, dirigirse al directorio base y crear la carpeta de prueba.Ingresar a la carpeta prueba.
Crear testfile.txt.
Ingresar la siguiente información en testfile.txt
Guardar y salir
Como se puede apreciar, se ha descrito detalladamente el ejercicio de esa sección pero no se ha mencionado ningún lenguaje de programación, ni la sintáxis de la consola. En este caso, el algoritmo se puede presentar libre del lenguaje y basta con una sucesión clara, ordenada y detallada del proceso que soluciona nuestro problema.
Usaremos esta estructura constantemente para describir algunas soluciones para los ejercicios propuestos de este curso.
Diagramas de flujo#
Esta es una representación gráfica de un procedimiento o de un algoritmo. Se utiliza en diversas ramas y no solo para progamación de computadores, verás estos diagramas en asignación de actividades, descripción de procesos, investigación de operaciones, entre otros.
Dicho diagrama sigue unas convenciones para cada node del grafo, dicho nodo expresa una situación o concepto y se mueve de acuerdo a las flechas del diagrama, veamos las convenciones:
Para el ejercicio anterior usamos un diagrama de flujo, verifica que dicho diagrama corresponde con las convenciones del diagrama:
Python#
Python es un lenguaje multiparadigma y de alto nivel cuya filosofia se sustenta en la sencillez de código. Resulta ser uno de los lenguajes más flexibles de la actualidad en el que se destacan sus usos en:
Desarrollo web en servidores,
Desarrollo de Software,
Cálculos Matemáticos,
Desarrollo de Scripts.
Por ser de código abierto es gratuito y funciona en diferentes plataformas (Windows, Mac, Linux, etc). Resulta tener una sintaxis simple, similar al idioma inglés, ha aumentado su popularidad desde hace pocos años y hoy es el lenguaje de mayor crecimiento y más consultado en el mundo. Permite crear programas en muy pocas líneas, respecto a otros lenguajes de programación.
Pyhton se ejecuta en un sistema interpretado. Es decir, que los códigos se pueden correr justo después de ser escritos; en otras palabras, no necesitan compilación previa. Se puede usar como un lenguaje clásico, como un lenguaje orientado a objetos, o como un lenguaje funcional. Es el principal lenguaje de la Ciencia de Datos. De hecho, uno de los complementos especiales de Python para los científicos de datos es Jupyter, una aplicación web que permite crear cuadernos interactivos: documentos web editados con texto enriquecido y celdas de ejecución de código.
La posibilidad de ejecutar código y texto en un mismo documento nos permitirá definir algoritmos y explicarlos de manera adecuada, procesar datos y visualizar resultados inmediatamente, establecer una documentación adecuada de los procedimientos y recursos que usamos, entre otros.
La filosofía de Python#
Es muy importante reconocer que Python sorprende no solo por su flexibilidad y elasticidad sino porque mantiene una filosofía clara, aquí recomendamos leer los principios de este lenguaje elaborados por Tim Peters, uno de los grandes contribuyentes a este poderoso lenguaje:
import this
The Zen of Python, by Tim Peters
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!
Ver también
Instrucciones de instalación y uso de Jupyter#
Sigue los siguientes pasos para instalar jupyter en tu pc:
Descargar Anaconda de (https://www.anaconda.com/distribution/), verifica que la descarga corresponda a Python 3.7 y a las condiciones específicas de tu equipo (Windows x64, Windows x32, macOS o Linux)
Despúes de instalar Anaconda abrelo y lanza el aplicativo de Jupyter:
Jupyter abrirá una pestaña de tu navegador predeterminado, verás algo así:
En el boton NEW puedes crear un archivo nuevo en Python 3:
Veras un panel como el siguiente, selecciona en la casilla tipo de celda selecciona Markdown, para titular el cuaderno que vas a crear, tambien puedes oprimir [Esc]+[M]:
Después de cambiar el tipo de celda usa el formato Markdown para hacer encabezados del documento, escribes # Título para el encabezado principal y ## Subtítulo para el encabezado secundario:
Después de escribir oprimes [Shift]+[Enter] para ejecutar la celda y visualizar el resultado final de tu escrito, obtienes:
Finalmente, para terminar este ejercicio haremos una operación muy simple para verificar el buen funcionamiento del programa, escribimos en la siguiente celda 5+8 y ejecutamos nuevamente con [Shift]+[Enter]:
Markdown#
Markdown es un lenguaje de marcado ligero escrito por John Gruber (https://daringfireball.net/projects/markdown/) que permite convertir texto plano en HTML. Aunque suene muy complicado es un lenguaje muy senciullo de utilizar y está inspirado en la forma de escritura de los correos electrónicos.
Veremos a continuación algunas convenciones sencillas de este lenguaje y las aplicaremos en nuestro cuaderno guía:
*Tomado de: (https://www.math.ubc.ca/~pwalls/math-python/jupyter/markdown/)*Salidas de texto#
En la siguiente tabla resumimos algunas convenciones importantes para la escritura de documentos en Markdown:
Escrituta en Celda |
Salida |
---|---|
|
Escritura normal |
|
énfasis |
|
** texto fuerte ** |
|
|
Creación de listas#
Tambien podemos crear listas, tanto numeradas como no numeradas:
Numeradas:
```
1. Primer elemento
1. Primero del primero
2. Segundo elemento
3. Tercer elemento
```
Primer elemento
Primero del primero
Segundo elemento
Tercer elemento
NO Numeradas:
```
* Primer elemento
*otro elemento
* Segundo elemento
* Tercer elemento
```
Primer elemento
otro elemento
Segundo elemento
Tercer elemento
Links e imágenes#
Finalmente, usando este lenguaje también podemos conectar links y visualizar imágenes:
Links
[Universidad Externado] (https://www.uexternado.edu.co/)
Imágenes
![Jupyter logo](http://jupyter.org/assets/nav_logo.svg)
Creación de encabezados en el documento#
Es muy útil seccionar el documento por capítulos, subcapítulos, secciones, subsecciones, entre otros. A continuación, visualizamos las formas de crear encabezados en cuadernos de jupyter:
Encabezado 1 Escribimos:
# Encabezado 1
Encabezado 2 Escribimos:
## Encabezado 2
Encabezado 3 Escribimos:
### Encabezado 3
Encabezado 4 Escribimos:
#### Encabezado 4
Encabezado 5 Escribimos:
##### Encabezado 5
Encabezado 6 Escribimos:
###### Encabezado 6
Ver también
Cierre#
Estudiamos la forma de represntar algoritmos utilizando lenguaje natural o diagramas. También conocimos a Python y el aplicativo web que nos permitira correr el código en ese lenguaje: Jupyter.
Como Jupyter tiene dos tipos de celda, las de código que usaremos de aquí en adelante para ejecutar nuestros códigos de programación y las de texto, que permiten documentar de manera especial nuestros algoritmos, empezamos con la sintáxis de las celdas de texto que se conoce como lenguaje Markdown o texto enriquecido. Usaremos estas herramientas para crear cuadernos elegantes, claros y explicativos.