diff options
author | Ekaitz Zarraga <ekaitz@elenq.tech> | 2019-11-18 12:55:57 +0100 |
---|---|---|
committer | Ekaitz Zarraga <ekaitz@elenq.tech> | 2019-11-18 12:55:57 +0100 |
commit | d91f003aad03af3c16c215b83a0dd64163c8d585 (patch) | |
tree | 7010613fd1041a0c7f188ac9521b48f2a0f96d96 /src |
Intro
Diffstat (limited to 'src')
-rw-r--r-- | src/01_intro.md | 205 |
1 files changed, 205 insertions, 0 deletions
diff --git a/src/01_intro.md b/src/01_intro.md new file mode 100644 index 0000000..a5ecf21 --- /dev/null +++ b/src/01_intro.md @@ -0,0 +1,205 @@ +# Introducción + +> Python is an interpreted high-level programming language for general-purpose +> programming. Created by Guido van Rossum and first released in 1991, Python +> has a design philosophy that emphasizes code readability, and a syntax that +> allows programmers to express concepts in fewer lines of code, notably using +> significant whitespace. It provides constructs that enable clear programming +> on both small and large scales. +> +> Python features a dynamic type system and automatic memory management. It +> supports multiple programming paradigms, including object-oriented, +> imperative, functional and procedural, and has a large and comprehensive +> standard library. +> +> — Wikipedia + +Pronto entenderás lo que esto significa, pero antes hay que instalar las +herramientas necesarias y trastear con ellas. + +## Instalación + +Para trabajar con python se necesita: + +- python3: el intérprete de python, en su versión 3. Verás que hay muchas + subversiones. Este documento cubre cualquiera de ellas. +- pip: el gestor de paquetería de python. También se conoce como pip3 para + diferenciarlo del pip de python2. + +Nosotros añadiremos un par de amigos a la lista: + +- idle3: un editor de código python muy sencillo. Usaremos este porque + representa el ecosistema de forma muy sencilla. En el futuro, te recomiendo + usar algún otro editor más avanzado. + +- pipenv: el estándar de facto para gestionar entornos virtuales en python3. + Luego entenderás qué es eso. + + +### Instalación en distribuciones de Linux + +La instalación puede realizarse desde el gestor de paquetes habitual, ya que +python suele distribuirse en todos los repositorios de paquetes. + +En las distribuciones que usan el sistema de paquetes de Debian, puede +instalarse desde la terminal con el siguiente comando: + +``` bash +sudo apt-get install python3 python3-pip idle3 +``` + +### Instalación en otros sistemas + +Como siempre instalar en otros sistemas es más farragoso. Pero no es demasiado +difícil en este caso. La instalación puede realizarse con una descarga desde la +página web oficial de python: + +<https://python.org/downloads/> + +Una vez ahí seleccionar la versión necesaria, descargar el instalador y seguir +las instrucciones de éste. Recuerda seleccionar **instalar pip** entre las +opciones y activar la casilla de **añadir python al PATH**, que permitirá que +que ejecutes programas de python sin problemas. También puedes añadir +**IDLE**, el programa que sirve para editar el código, pero te recuerdo que +es un programa muy sencillo, que nos servirá para entender lo básico del +entorno sin ocultarnos el proceso, pero que más adelante podrás utilizar otros +editores que simplifiquen tareas. + + +## Admira el paisaje + +Una vez que has instalado python, es interesante ver lo que eso significa. +Python es un intérprete de código fuente del lenguaje del mismo nombre. +Concretamente, la que has instalado es una de las posibles implementaciones (la +implementación de referencia, en este caso) de este intérprete, conocida como +CPython, en su versión 3. Existen otras implementaciones, cada una con sus +peculiaridades, pero ésta es la principal y la más usada. + +Como intérprete que es, python es capaz de leer un archivo escrito en su +lenguaje y ejecutar sus órdenes en tu computadora. Ésta es principalmente su +labor. Sin embargo, también es capaz de realizar esta operación de forma +interactiva recibiendo las órdenes una por una y devolviendo el resultado de su +ejecución como respuesta. Este proceso se conoce como REPL, acrónimo de +read-eval-print-loop (lee-evalúa-imprime-repite), aunque en otros lugares se le +conoce como la shell de python. + +> NOTA: La shell de python (o REPL) y la shell del sistema son cosas +> diferentes. La shell de sistema también es un intérprete pero del lenguaje +> que el sistema ha definido (Bash, PowerShell...) y no suele ser capaz de +> entender python. + +Para acostumbrarte a la shell te propongo que abras IDLE. Lo primero que verás +será parecido a esto: + +``` python +Python 3.6.8 (default, Oct 7 2019, 12:59:55) +[GCC 8.3.0] on linux +Type "help", "copyright", "credits" or "license()" for more information. +>>> +``` + +Todo lo que escribas tras el símbolo `>>>` será interpretado como una orden y +cuando la termines pulsando la tecla `ENTER` de tu teclado, recibirás el +resultado de la ejecución de la orden insertada. El acrónimo REPL define el +comportamiento de este ciclo a las mil marvillas: + +1. Lee lo que introduces. +2. Lo evalúa, obteniendo así un valor como resultado. +3. Lo imprime. +4. Repite el ciclo volviendo a leer. + +Por tanto, si introduces un valor directamente será devuelto: + +``` +>>> 1 +1 +``` + +Y si lo alteras devuelve el resultado correspondiente: + +``` +>>> 2+2 +4 +``` + +Como ejercicio te propongo lo siguiente: + +1. Abre la shell de python (puedes hacerlo en IDLE o desde la shell de sistema + ejecutando `python` o `python3`). +2. Entra en la ayuda interactiva. PISTA: el mensaje que aparece al abrir la + REPL te dice cómo. +3. Sal de la ayuda (descubre tú mismo cómo se hace). +4. Ejecuta `import this` y lee el resultado. + + +### Tu primer archivo de código fuente + +La REPL es interesante para probar y depurar tus programas (o para usarla como +calculadora), pero es necesario grabar tus programas en ficheros si quieres +poder volver a ejecutarlos más adelante o compartirlos. + +En IDLE puedes abrir un nuevo documento de código en el menú de archivo. Una +vez lo tengas, como aún no sabes python puedes introducir lo siguiente: + +``` python +nombre = "Guido" +print("Hola, " + nombre) +``` + +Si guardas el fichero y pulsas `F5` (Ejecutar módulo), verás que en la pantalla +de la REPL aparece el resultado `Hola, Guido`. + +Como ves, el resultado de ejecutar los ficheros de código fuente aparece en la +shell, pero únicamente aparece lo que explícitamente le has pedido que imprima +con la orden `print`. + +Para entender el valor de la REPL, te sugiero que vayas a su ventana, y justo +después del resultado de la ejecución hagas lo siguiente: + +``` +Hola, Guido +>>> nombre +'Guido' +>>> +``` + +Como ves, la REPL conoce el valor `nombre` a pesar de que tu programa ha +terminado de ejecutarse. Esto es interesante a la hora de probar y analizar el +programa. + + +### La vida real + +En realidad, los programas de producción no se ejecutan en una shell como la +que IDLE nos brinda. IDLE sólo está facilitando nuestro trabajo como +desarrolladores, como otros entornos de desarrollo hacen, cada uno a su manera. +En producción el código se levantará ejecutando el intérprete de python +directamente con nuestro programa como input. Por ejemplo en la shell **de +sistema** usando el siguiente comando. + +``` +python ejemplo.py +``` + +También es posible ejecutar los programas de python desde la interfaz gráfica, +pero internamente el resultado será el mismo. Siempre que todo esté bien +instalado y configurado, el sistema operativo despertará un intérprete de +python que ejecute las órdenes del fichero. + +Es importante ser consciente de lo que ocurre bajo la alfombra, para así ser +capaces de intervenir si encontramos errores. + +Más adelante, en la sección sobre módulos e importación volveremos aquí y +estudiaremos cómo se cargan y se interpretan los programas. + + +## Lo que has aprendido + +Has instalado python y te has acostumbrado a la herramienta (IDLE) que usarás +durante tu aprendizaje. Has ejecutado tu primer fichero y encontrado la +potencia de la REPL. + +Además, has abierto la ayuda y te has leído el Zen de Python, que pronto iremos +desgranando juntos. + +Para ser una introducción no está nada mal. |