0% encontró este documento útil (0 votos)
51 vistas103 páginas

UD2 Fundamentos Python

Este documento presenta una introducción a los fundamentos de Python. Explica el lenguaje de programación Python, su sintaxis y características principales como el tipado dinámico y la orientación a objetos. También describe el entorno de programación Jupyter Notebook, incluyendo cómo instalar la distribución Anaconda para ejecutar Jupyter Notebook e iniciar el desarrollo de programas en Python. Finalmente, introduce conceptos básicos de Python como variables, tipos de datos, estructuras de control de flujo y estructuras de datos comunes.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
51 vistas103 páginas

UD2 Fundamentos Python

Este documento presenta una introducción a los fundamentos de Python. Explica el lenguaje de programación Python, su sintaxis y características principales como el tipado dinámico y la orientación a objetos. También describe el entorno de programación Jupyter Notebook, incluyendo cómo instalar la distribución Anaconda para ejecutar Jupyter Notebook e iniciar el desarrollo de programas en Python. Finalmente, introduce conceptos básicos de Python como variables, tipos de datos, estructuras de control de flujo y estructuras de datos comunes.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 103

Fundamentos de Python

I. Introducción y objetivos

II. El lenguaje de programación Python

III. Entorno de programación - Jupyter Notebook

IV. Sintaxis básica de Python

V. Herramientas para control de ujo

VI. Estructura de datos

VII. Funciones

VIII. Resumen

IX. Caso práctico con solución

X. Glosario

XI. Bibliografía
Lección 1 de 11

I. Introducción y objetivos

1.1. Introducción de la unidad

En esta primera unidad, se introducirá al alumno en el lenguaje de programación Python. Actualmente, es uno de los lenguajes de programación más extendidos en
el campo de la ciencia de datos, junto con R.

Se enseñarán sus fundamentos principales, como la declaración de variables, los operadores básicos y distinguir entre diferentes tipos de variables, así como las
principales herramientas para controlar el flujo del programa.

Posteriormente, el alumno comenzará a trabajar con las principales estructuras de datos de Python, que son: tuplas, listas y diccionarios de datos; tras ello, para
saber cómo modularizar los programas, se aprenderá a diseñar funciones sencillas mediante la entrada y salida de parámetros.

C O NT I NU A R

1.2. Objetivos de la unidad


Una vez finalizada esta unidad, el alumno habrá adquirido las siguientes competencias sobre los fundamentos de Python.

1 Conocer los principales fundamentos de Python.

2 Saber instalar Jupyter Notebook 1.

3 Realizar desarrollos básicos en Python a través de Jupyter Notebook.

4 Saber cómo declarar, procesar y distinguir distintos tipos de variables.

5 Conocer y manejar las sentencias condicionales if y else.

6 Conocer el funcionamiento de los bucles en Python for y while.

7 Trabajar con las principales estructuras de datos en Python: tuplas, listas y diccionarios de datos.

8 Modularizar los programas a través de funciones.

9 Resolver problemas de diferente dificultad.

1 Esta herramienta se usará para trabajar con Python.


Lección 2 de 11

II. El lenguaje de programación Python

2.1. El lenguaje de programación Python

El lenguaje de programación Python fue creado en la década de los 90 por Guido Van Rossum. Es un lenguaje de programación orientado a objetos, en el que
podemos trabajar con estructuras de datos de alto nivel y una sintaxis elegante y simple. Estas razones, ligadas al gran auge de la ciencia de datos, han

catapultado la popularidad de Python, el cual es actualmente catalogado como uno de los lenguajes de programación más populares del mundo2.

Las principales características de Python son:

Orientado a objetos

Permite representar conceptos del mundo real a través de clases y objetos en un programa.

Multiplataforma

Python está disponible en los principales sistemas operativos como Linux, Windows, UNIX, Mac OS, etc. Esto supone que un programa o script Python pueda ser ejecutado en
diferentes sistemas operativos siempre que este sistema cuente con un intérprete Python adecuado.

Tipado dinámico

A diferencia de otros lenguajes de programación, Python posee un tipado dinámico, lo que significa que no se debe especificar el tipo de una variable, sino que esta tomará el tipo
directamente en tiempo de ejecución en función del valor que se le asigne o que reciba.

Lenguaje interpretado

Básicamente, la ejecución de los programas se realizará a través del script que ejecuta el intérprete de Python, por lo tanto, no necesita compilación. 

La evolución de Python3  viene marcada por la propia comunidad de desarrolladores que se encarga de su actualización y mantenimiento a través de la creación de
nuevas funcionalidades. Estas actualizaciones son posibles dado que Python es un proyecto de código libre.
Todas las razones anteriormente mencionadas hacen que Python tenga una curva de aprendizaje corta, es decir: un desarrollador que empieza escribiendo
programas muy básicos puede avanzar rápidamente a programas avanzados que incluyan, por ejemplo, el uso de librerías de código, la lectura de datos desde
diversas fuentes.

Otro de los puntos fuertes de Python y de gran utilidad para el mundo del big data, del data science (ciencia de datos) y de la inteligencia artificial es que, en Python,
se puede trabajar a través de librerías. En este sentido, Python posee potentes librerías de cálculo matricial y analítica de datos como Pandas, Numpy, Scipy, Scikit
Learn, Tensorflow, Keras, etc.

2 Python: el lenguaje de programación más relevante de 2018. [En línea] URL disponible en este enlace.  
3 Página principal de la comunidad Python. [En línea] URL disponible en este enlace.
Lección 3 de 11

III. Entorno de programación - Jupyter Notebook

3.1. Instalación de una distribución Anaconda para Jupyter Notebook


Una vez vistas las principales características de Python, es hora de escoger un entorno de programación adecuado. Para ello, haremos uso de Jupyter Notebook.

Instalación de Phyton en Jupiter Notebook  

  0:00 / 27:01 1x 

3.1.1. Características de Jupyter Notebook


Es un entorno de programación que se ejecuta íntegramente sobre nuestro navegador web predeterminado (Google Chrome, Firefox, Safari, etc.). Se basa en la
idea de poder compartir todo el trabajo de un desarrollador, desde el código fuente, comentarios, gráficas, vídeos, hasta anotaciones, como si de un cuaderno se
tratase (de ahí la denominación de “notebook”).

Principalmente, tiene compatibilidad con tres lenguajes de programación4: Julia, Python y R. 

Es muy extendido entre la comunidad científica, especialmente en el campo de la ciencia de datos, ya que es un buen soporte para poder trabajar y mostrar
experimento. Esto es debido a que sobre un mismo notebook, tal y como hemos mencionado antes, podemos mostrar nuestro código Python, comentarios en el
código, incluir anotaciones y, finalmente, mostrar resultados de forma interactiva.

