{ "cells": [ { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "# Bienvenido al curso de Python Científico\n", "---------------------\n", "\n", "El objetivo de este curso es introducir a los alumnos en la programación en Python desde cero y aprender distintas aplicaciones de este lenguaje en la ciencia e ingeniería.\n", "\n", "En este curso vamos a trabajar con los Notebooks de Jupyter, este documento por ejemplo ha sido generado a partir de un notebook. Durante el curso nos familiarizaremos con este entorno y aprenderemos a como usarlo para generar reportes.\n", "\n", "Primero veremos los pasos para poder instalar Python, luego instalaremos jupyter.\n", "\n", "Si deseas puedes estudiar por cuenta propia visitando nuestro [repositorio](https://github.com/Gerson231294/CursoPython).\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Empezemos!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1. Descarga de Python" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Anaconda es una distribución de Python facil de instalar, que además es un administrador de paquetes necesarios en el ambito de la computación científica, posee una colección de más de 720 paquetes de código abierto que ofrecen soporte de la comunidad libre. No sólo ofrece el notebook sino tambien un IDE muy parecido a MATLAB llamado __spyder__.\n", "\n", "Los pasos para la instalación son:\n", "\n", "1. Ir a la página de descargas de [Anaconda](https://www.continuum.io/downloads).\n", " \n", "2. Seleccionar tu sistema operativo (Windows, OSX, Linux).\n", "\n", "3. Descargar Anaconda (utilizaremos Python 3.X)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "![Porque usar Python](../images/instalation1.png \"Optional title\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 2. Instalación de Python" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "En __Windows, macOS y Linux__, es mejor instalar Anaconda para el usuario local, que no requiere permisos de administrador y es el tipo de instalación más robusto. Para los usuarios de cualquiera de las tres plataformas que necesiten hacerlo, Anaconda también se puede instalar en todo el sistema, lo que requiere permisos de administrador. \n", "\n", "SUGERENCIA: Si no desea que los cientos de paquetes incluidos con Anaconda, puede descargar __Miniconda__, una mini versión de Anaconda que incluye sólo conda, sus dependencias y Python." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 2.1 Instalación en Windows" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Descargar el instalador de Anaconda.\n", "\n", "- Haga doble clic en el instalador de Anaconda y siga las instrucciones para instalar en la ubicación predeterminada.\n", "\n", "- NOTA: Instale Anaconda en una ruta de directorio que no contenga espacios ni caracteres unicode.\n", "\n", "- NOTA: No instale como administrador a menos que se requieran privilegios de administrador.\n", "\n", "- NOTA: Si encuentra algún problema durante la instalación, desactive temporalmente su software antivirus durante la instalación y, a continuación, vuelva a habilitarlo inmediatamente. Si se ha instalado para todos los usuarios, desinstale Anaconda y vuelva a instalarlo solo para su usuario e inténtelo de nuevo.\n", "\n", "- Después de una instalación exitosa verá una salida como esta:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "![Porque usar Python](../images/instalation2.png \"Optional title\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 2.2 Instalación en Linux\n", "\n", "- Descargue el instalador de Anaconda para Linux.\n", "\n", "- Abra una ventana de terminal y escriba lo siguiente:\n", "\n", "![Porque usar Python](../images/instalation3.png \"Optional title\")\n", "\n", "- NOTA: Reemplace ~ / Descargas con su ruta actual y Anaconda3-4.3.0-Linux-x86_64.sh con su nombre de archivo real.\n", "\n", "- NOTA: Acepte la ubicación predeterminada o seleccione una ubicación de instalación con permisos de usuario como ~ / anaconda.\n", "\n", "- NOTA: Instale Anaconda como un usuario a menos que se requieran privilegios de root.\n", "\n", "- Siga las indicaciones en las pantallas del instalador y, si no está seguro acerca de cualquier configuración, simplemente acepte los valores predeterminados, ya que todos pueden cambiarse posteriormente.\n", "\n", "- La salida de una instalación exitosa incluirá los mensajes \"Instalación finalizada\" y \"Gracias por instalar Anaconda!\"\n", "\n", "- Cierre y vuelva a abrir la ventana de su terminal para que los cambios surtan efecto." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 3. Instalación de Git (Opcional)\n", "\n", "Git es un sistema de control de versiones de gran potencia y versatilidad en el manejo de un gran número de archivos de código fuente a a través del desarrollo no lineal, es decir vía la gestión rápida de ramas y mezclado de diferentes versiones.\n", "\n", "Github es una plataforma de desarrollo colaborativo de software utilizado para alojar proyectos (muchos proyectos importantes como paquetes de R, Django, el Kernel de Linux, se encuentran alojados ahí) utilizando Git y el framework Ruby on Rails.\n", "\n", "Podemos instalar Git en Linux utilizando el administrador de paquetes __apt__:\n", "\n", "![Porque usar Python](../images/instalation4.png \"Optional title\")\n", "\n", "En Windows vamos a la pagina de [git](https://git-scm.com/download/win) y descargamos: \n", "\n", "![Porque usar Python](../images/instalation6.png \"Optional title\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "El material del curso está disponible en GitHub, \n", "\n", "Simplemente ve a nuestro repositorio del curso en GitHub, y en la parte derecha encontrarás un botón Clone or download como éste:\n", "\n", "![Porque usar Python](../images/instalation5.png \"Optional title\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 4. Abrir el material del curso\n", ".\n", "Una vez que instalado Anaconda y descargado el material del curso, para poder utilizarlo debes abrir una línea de comandos en la carpeta que has descomprimido.\n", "\n", "En Windows o Linux puedes hacer esto desde el explorador. Primero navega hasta la carpeta y luego usa shift + clic-derecho (Windows) en un espacio vacío de la carpeta y pulsa sobre Abrir ventana de comandos aquí, en linux con click-derecho abrir terminal.\n", "\n", "Luego escribimos:\n", "\n", "__ jupyter notebook__\n", "\n", "y se mostrará una pestaña en su navegador así:\n", "\n", "![Porque usar Python](../images/instalation7.png \"Optional title\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 5. ¿Qué es IPython?\n", "\n", "IPython es un __shell interactivo__ que añade funcionalidades extra al modo interactivo incluido con Python, como resaltado de líneas y errores mediante colores, una sintaxis adicional para el shell, autocompletado mediante tabulador de variables, módulos y atributos; entre otras funcionalidades.\n", "\n", "#### Notebook de IPython\n", "\n", "El cuaderno Notebook de IPython está basado en la web y es interactivo. Un notebook en IPython es un documento __JSON__ que contiene una lista ordenada de entradas / salidas las cuales pueden tener __código, texto, imagenes y rich media__. Los notebooks de IPython pueden ser convertidos a otros formatos de archivos como HTML, presentaciones de diapositivas, LaTeX, PDF, Python, etc).\n", "\n", "Esta será nuestra herramienta de trabajo durante el curso. Esto que estás leyendo ahora no es más que un notebook de IPython, que como diremos luego además de código puede contener texto e imágenes. Pero veamos primero cómo funciona.\n", "\n", "Se puede crear un nuevo cuaderno en cualquier momento, desde el panel de control o mediante la opción de menú Archivo ‣ Nuevo desde un cuaderno activo. El nuevo cuaderno se crea dentro del mismo directorio y se abrirá en una nueva pestaña del navegador. También se reflejará como una nueva entrada en la lista de cuadernos en el dashboard.\n", "\n", "![Porque usar Python](../images/markdown0.gif \"Optional title\")\n", "\n", "Al crear un notebook o al abrir uno nuevo se abre la interfaz de IPython propiamente dicha donde ya podemos empezar a trabajar. Es similar a un intérprete, pero está dividida en __celdas__. Las celdas pueden contener, código, texto, imágenes...\n", "\n", "Cada celda de código está marcada por la palabra __In []__ y están numeradas. Tan solo tenemos que escribir el código en ella y hacer click arriba en Cell -> Run, el triángulo __(\"Run cell\")__ o usar el atajo __shift + Enter__. El resultado de la celda se muestra en el campo __Out []__, también numerado y coincidiendo con la celda que acabamos de ejecutar. Esto es importante, como ya veremos luego.\n", "\n", "![Porque usar Python](../images/test1.gif \"Optional title\")\n", "\n", "Para documentar nuestros notebooks en IPython esto se logra usando el lenguaje de marcado de texto __Markdown__. Las celdas correspondientes se denominan celdas Markdown. El lenguaje de Markdown proporciona una forma sencilla de realizar este marcado de texto, es decir, especificar qué partes del texto deben enfatizarse (cursivas), negritas, listas de formularios, etc.\n", "\n", "Si en la barra superior seleccionas Markdown (o usas el atajo __Shift-M__) en lugar de Code puedes escribir texto: \n", "\n", "![Porque usar Python](../images/test2.gif \"Optional title\")\n", "\n", "También ecuaciones matematicas en un lenguaje parecido a Latex y mucho más. Esto es una herramienta muy potente para explicar a alguien o a ti mismo lo que tu código hace, para hacer un informe, un trabajo, escribir en un blog...\n", "\n", "![Porque usar Python](../images/test3.gif \"Optional title\")\n", "\n", "Puedes mover las celdas de un lugar a otro de este modo:\n", "\n", "![Porque usar Python](../images/test4.gif \"Optional title\")\n", "\n", "El Notebook tiene además numerosos atajos que irás aprendiendo sobre la marcha, puedes consultarlos en Help > Keyboard Shortcourts" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Ahora veremos como podemos ejecutar scripts en nuestro notebook:\n", "\n", "Para ver el contenido de nuestro script vamos a usar el comando cat (Linux) para ver el contenido de script1.py." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "# Bienvenido al curso de Python Científico\n", "# Esto es un Comentario \n", "\n", "a = 4\n", "b = 5\n", "\n", "print(\"Bienvenido al curso de Python\")\n" ] } ], "source": [ "!cat script1.py" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Para ejecutar nuestro script vamos a usar un comado __mágico__ del notebook :" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Bienvenido al curso de Python\n" ] } ], "source": [ "%run script1.py" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Ahora estamos listo para nuestra siguiente [lección](https://github.com/Gerson231294/CursoPython/blob/master/Notebooks/1.%20Python%20-%20Sintaxis.ipynb)! \n" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/html": [ "/* This template is inspired in the one used by Lorena Barba\n", "in the numerical-mooc repository: https://github.com/numerical-mooc/numerical-mooc\n", "We thank her work and hope you also enjoy the look of the notobooks with this style */\n", "\n", "\n", "Estilo aplicado\n", "\n", "\n" ], "text/plain": [ "" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Esta celda da el estilo al notebook\n", "from IPython.core.display import HTML\n", "css_file = '../styles/StyleCursoPython.css'\n", "HTML(open(css_file, \"r\").read())" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.3" } }, "nbformat": 4, "nbformat_minor": 2 }