No solamente podemos incluir código de Python, sino que, además, podemos combinar otros lenguajes, como HTML, Markdown, Latex o JavaScript, entre otros.

Otra de sus características importantes es que permite autocompletar el código que se va escribiendo; esto es de gran ayuda pues permite identificar fácilmente
variables y funciones, muestra ayuda en línea, etc.
4 Jupyter Kernels. [En línea] URL disponible en este enlace.

C O NT I NU A R

3.1.2. Instalación de Anaconda


Como ya se ha mencionado anteriormente, se puede trabajar en Python desde diferentes entornos de programación. Para esta ocasión, y aprovechando todas las

ventajas que ofrece para la enseñanza, utilizaremos Jupyter Notebook; para ello, descargaremos una distribución de Anaconda5, que incluirá por defecto un
intérprete Python y nos permitirá desplegar Jupyter Notebook en nuestro navegador web. Los pasos para la descarga e instalación de una distribución de Anaconda
son los siguientes:

5 Anaconda Distribution [En línea] URL disponible en este enlace.


1

Figura 1. Vista de la web de Anaconda Distribution. 


Fuente: https://www.anaconda.com/distribution/.

Accedemos a la web de Anaconda Distribution. [En línea] URL disponible en este enlace.
2

Figura 2. Anaconda Distribution, descarga de Python.  


Fuente: abrir enlace.

Pulsamos en el botón “Download” y nos llevará a la siguiente sección de descargas para descargar una
versión de Python.
3

Descargaremos la versión de Python 3.7; para ello, simplemente pulsamos en el botón verde “Download”.
4

Automáticamente, comenzará la descarga del archivo ejecutable que contendrá la distribución de Anaconda.
5

Figura 3. Archivo ejecutable con distribución Anaconda.  


Fuente: elaboración propia.

Una vez finalizada la descarga, ejecutamos el archivo descargado recientemente.


6

Figura 4. Instalación de Anaconda (I).  


Fuente: elaboración propia.

Aparecerá el asistente de instalación y pulsamos en “Next”.


7

Figura 5. Instalación de Anaconda (II).  


Fuente: elaboración propia.

Aceptamos los términos del acuerdo de Anaconda.


8

Figura 6. Instalación de Anaconda (III).  


Fuente: elaboración propia.

Seleccionamos el tipo de instalación (puede dejarse por defecto para que se descargue únicamente en
nuestro usuario).
9

Figura 7. Instalación de Anaconda (IV).  


Fuente: elaboración propia.

Seleccionamos la ruta de instalación (se recomienda utilizar la que aparece por defecto).
10

Figura 8. Instalación de Anaconda (V).  


Fuente: elaboración propia.

Seleccionamos “Registrar el intérprete de Python de la distribución de Anaconda por defecto” y pulsamos


“Install”.
11

Figura 9. Instalación de Anaconda (VI).  


Fuente: elaboración propia.

Esperamos a que finalice la instalación de Anaconda y pulsamos “Next”.


12

Figura 10. Instalación de Anaconda (VII).  


Fuente: elaboración propia.

Pulsamos de nuevo en “Next”.


13

Figura 11. Instalación de Anaconda (VIII).


Fuente: elaboración propia.

Si lo deseamos, marcamos las opciones para aprender más sobre Anaconda y los primeros pasos con
Anaconda, y pulsamos “Finish”.

 NOTA: Para instalar Jupyter Notebook en un sistema operativo diferente de Windows, seguir las instrucciones de la
documentación oficial, disponibles en el siguiente enlace.

C O NT I NU A R

Una vez ha finalizado la instalación de Anaconda, mostraremos cómo lanzar en el navegador web nuestro primer notebook en Python. Para ello, realizaremos los
siguientes pasos:
1

Figura 12. Anaconda Navigator.


Fuente: elaboración propia.

Buscaremos la aplicación Anaconda Navigator y la ejecutamos en nuestro sistema


2

Figura 13. Vista, Anaconda Navigator.


Fuente: elaboración propia.

Una vez inicie Anaconda Navigator, tendremos la anterior vista.


3

Pulsamos sobre la aplicación “Notebook”.


4

Figura 14. Vista, Jupyter Notebook.


Fuente: elaboración propia.

Una vez que inicie Jupyter Notebook, aparecerá la anterior vista.


5

Figura 15. Crear Notebook: Python3.  


Fuente: elaboración propia.

El anterior panel de navegación muestra que se ha lanzado correctamente Jupyter Notebook en nuestro entorno local. Si atendemos
a la URL, podremos ver que está activo en localhost en el puerto 8888. Dentro de la interfaz web, podremos movernos entre los
diferentes directorios y crear nuevos archivos como, en nuestro caso, un nuevo notebook. Para realizar esta acción, simplemente
pulsaremos en el desplegable “New” > ”Python 3”.
6

Figura 16. Vista de un notebook.


Fuente: elaboración propia.

Aparecerá la anterior vista con un notebook vacío. Por defecto se llamará “Untitled”.

C O NT I NU A R

3.2. Primeros pasos con Jupyter Notebook


Tomaremos como referencia el apartado anterior, donde ya tenemos disponible un notebook para comenzar a trabajar, y pasaremos a describir las secciones más
interesantes:
1

Figura 17. Jupyter Notebook. Sección "File".


Fuente: elaboración propia.

“File”: dentro de esta sección podemos crear un nuevo notebook, renombrarlo, hacer una copia, guardar un checkpoint del mismo,
imprimirlo y descárgalo. Las opciones que más utilizaremos serán:

“Notebook”: guarda todo el notebook, en el que estará incluida una vista de los resultados con extensión “.ipynb”. De esta forma,
podremos, posteriormente, ejecutar o modificar el notebook guardado.

“PDF vía LaTeX”: guarda todo el notebook, e incluye las anotaciones realizadas en un archivo PDF.

“HTML”: guarda todo el notebook en formato HTML para que sea visible desde un navegador. Esta es una forma recomendable
de mostrar resultados, ya que puede verse con facilitad todo el código implementado, comentarios, anotaciones y resultados en
un mismo documento.

“Python”: guarda todo el notebook como un script de Python con extensión “.py” para que sea ejecutable desde un intérprete de
Python.
2

Figura 18. Jupyter Notebook. Sección "Edit".


Fuente: elaboración propia.

“Edit”: desde esta sección podremos, básicamente, gestionar las celdas de código o anotaciones, ya sea copiando, cortando o
borrando celdas como operaciones más básicas. Posteriormente, también tendremos opciones más avanzadas en edición de celdas,
como dividir en dos una celda o juntar dos celdas en una. Además, podremos moverlas de posición hacia arriba o hacia abajo. Esto
es muy recomendable para ir organizando nuestro código y que quede de una forma más legible.
3

Figura 19. Jupyter Notebook. Sección “Insert”.


Fuente: elaboración propia.

“Insert”: esta sección es la encargada de poder insertar nuevas celdas, ya sea a continuación de la celda en donde tengamos el cursor
o después de esta.
4

Figura 20. Jupyter Notebook. Sección “Cell”.


Fuente: elaboración propia.

“Cell”: esta parte se encarga de ejecutar las celdas de código. Podremos elegir entre una sola celda, ejecutar desde el cursor hasta el
final, ejecutar desde el principio hasta el cursor o ejecutar todas las celdas.

Es también muy importante hacer énfasis en los tipos de celda que podemos encontrarnos en un notebook:

“Code”: celdas con código fuente Python.

“Markdown”: celdas con anotaciones estilo markdown (muy aconsejable para documentar nuestros notebooks).

“Raw NBConvert”: celdas en crudo. La ejecución de estas celdas no produce ninguna salida (por lo general, es un formato poco
utilizado).
5

Figura 21. Jupyter Notebook. Sección “Kernel”.


Fuente: elaboración propia.

Kernel: esta es una de las secciones más importantes, ya que se encarga de mantener activo el kernel de Python. A través de esta
sección podremos pararlo, reiniciarlo, reiniciar y limpiar los output de las celdas, reiniciar y ejecutar todas las celdas, reconectar y
apagar el kernel.

 Siempre que se interrumpa la actividad del kernel, todas las variables que estuvieran almacenadas en memoria se borrarán. 

C O NT I NU A R

Además de las secciones explicadas anteriormente, existen otras secciones no tan comunes que no es necesario exponer en este momento; no obstante, es
importante prestar especial atención a otros elementos importantes de la interfaz de un notebook, que son los siguientes.

Figura 22. Jupyter Norebook. Botonera principal.

Fuente: elaboración propia.

Botonera principal: en ella podremos encontrar los botones principales para poder gestionar el notebook y sus celdas, como guardar el notebook, añadir, cortar,
copiar y pegar celdas, moverlas de posición, así como ejecutar una celda del notebook o parar la ejecución. Al igual que en la sección “Cell”, podremos definir el

tipo de celda que queremos implementar a través del menú desplegable.

Celda o chunk: dentro de una celda, escribiremos el código fuente que queramos implementar en Python, comentarios o anotaciones markdown. A medida que
vayamos ejecutando celdas, dentro del apartado “In [ ]” podremos ver el seguimiento del código, ya que dentro de este apartado se guarda el orden en el que se han
ido ejecutando las celdas.

Figura 23. Jupyter Norebook. Celda.

Fuente: elaboración propia.

Finalmente, antes de comenzar con la programación en Python, es importante ver algunas de las principales anotaciones que podemos realizar a través de
“Markdown”:

Encabezados: podemos realizar tres niveles principales.

“#”: encabezado de primer nivel.

“##”: encabezado de segundo nivel.

“###”: encabezado de tercer nivel.

Figura 24. Jupyter Notebook. Figura 25. Jupyter Notebook.


Encabezados markdown (I). Encabezados markdown (II).
Fuente: elaboración propia. Fuente: elaboración propia.

Listas no enumeradas: podemos realizarlas con cualesquiera de los símbolos “+”, “-“ y “*”.
Figura 26. Jupyter Notebook. Listas no Figura 27. Jupyter Notebook. Listas no
enumeradas (I). enumeradas (II).
Fuente: elaboración propia. Fuente: elaboración propia.

Listas numeradas: tenemos que introducir el número seguido de un punto: "n.".

Figura 28. Jupyter Notebook. Listas Figura 29. Jupyter Notebook. Listas
enumeradas (I). enumeradas (II).
Fuente: elaboración propia. Fuente: elaboración propia.

Estilos de texto:

Negrita: escribir dos asteriscos o dos guiones bajos.

Cursiva: escribir un asterisco o un guion bajo.

Figura 30. Jupyter Notebook. Estilos de Figura 31. Jupyter Notebook. Estilos de
texto (I). texto (II).
Fuente: elaboración propia. Fuente: elaboración propia.
Si se desea, puede descargarse el código que se vio con anterioridad a través de los siguientes enlaces:

Markdown_basicos_ipynb.zip
585 B

Markdown_basicos.zip
45.1 KB
Lección 4 de 11

IV. Sintaxis básica de Python

4.1. Declaración de variables


Para seguir esta sección se recomienda hacer uso de los siguientes archivos:

Sintaxis_Python_ipynb.zip
2.3 KB

Sintaxis_Python.zip
47.3 KB

Mediante el archivo Sintaxis_Python.html se verá el contenido de todo el notebook, tanto el código como los resultados; además es posible modificarlo. 

Por otro lado, mediante el archivo Sintaxis_Python.ipynb se podrá modificar el notebook y el código incluido en este, así como ejecutar las diferentes celdas para
visualizar resultados. Para abrir el archivo en primer lugar será necesario buscar la ruta del archivo y hacer clic en él, después, desde Anaconda Navigator,
automáticamente aparecerá todo el contenido de este.

Para declarar una variable en Python, simplemente tomaremos el nombre de una variable y le asignaremos un valor con el operador “=”.

C O NT I NU A R

Ejemplo

a=5
b = 2.32
c = ‘Hola’ 

Para mostrar el valor de una variable, basta con escribir el nombre de la misma, utilizar la función “print()” y escribir dentro de los paréntesis el nombre de la
variable.
Figura 32. Declaración de variables.
Fuente: elaboración propia.

C O NT I NU A R

4.2. Comentarios
Python dispone de dos tipos principales de comentarios:

De una línea: simplemente se coloca “#” antes del código que se quiera comentar.

Multilínea: se utilizan tres dobles comillas (“ “ “) para abrir el comentario. Este no finaliza hasta que volvemos a introducir otras tres comillas (“ “ “).  Este tipo
de comentario es muy útil para documentar la ayuda de una función. Si en vez de utilizar este tipo de comentarios dentro de una función, se utilizan estos
comentarios en una celda normal, Python lo interpretará como una cadena de texto.

Truco
Dentro de una celda, podemos comentar varias líneas de código si las seleccionamos y pulsamos “CNTRL + /”. Es
importante destacar que todas las líneas que hayamos seleccionado pasarán a ser comentarios de una línea (con
el símbolo “#”).

Figura 33. Comentarios en Python.


Fuente: elaboración propia.

C O NT I NU A R

4.3. Operadores
Se utilizan para poder comparar y asignar variables, los operadores más importantes de Python se reparten en las siguientes categorías:
Sirven para realizar operaciones entre dos variables,
Operadores aritméticos
para devolver un resultado.

1 of 5

Sirven para realizar una asignación, lo que crea una


Operadores de asignación nueva variable; o realizan una operación aritmética
sobre una nueva variable ya existente.

2 of 5

Sirven para comparar el valor de una expresión entre


Operadores de comparación
dos variables y devuelven un valor booleano.
3 of 5

Sirven para expresar si existe igualdad entre dos


Operadores de identidad
variables y devuelven un valor booleano.

4 of 5

Sirven para expresar si una cadena de texto está dentro


Operadores de pertenencia
de otra cadena de texto y devuelven un valor booleano.

5 of 5
A continuación, mostraremos una tabla para cada tipo de operador en función de su categoría.

Tabla 1. Operadores aritméticos.


Fuente: elaboración propia.

Figura 34. Operadores aritméticos.


Fuente: elaboración propia.

Tabla 2. Operadores de asignación.


Fuente: elaboración propia.
Figura 35. Operadores de asignación.
Fuente: elaboración propia.

Tabla 3. Operadores de comparación.


Fuente: elaboración propia.
Figura 36. Operadores de asignación (I).
Fuente: elaboración propia.

Figura 37. Operadores de asignación (II).


Fuente: elaboración propia.

Tabla 4. Operadores de identidad.


Fuente: elaboración propia.

Figura 38. Operadores de identidad.


Fuente: elaboración propia.
Tabla 5. Operadores de pertenencia.
Fuente: elaboración propia.

Figura 39. Operadores de pertenencia.


Fuente: elaboración propia.

Una vez vistos los principales tipos de operadores y qué operaciones podemos realizar con ellos, es el momento de conocer cuáles son los principales tipos de
variables en Python y, además, descubrir cómo conocer el tipo de una variable.

C O NT I NU A R

4.4. Tipos de variables


Como en casi todos los lenguajes de programación, Python cuenta con los principales tipos de variables con los que podemos trabajar, que se reparten en tres
categorías:

Numéricas: dentro de esta categoría podemos encontrar dos tipos de números que podemos declarar como variables.

Enteros.

Decimales.

Cadenas de texto.

Booleanos: representan los valores verdadero (True) o falso (False).


Figura 40. Tipos de variable.
Fuente: elaboración propia.

Cada tipo de variable se representa con una clase en Python. Hay que tener en cuenta que las estructuras de datos también cuentan con una clase de Python y que
los paquetes que importemos contarán con tipos especiales de clases. 

Para conocer el tipo de una variable haremos uso de la función “type()”. Los tipos básicos de variables se representan con las siguientes clases:

“type(8) #” devolverá “int”.

“type(5.2852) #” devolverá “float”.

“type(‘ Hola mundo !’) #” devolverá “str”.

“type(True) #” devolverá “bool”.


Figura 41. Clases de variables.
Fuente: elaboración propia.
Lección 5 de 11

V. Herramientas para control de flujo

Uno de los aspectos fundamentales que debemos cuidar a la hora de desarrollar, ya sea en Python o en cualquier otro lenguaje de programación, es el flujo del
programa. Esto garantizará que las variables se procesen de forma correcta, hasta obtener los resultados deseados.

Las estructuras de control de flujo que se verán a continuación permiten tomar decisiones acerca de cómo debe continuar la ejecución de un programa. Las de tipo
condicional utilizan expresiones del tipo si (condición), entonces (acción). Otras utilizan bucles que permiten continuar ejecutando una operación, bien hasta que
se cumple una cierta condición, bien mientras se cumpla una cierta condición.

Se recomienda seguir el contenido de esta sección mediante los siguientes notebooks.

Herramientas_control_flujo_ipynb.zip
1.8 KB

Herramientas_control_flujo.zip
46.7 KB

C O NT I NU A R

5.1. Condicionales
Este tipo de estructura de control se basa en la utilización de los operadores booleanos (de comparación, vistos anteriormente). El funcionamiento se rige por la
construcción de una expresión booleana. Si (if) esta expresión se cumple, realizamos una acción; si no (else), se cumple otra acción.
1

Figura 42. If simple. 


Fuente: Python para todos, capítulo tres: “Ejecución condicional”. [En línea] URL disponible en este enlace.

El tipo más básico que podemos encontrarnos es un if simple. En donde, si se cumple la expresión booleana,
realizamos una acción. Si esta expresión no se cumple, simplemente no hacemos nada.
2

Figura 43. Código if simple.


Fuente: Python para todos, capítulo tres: “Ejecución condicional”. [En línea] URL disponible en este enlace.
3

Figura 44. If - else simple.


Fuente: Python para todos, capítulo tres: “Ejecución condicional”. [En línea] URL disponible en este enlace.

Cuando no se cumple la expresión booleana, se continúa el flujo del programa hacia el “si no” (else). En un if simple se añadiría la
estructura if – else.
4

Figura 45. If - else - pass.


Fuente: elaboración propia.

En el ejemplo anterior, si no se cumple la expresión booleana, no ocurre nada. Para especificar esta acción, existe una palabra
reservada, que es “pass”; indica que continúa la ejecución del programa sin hacer nada. Por defecto se realiza ante la ausencia de un
else, pero es aconsejable su uso para mejorar la legibilidad de los programas. El ejemplo anterior sería equivalente añadiendo else –
pass de la siguiente manera.
5

Figura 46. Ejemplo par, impar.


Fuente: Python para todos, capítulo tres: “Ejecución condicional”. [En línea] URL disponible en este enlace.

Otro ejemplo posible sería el siguiente: determinar si un número es par o impar. En esta ocasión, se utilizaría el operador aritmético
“%” para resto o módulo. Si el resultado es 0, un número será par; de lo contrario, impar.
6

Figura 47. Condicional encadenado.


Fuente: Python para todos, capítulo tres: “Ejecución condicional”. [En línea] URL disponible en este enlace.

Otro tipo de condicional es el encadenado. Esta estructura de control se basa en que si la expresión booleana no se cumple, se abre
una nueva expresión booleana como un nuevo if; si se requiere, pueden abrirse n nuevas expresiones booleanas hasta que lleguemos
a else, que significa la finalización del if – elif – else.
7

Figura 48. Código condicional encadenado.


Fuente: Python para todos, capítulo tres: “Ejecución condicional”. [En línea] URL disponible en este enlace.
8

Figura 49. Condicional anidado.


Fuente: Python para todos, capítulo tres: “Ejecución condicional”. [En línea] URL disponible en este enlace.

El último condicional que se puede construir es condicional anidado. Este tipo se basa en incluir un condicional dentro de un
condicional.
9

Figura 50. Código condicional anidado.


Fuente: Python para todos, capítulo tres: “Ejecución condicional”. [En línea] URL disponible en este enlace.

C O NT I NU A R

5.2. Bucles
Algo muy habitual durante el desarrollo es tener que realizar una misma operación varias veces; para ello, existen los bucles, que es donde se puede realizar
iterativamente una operación. Por ejemplo, si estamos explorando un dataset, es bastante probable que queramos aplicar una misma operación en cada fila de los
datos. Los principales bucles que vamos a utilizar son bucle for y bucle while.

5.2.1. Bucle for


El bucle for se basa en realizar de forma secuencial una misma tarea tantas veces como longitud tenga el tamaño de la secuencia. Su estructura es la siguiente:

for índice in secuencia: 

Nótese que, en este caso, índice y secuencia serán variables definidas por el usuario. La variable índice sirve para denotar la posición en el bucle for. Por ejemplo,
si queremos imprimir los números del 1 al 10, el número de índice sería 1, 2, […], 10. Para entender mejor el funcionamiento de este bucle, propondremos algunos
ejemplos.
Figura 51. Ejemplo de bucle for (I).
Fuente: elaboración propia.

Para el siguiente ejemplo, utilizaremos la función “range()”, la cual toma un número como parámetro y genera una secuencia de números del cero a n.

Figura 52. Ejemplo de bucle for (II).


Fuente: elaboración propia.

Para combinar algunas partes del temario ya vistas, se propone un ejercicio en el cual, a través de una secuencia del cero al diez, se determine si el número es par,
se muestre su exponencial de dos y, si no, que lo divida entre dos.
Figura 53. Ejemplo de bucle for (III).
Fuente: elaboración propia.

Al igual que los condicionales, los bucles for también pueden anidarse. Para ver esto en un ejemplo sencillo, se propondrá el ejemplo de un programa que realice la
tabla de multiplicar del uno al nueve. Para ello, se tendrá en cuenta que el primer bucle for primero recorrerá el ítem uno; posteriormente, nos encontraremos el
segundo bucle for anidado que provocará que el ítem se vaya calculando de nuevo del cero al nueve. Para añadir un pequeño condicionante, no se mostrará la tabla
del cero.
Figura 54. Ejemplo bucle for anidado.
Fuente: elaboración propia.

Como puede comprobarse en el ejemplo anterior, el concepto más importante es que los bucles anidados se ejecutan de abajo a arriba, es decir: el primer bucle for
no cambia al siguiente elemento hasta que el bucle for anidado finaliza todo su recorrido.

C O NT I NU A R

5.2.2. Bucle while


En este caso, este bucle se basa en realizar una misma acción hasta que una expresión booleana definida por el usuario no se cumpla. Se propone un ejemplo muy
sencillo: mientras el valor numérico de una variable (con valor “1”) no sea igual a “10”, imprimiremos “ERROR !” en cada iteración y sumaremos uno al valor actual
de la variable.

Figura 55. Ejemplo de bucle while.


Fuente: elaboración propia.

Como se puede observar, cuando el bucle while finaliza su procesamiento, se puede añadir la sentencia de control else para realizar una acción diferente.

Se utilizará una nueva función: “input()”. Esta función sirve para solicitar al usuario por teclado una cadena de texto. En el siguiente ejercicio, mientras el usuario no
teclee la cadena de texto “‘fin’”, el programa seguirá solicitando la entrada de una nueva cadena de texto.
Figura 56. Ejemplo de bucle while e input.
Fuente: elaboración propia.
Lección 6 de 11

VI. Estructura de datos

Ya se ha visto el proceso para declarar variables de diferentes tipos, cambiar su valor mediante operadores, controlar el flujo de un programa a través de
herramientas de control y realizar iteraciones a través de bucles. Python ofrece muchas facilidades a la hora de trabajar con datos, lo que resulta especialmente
útil en el campo de la ciencia de datos. En esta sección se muestran cuáles son las principales opciones de Python para este fin.

Se recomienda seguir el contenido de esta sección a través de los siguientes notebooks:

Estructuras_datos_ipynb.zip
3.1 KB

Estructuras_datos.zip
48.4 KB

C O NT I NU A R

6.1. Tuplas
Se trata de la estructura de datos más básica. Toda la información se almacena entre paréntesis y separada por comas. Presentan la siguiente estructura:

(ítem_1, ítem_2, … , ítem_n)

También es posible anidar tuplas: 

( (1, 3, 90), (4, 5, 9, 2.32, ‘hello’) )


Es importante recalcar que las tuplas soportan diferentes tipos de datos y que es posible la creación de tuplas con elementos de diferente longitud.

Figura 57. Definición de una tupla.


Fuente: elaboración propia.

Las tuplas presentan algunas características mencionadas a continuación:


1

Figura 58. Índice de una tupla. 


Fuente: elaboración propia.

Soportan indexación, es decir: podemos acceder a los contenidos en la tupla indicando sus índices entre corchetes ([ ]). Es importante
que sepamos que los índices de las tuplas comienzan en “0” y no en “1”.
2

Figura 59. Modificación de una tupla.  


Fuente: elaboración propia.

No son mutables, es decir, no podemos cambiar un valor de una tupla. Nos devolverá un error.
3

Figura 60. Clase de una tupla.


Fuente: elaboración propia.

En Python, las tuplas tienen una clase propia, que es “tuple”.

C O NT I NU A R

6.2. Listas
De un modo similar a una tupla, una lista es una secuencia de valores. También acepta valores de cualquier tipo. En este caso, su representación es entre
corchetes ([ ]) y todos sus valores separados por comas. Algunos ejemplos de lista serían:

mi_lista = [1, 3, 89, 23]

mix_list = [‘hola’, 51, 8.23, 2, ‘cadena’]

Figura 61. Ejemplos de listas.


Fuente: elaboración propia.

Al igual que las tuplas, las listas también se pueden anidar.


Figura 62. Lista anidada.
Fuente: elaboración propia.

Una de las grandes ventajas, además de poder manejarlas a través de sus índices, es que también podemos cambiar su valor a través de su índice, es decir: son
mutables.

Figura 63. Índices de una lista.


Fuente: elaboración propia.

En el trabajo con datos, son sin duda una de las estructuras de datos más utilizadas, principalmente por la amplia gama de funciones que permiten realizar sobre
las mismas. Describimos las más importantes:
1

Figura 64. Lista “append”.


Fuente: elaboración propia.

“append”: permite añadir un nuevo elemento a una lista.


2

Figura 65. Lista “clear”.


Fuente: elaboración propia.

“clear”: borra por completo todos los elementos de una lista, lo que deja una lista vacía.
3

Figura 66. Lista posiciones de memoria.


Fuente: elaboración propia.

“copy”: permite copiar una lista. Es importante añadir que, si simplemente asignamos una lista a una variable, ambas compartirán las
posiciones de memoria; así pues, para evitar este problema, conviene usar la opción “copy”.
4

Figura 67. Lista “copy”.


Fuente: elaboración propia.
5

Figura 68. Lista “extend”.


Fuente: elaboración propia.

“extend”: añade los elementos de una lista al final de otra.


6

Figura 69. Lista “index”.


Fuente: elaboración propia.

“index”: devuelve la posición de índice de un valor. Evidentemente, si el valor no existe, mostrará un error.
7

Figura 70. Lista “insert”.


Fuente: elaboración propia.

“insert”: añade un elemento en una posición específica.


8

Figura 71. Lista “pop”.


Fuente: elaboración propia.

“pop”: borra un elemento en una posición específica.


9

Figura 72. Lista “remove”.


Fuente: elaboración propia.

“remove”: borra el elemento con un valor específico.


10

Figura 73. Lista “reverse”.


Fuente: elaboración propia.

“reverse”: invierte el orden de una lista.


11

Figura 74. Lista “sort”.


Fuente: elaboración propia.

“sort”: ordena los valores de una lista.

Uno de los aspectos más importantes a la hora de trabajar con listas es saber cómo iterar y recorrer sus elementos; para ello, lo más habitual suele ser utilizar el
bucle for. Las dos formas más comunes son: 

1. Recorrer directamente el elemento.

2. Recorrer los elementos por índice utilizando la función “range”. Veamos un par de ejemplos.

for item in lista:


print(item)

Figura 75. Recorrer lista por elemento.


Fuente: elaboración propia.

for item in range(len(lista)):


print('Índice --> ', item , ' valor: ', lista[item])
Figura 76. Recorrer lista por índice.
Fuente: elaboración propia.

Es importante enfatizar en que la función “range” nos permite generar una secuencia de números, pero no siempre desde cero a n; por lo tanto, si no queremos
procesar n elementos de la lista, podemos hacer lo siguiente: en este caso, procesaremos únicamente del índice “2” al final de la lista.

for item in range(2, len(lista)):


print('Índice --> ', item , ' valor: ', lista[item])

Figura 77. Recorrer lista por índice, variación en “range”.


Fuente: elaboración propia.

Finalmente, podemos ver cómo una lista también tiene una clase propia.

Figura 78. Clase de una lista.


Fuente: elaboración propia.

C O NT I NU A R
6.3. Diccionarios de datos
Los diccionarios de datos son una de las estructuras más rápidas en lo que a procesamiento se refiere. Tal y como hemos visto, los índices de las listas son
números enteros del 0 a n (final de la lista). En este caso, en los diccionarios, un índice puede ser también un string u otro tipo de identificador, siempre y cuando se
cumpla una regla básica. Estos índices son únicos, así que no pueden repetirse.

La estructura que presenta un diccionario de datos, es que todos los datos van entre llaves ({ }) y cualquier valor viene precedido por un campo clave, lo que resulta
de la siguiente manera:

{ Clave : Valor }

Figura 79. Diccionario de datos.


Fuente: elaboración propia.

Los diferentes ítems de un diccionario de datos se irán separando por comas:

{ Clave_1: Valor_1, Clave_2 : Valor_2, … , Clave_n, Valor_n }

Figura 80. Elementos de un diccionario de datos.


Fuente: elaboración propia.

Del mismo modo que hemos visto que las tuplas y las listas pueden anidarse, los diccionarios de datos también. En este caso, una clave contiene como campo de
valor un nuevo diccionario.
{ clave : {sub_clave : valor_1,
sub_clave_2 : valor_2,
… ,
sub_clave_n : valor_n }
clave_2 : valor }

Figura 81. Diccionario anidado.


Fuente: elaboración propia.

Existen dos funciones principales para poder acceder tanto a los campos clave como a los campos valor que son “keys()” y “values()”.

Figura 82. Campos clave.


Fuente: elaboración propia.

Figura 83. Campos valor.


Fuente: elaboración propia.
C O NT I NU A R

Figura 84. Buscando campo clave.


Fuente: elaboración propia.

Como hemos podido comprobar, tanto los valores como las claves son listas, por lo tanto, cuando queramos
saber si un ítem es un campo clave, podemos buscarlo como si de una lista se tratase. Si el campo se
encuentra en el diccionario, nos devolverá su valor; de lo contrario, mostrará un error.

Figura 85. Función get.


Fuente: elaboración propia.

Otra forma de buscar un campo clave es haciendo uso de la función “.get”.

Figura 86. Función clear.


Fuente: elaboración propia.

Al igual que en las listas, con la función “.clear” podemos borrar todo el diccionario.
Figura 87. Función pop.
Fuente: elaboración propia.

Si queremos borrar un campo completo, podemos realizarlo a través de la función “.pop”, a la cual le
pasaremos como argumento el campo clave.

Figura 88. Función popitem.


Fuente: elaboración propia.

Otra función con la que podemos eliminar elementos de un diccionario de datos, es “.popitem”. A través de
esta función, borraremos el último elemento insertado.

Figura 89. Función update.


Fuente: elaboración propia.

Finalmente, podemos añadir nuevos elementos a un diccionario con la función “.update”.

Figura 90. Clase de un diccionario.


Fuente: elaboración propia.

Como ya hemos visto con el resto de estructuras de datos, un diccionario de datos tiene una clase propia:
dict.
Lección 7 de 11

VII. Funciones

7.1. Funciones
Las funciones de Python son muy importantes a la hora de estructurar el código de una manera profesional.  Deberán utilizarse siempre que tenga sentido, por
ejemplo, si se está repitiendo el mismo bloque de código continuamente a lo largo de un programa, probablemente se debería estar encapsulando ese código
dentro de una función.

Básicamente, una función es un fragmento o bloque de código que solamente se ejecuta cuando este es llamado. A cualquier función le podemos pasar
parámetros de entrada o argumentos y devolver resultados como parámetros de salida.

Se recomienda seguir el contenido de esta sección a través de los siguientes notebooks:

FUNCIONES_ipynb.zip
2.4 KB

FUNCIONES.zip
47.5 KB

C O NT I NU A R

7.2. Cómo definir y llamar funciones


Para definir una función, utilizaremos la palabra clave def seguida del nombre que otorgaremos a dicha función y cualquier parámetro de entrada entre paréntesis y
separados por comas.

Empezaremos por la función más básica, una en la que no utilicemos parámetros de entrada ni de salida.
def saludar():
print('Hola !')

saludar()

Figura 91. Función básica.


Fuente: elaboración propia.

Ahora, probaremos a añadir un argumento. Es importante señalar que ahora, cuando llamemos a la función, tendremos que utilizar el nombre del argumento como
entrada y el valor que pasaremos a este argumento.

def saluda_nombre(nombre):
print('Hola', nombre, '!')

saluda_nombre(nombre='Juan')

Figura 92. Función con un parámetro.


Fuente: elaboración propia.

3
Añadir más de un parámetro simplemente hará que tengamos que pasar más información a nuestra función.

def aplica_iva(nombre_artículo, precio):


print('El precio total de', nombre_artículo, 'es: ',
round(precio + (precio*0.21),2))

aplica_iva(nombre_artículo='NVIDIA GTX 2080', precio=2045)

Figura 93. Función con más de un parámetro.


Fuente: elaboración propia.

Cuando queremos devolver algún resultado a través de una función, haremos uso de la palabra clave return. Si devolvemos más de un resultado, estos irán
separados por comas.

def obten_precio_total(precio):
precio_final = round(precio + (precio * 0.21), 2)

return precio_final

precio_total = obten_precio_total(precio=2000)

print('El precio final del artículo es: ', precio_total, 'euros')


Figura 94. Función con parámetro de salida.
Fuente: elaboración propia.

C O NT I NU A R

7.3. Ejemplo del uso de funciones


Para ejemplificar cómo devolver más de un parámetro de salida, se propone el siguiente programa: dada una secuencia de números, almacenar todos los números
pares en una lista y todos los impares en otra. Devolver ambas listas.

# Dada una secuencia de números.


# Almacenar todos los números pares en una lista.
# Todos los números impares en otra lista
# Devolver ambas listas

def pares_impares(numbers):

# Inicializamos lista pares e impares


pares = []
impares = []

for item in numbers:


if item % 2 == 0:
# Es par
pares.append(item)
else:
# Es impar
impares.append(item)

return pares, impares

tupla_números = (1, 8, 23, 0, 199, 457, 398, 5, 9, 150, 780, 7592)

lista_pares, lista_impares = pares_impares(numbers=tupla_números)

print('Todos los números pares de la secuencia son:', lista_pares)


print('Todos los números impares de la secuencia son:', lista_impares)
Figura 95. Función con más de un parámetro de salida.
Fuente: elaboración propia.

C O NT I NU A R

7.4. Llamar funciones dentro de una funciones


Del mismo modo que podemos procesar información y transformar variables en una función, podemos también llamar funciones dentro de una función:

def banner():
print('-'*20)
print('*'*20)
print('-'*20)

def programa_principal():
banner()
print('Iniciando el programa... \n')
banner()
print('Saliendo del programa')

programa_principal()
Figura 96. Llamada a función en una función.
Fuente: elaboración propia.

Finalmente, una vez visto cómo se pasan uno o más parámetros de entrada y cómo se devuelve uno o más parámetros de salida, es importante hablar del bloque
main. Especialmente cuando trabajamos con notebooks, es importante definir el cuerpo principal del programa, que será la función del bloque main, es decir: todo
lo que incluyamos bajo el bloque main se ejecutará de forma secuencial. Por lo tanto, es importante definir en primera instancia todas las funciones necesarias
para la ejecución del programa y, en último lugar, el bloque main, que se define como:

if __name__ == '__main__':
# Llamada a funciones

Para ilustrar el funcionamiento del bloque main, implementaremos el siguiente programa:

Diseñar e implementar un programa en el que el usuario introduzca frases hasta que teclee “basta”, estas frases las almacenaremos en una lista, posteriormente,
iremos almacenando en una nueva lista todas las frases que contengan la letra “a”. Finalmente, desde el cuerpo principal del programa, mostraremos estas frases
por pantalla.

Para realizar este programa seguiremos los siguientes pasos:

1. Obtener todas las frases.

2. Filtrar por las frases que tengan la letra “a”.

3. Función para mostrar todas las frases filtradas.

4. Crear cuerpo principal del programa.


def get_phrases():
"""
Función que solicita frases al usuario hasta que
el usuario teclea 'basta'

input: None
output: list[]
"""
# Lista vacía para almacenar frases
frases = []

respuesta = input()

while respuesta != 'basta':


frases.append(respuesta)

respuesta = input()

return frases

def filter_phrases(lista_frases):
"""
Función que recibe una lista con frases y las
va filtrando iterativamente, quedándose solamente con
aquellas frases que tienen la letra 'a'

input: list
output: list
"""

# Definimos una nueva lista para almacenar todas las frases con
# la letra a
frases_con_a = []

for item in lista_frases:


if 'a' in item:
frases_con_a.append(item)
else:
# No hacemos nada
pass

return frases_con_a

def show_filtered_phrases(frases_filtradas):
"""
Función que devuelve iterativamente todas las
frases filtradas.

input: list
output: None
"""

# Utilizamos un bucle for para mostrar todas las palabras

for frase in range(len(frases_filtradas)):


print('Frase en posición {} --> {}
'.format(frase, frases_filtradas[frase]))

# Como se puede comprobar aquí estamos utilizando format


# para imprimir, lo que hacemos es mostrar más ordenado
# lo que esté entre corchetes.

# No return

if __name__ == '__main__':
todas_las_frases = get_phrases()
frases_clean = filter_phrases(lista_frases=todas_las_frases)
show_filtered_phrases(frases_filtradas=frases_clean)

Figura 97. Función “get_phrases”.


Fuente: elaboración propia.

Figura 98. Función “filter_phrases”.


Fuente: elaboración propia.
Figura 99. Función “show_filtered_pharses”.
Fuente: elaboración propia.

Figura 100. Cuerpo principal.


Fuente: elaboración propia.
Lección 8 de 11

VIII. Resumen

Repasa los conocimientos adquiridos en la unidad

A lo largo de esta unidad, se han visto los aspectos fundamentales de la programación Python, que es uno de los lenguajes más utilizados del mundo y uno de los más
extendidos entre los profesionales de ciencia de datos.

Se ha empezado exponiendo lo más esencial, como es la instalación de un entorno de programación. En este caso se ha presentado Jupyter Notebook, que sirve para
documentar y programar en el mismo archivo. Posteriormente, se ha expuesto lo más básico de la programación Python, que es la declaración de variables, cómo agregar
comentarios y trabajar con los principales operadores y saber qué tipos de variables hay y cómo podemos trabajar con ellas. En definitiva: conocer la sintaxis básica de Python.

Posteriormente se ha hablado sobre cómo poder controlar la ejecución de un programa a través de las principales estructuras de control de flujo mediante las órdenes iterativas
Posteriormente, se ha hablado sobre cómo poder controlar la ejecución de un programa a través de las principales estructuras de control de flujo mediante las órdenes iterativas
con bucles o implementando expresiones booleanas para elaborar condicionales.

Por otro lado, se ha estudio uno de los aspectos más importantes de Python y que le han otorgado gran popularidad entre los científicos de datos: las estructuras de datos.
Además, hemos visto las principales funcionalidades de cada una de ellas.

Finalmente, hemos aprendido cómo modularizar programas a través de funciones mediante la escritura de parámetros de entrada y la devolución de parámetros de salida.
Lección 9 de 11

IX. Caso práctico con solución

Aplica los conocimientos adquiridos en esta unidad

ENUNCIADO

Resuelve los siguientes ejercicios.

EJERCICIO 1

Escribir una función que reciba una secuencia de números (puede ser lista o tupla y los números pueden ser enteros o decimales) y devuelva la cantidad de números, el valor
máximo, el mínimo y la media.

EJERCICIO 2
Escribir un programa que, partiendo de las dos siguientes listas con nombres, borre de la lista uno los nombres de la lista dos.
 
lista_uno = ['Mario', 'Paula', 'David', 'Ana', 'Jorge', 'Ivan', 'Laura', 'Beatriz']
lista_dos = ['Paula', 'Francisco', 'Jorge', 'Juan', 'David']

EJERCICIO 3

Dado el siguiente diccionario de datos:


 
precios = {
     'ACCIONA': [78.60, 84.95, 77.20],
     'ACERINOX': [5.88, 51.25, 58.42],
     'INDITEX': [49.99, 57.89, 68.5],
     'ENEGAS': [0.5, 0.78, 48.75],
    'FERROVIAL': [78.58, 24.25, 65.45]
}
 
Modificar cualquier precio inferior a 50 y, finalmente, devolver el diccionario de datos actualizado por cada nombre de empresa.

VER SOLUCIÓN

EJERCICIO_1_SOLUCION.zip
1.3 KB

EJERCICIO_2_SOLUCION.zip
1 KB

EJERCICIO_3_SOLUCION.zip
1.7 KB
Lección 10 de 11

X. Glosario

El glosario contiene términos destacados para la comprensión de la unidad

Anaconda

Distribución open source dedicada a lenguajes de programación científica como Python y R. Para simplificar la gestión de paquetes y versiones, todo se realiza desde

Bucle for

Herramienta de control dedicada a procesar información de manera iterativa. Un bucle for toma como punto de inicio y de parada un número entero. Durante cada se

Bucle while

Herramienta de control en forma de bucle que sirve para realizar constantemente (de forma iterativa) la misma acción hasta que se cumpla una expresión booleana.

Campo clave

Elemento único de los diccionarios de datos. Se trata del identificador único para cada valor.

Campo valor

Elemento único de los diccionarios de datos. Se trata del valor que toma cada posición de un diccionario. Cualquier campo valor viene precedido por un campo clave

Celda o chunk

Fragmento de código que puede ser ejecutado por separado. De esta manera se puede dividir el código de un notebook.

Clase

Abstracción de un programa en donde se definen diferentes atributos o propiedades de un objeto, de manera semejante a la vida real, en donde cada objeto tiene sus

Compilar un programa

Procesar todo el código fuente para que este sea entendible por una máquina. Una vez realizado el proceso, el programa puede ejecutarse tantas veces como sea ne

Condicional if-else

Herramienta de control estructurada con base en una expresión booleana en la que si (if) la condición se cumple, se realiza una parte del código o una acción, y si no

Diccionario de datos

Estructura de datos en la cual los datos están distribuidos entre llaves en forma de clave: valor.
Entrada de parámetros

Parámetros que son necesarios para el funcionamiento de una variable que serán tratados dentro del cuerpo de la función.

Estructura de datos

Elementos sobre los que se pueden almacenar variables para su posterior tratamiento. En Python se distinguen tuplas, listas y diccionarios de datos.

Flujo de control

Conjunto de herramientas que ayudan a diseñar el orden de un programa. Se pueden definir ciertas acciones a través de expresiones booleanas o procesos iterativos

Función

Bloque de código que se ejecuta únicamente cuando es llamado dentro de un programa. Una función puede no recibir ningún parámetro o recibir de uno a n parámetr
de salida.

Índice

Característica principal de las listas y cadenas de texto. Un índice almacena cada valor de una lista o cada caracter de una cadena de texto. Comienza en la posición
específica del índice, lo que se conoce como indexar.

Intérprete

Se encarga de procesar un programa escrito en código fuente entendible por el intérprete, es decir:  cualquier programa de Python se interpreta a través del intérprete
Jupyter Notebook

Entorno de desarrollo software para Python, R, Julia y más de 100 lenguajes de programación. Se caracteriza por ser un entorno de desarrollo interactivo que permite
guardar, incluso, los resultados o notebooks o cuadernos.

Kernel

En Jupyter Notebook, un kernel es un programa responsable de manejar las diferentes solicitudes de ejecución de código y depuración de código.

Lenguaje interpretado

Lenguaje de programación cuyo código no necesita ser preprocesado a través de un compilador, es decir> toda la ejecución del código se realiza en tiempo real a tra

Librería

Conjunto de funciones para un lenguaje de programación empaquetadas en una única solución.

Lista

Estructura de datos en la que los elementos están encerrados entre corchetes y separados por comas. Pueden alterarse los valores de cada una de las posiciones d

Multiplataforma

Aplicación o programa software que puede ser utilizado en diferentes sistemas operativos.

Operador

Funciones predefinidas sobre las que podemos alterar el valor almacenado en una variable. Los operadores nos permiten aplicar funciones matemáticas, comparativ

Orientación a objetos

Se trata de un paradigma de la programación en la que el código puede ser organizado en clases. Cada clase tendrá una serie de variables propias que interactúan co
objeto tiene sus propias características.

Programación modular

Programación en la que el código puede dividirse en módulos o subprogramas con el objetivo de mejorar el procesamiento, aumentar la tolerancia a errores y hacer

Python

Lenguaje de programación orientado a objetos. Se puede trabajar con estructuras de datos de alto nivel y una sintaxis elegante y simple.

Salida de parámetros

Conjunto de variables creadas dentro de una función, que deben ser almacenadas a través de una nueva variable fuera de la función al finalizar su ejecución.

Tipado dinámico

Un lenguaje de programación posee tipado dinámico si una variable puede tomar valores de diferente tipo como, por ejemplo, que inicialmente se haya creado como

Tupla

Estructura de datos que se caracteriza por tener todos sus valores encerrados entre paréntesis y separados por comas. No es mutable, es decir:  sus valores no se p
Variable

Elemento en el que guardamos un valor para su posterior procesamiento. Una variable puede ser modificada.
Lección 11 de 11

XI. Bibliografía

Tutorial Python online. [En línea] URL disponible en este enlace.

Barba, L. et al. Teaching and learning with Jupyter; 2019. [En línea] URL disponible en este enlace.

Tutorial sobre Jupyter Notebook. [En línea] URL disponible en este enlace.

Página web Anaconda. [En línea] URL disponible en este enlace.

Página web Python. [En línea] URL disponible en este enlace.

Severance, C. Python para todos. Explorando la información con Python 3; 2016 [En línea] URL disponible en este enlace.

Tutorial Python online. [En línea] URL disponible en este enlace.

Tutorial Python online. [En línea] URL disponible en este enlace.

También podría gustarte