Introducción a Python para Ciencia de Datos

Le damos la bienvenida a nuestro curso Propedéutico de Python dedicado a la Ciencia de Datos. Python es un lenguaje de programación inmensamente útil en Ciencia de Datos y otras disciplinas. En esta sección encontrará el material semanal que incluye las grabaciones y algunas instrucciones. Le recomendamos revisar este material antes de comenzar su curso en Bourbaki.

Semana

1

Lección I

Intro a Python: 1.1 ¿Qué es Python?

En la clase del día de hoy tendremos un primer acercamiento al lenguaje de programación Python y al entorno de trabajo Jupyter Notebook utilizando Google Colaboratory.

Python es un lenguaje de programación de propósito general ideado por el holandés Guido van Rossum para ser simple en su escritura y lectura. La primera versión de Python fue lanzada en 1991 y la versión 1.0 en 1994. Hoy en día es uno de los lenguajes más extendidos.

Principios

El ingeniero de software Tim Peters escribió “Zen of Python” que es una colección de 19 principios rectores para escribir programas de computadora. Estos influyeron en el diseño del lenguaje de programación Python. Entre estos principios están:

  • Bello es mejor que feo.
  • Explícito es mejor que implícito.
  • Simple es mejor que complejo.
  • Complejo es mejor que complicado.
  • La legibilidad cuenta.
  • Los casos especiales no son tan especiales como para quebrantar las reglas.

Características generales y ventajas

  1. Python es un lenguaje fácil de aprender y de programar.
  2. Es un lenguaje versátil.
  3. Es un lenguaje limpio y simple. Es fácil de leer e intuitivo, sintaxis minimalista.
  4. Incorpora herramientas para visualización de datos.
  5. Otorga un “entorno” unificado e interactivo.
  6. Requiere un tiempo de desarrollo reducido y un tiempo de ejecución razonable.
  7. El lenguaje está diseñado para fomentar muchas buenas prácticas de programación como son:
  8. – Programación modular y orientada al objeto: permite “empaquetar” y reusar códigos, lo que además logra un código más transparente y facilidad para depurar bugs.
  9. Su documentación está estrechamente integrada al código: cuenta con una gran librería y colección de paquetes externos.

Desventajas de Python:

  • Python es un lenguaje interpretado y de tipado dinámico, por lo que la ejecución del código puede ser lenta comparada con lenguajes compilados y de tipado estático, como C++ y Fortran. No obstante, en las últimas versiones de Python se ha aumentado considerablemente la velocidad.

Archivos de programas en Python

El código Python es usualmente almacenado en archivos de texto con extensión “`.py`”

Se asume que cada línea de un archivo de programa en Python es una sentencia Python, o parte de una sentencia.

La única excepción son las líneas de comentarios, que comienzan con el carácter `#` estas líneas son ignoradas por el intérprete Python.

RESPONDER CUESTIONARIO
¿Tiene alguna duda para el profesor?
Hacer pregunta sobre lección
Intro a Python: 1.1 ¿Qué es Python?
Muchas gracias, tu pregunta ha sido enviada al profesor. Se pondrá en contacto contigo a tu correo electrónico.
Algo sucedió mal, favor de intentar de nuevo, si sigue sin funcionar favor de solicitar soporte.
Intro a Python: 1.2 Jupyter Notebooks

¿Qué es un Jupyter Notebook?

Un Jupyter Notebook, es un ambiente de trabajo que busca unificar las herramientas de documentación y ejecución, permitiendo escribir código, visualizar resultados  e incluir comentarios de manera interactiva.

Jupyter Notebook tiene su origen en IPython, creado en 2014 por el físico colombiano Fernándo Pérez, promotor del software libre.

El nombre de Jupyter  proviene de los tres principales lenguajes de programación que soporta: Julia, Python y R, y tambíen en honor a Galileo quien el 7 de enero de 1610 descubrió los tres primeros satélites de Júpiter.

Un Notebook no sigue el patrón estándar de código Python en un archivo de texto con extensión ‘py’ que solamente guardan código. En su lugar, es almacenado como un archivo con la extensión ‘ipynb’  (acrónimo de IPython NoteBook). Estos archivos, internamente usan el formato JSON posibilitando guardar y compartir documentos con texto formateado, código y visualización de resultados.

RESPONDER CUESTIONARIO
¿Tiene alguna duda para el profesor?
Hacer pregunta sobre lección
Intro a Python: 1.2 Jupyter Notebooks
Muchas gracias, tu pregunta ha sido enviada al profesor. Se pondrá en contacto contigo a tu correo electrónico.
Algo sucedió mal, favor de intentar de nuevo, si sigue sin funcionar favor de solicitar soporte.
Intro a Python: 1.3 Google Colab

Google Colab es un servicio gratuito de Google para utilizar el entorno de Jupyter Notebook sin necesidad de configuración que se ejecuta completamente en la nube. Basta con tener una cuenta de google.

En el siguiente vídeo veremos cómo abrir un Notebook en Colab desde Google Drive y dar nuestros primeros pasos en la herramienta.

01.Introducción_a_Python

RESPONDER CUESTIONARIO
¿Tiene alguna duda para el profesor?
Hacer pregunta sobre lección
Intro a Python: 1.3 Google Colab
Muchas gracias, tu pregunta ha sido enviada al profesor. Se pondrá en contacto contigo a tu correo electrónico.
Algo sucedió mal, favor de intentar de nuevo, si sigue sin funcionar favor de solicitar soporte.

Semana

2

Lección II

Intro a Python: 2.1 Print, variables y tipos de datos

En Python, la función print() se utiliza para mostrar información en la pantalla. Es una de las funciones más utilizadas, especialmente para depuración y comunicación con el usuario.

La sintaxis básica de print() es la siguiente:

Cuando creamos una variable en Python, lo que hacemos es reservar espacio de memoria para almacenar valores.

En Python a diferencia de los requerimientos en otros lenguajes como Java o C, no es necesaria una declaración explícita para reservar un espacio en la memoria. La declaración se hace automáticamente al asignar un valor a una variable, utilizando el signo igual que (=) de manera que asigna un nombre, del lado izquierdo del operador, con un valor en el lado derecho.

Por ejemplo:

Los nombres de las variables:

  • deben comenzar con una letra
  • pueden contener los cualquier letra de la A a la Z, en mayúsculas o minúsculas,
  • pueden contener números del 0 al 9
  • pueden contener guiones (-) y guiones bajos(_)
  • son sensibles a maýsculas y minúsculas

Es recomendable, pero no necesario que los nombres de las variables estén relacionados con la información que contienen

Hay además 33 palabras clave en Python 3 que no pueden ser usados como nombres de variables, estas son:

Hemos visto que cada variable en Python tiene asociado un nombre y un valor. Además de esto, al asignar un valor a un variable éste automáticamente se guarda asociándolo a un tipo de objeto.

En Python existen distintos tipos de objeto, de los que iremos hablando en las próximas lecciones. Por lo pronto solo hablaremos de los tipos básicos:

  • numéricos, entre los que se encuentran los números enteros (int) y de punto flotante (float)
  • booleanos (bool)  que solo tiene dos instancias: verdadero (True) y falso (False)
  • cadenas de caracteres (str). Para crear un objeto de este tipo solo es necesario encerrar un conjunto de caracteres entre comillas simples o dobles.

02-Print_datos_ variables

RESPONDER CUESTIONARIO
¿Tiene alguna duda para el profesor?
Hacer pregunta sobre lección
Intro a Python: 2.1 Print, variables y tipos de datos
Muchas gracias, tu pregunta ha sido enviada al profesor. Se pondrá en contacto contigo a tu correo electrónico.
Algo sucedió mal, favor de intentar de nuevo, si sigue sin funcionar favor de solicitar soporte.
Intro a Python: 2.2 Operadores aritméticos

Operadores aritméticos

Python puede usarse para calcular operaciones aritméticas simples como una calculadora, por ejemplo:

03.Operadores_funciones

RESPONDER CUESTIONARIO
¿Tiene alguna duda para el profesor?
Hacer pregunta sobre lección
Intro a Python: 2.2 Operadores aritméticos
Muchas gracias, tu pregunta ha sido enviada al profesor. Se pondrá en contacto contigo a tu correo electrónico.
Algo sucedió mal, favor de intentar de nuevo, si sigue sin funcionar favor de solicitar soporte.
Intro a Python: 2.3 Funciones integradas

Las funciones, en cualquier lenguaje de programación, se utilizan para transformar datos de entrada en resultados específicos. En su interior contienen tareas o procedimientos que pueden ser reutilizadas con facilidad. Más adelante, aprenderemos a construir funciones personalizadas, pero por ahora centraremos la atención en las funciones que Python ofrece para ser utilizadas en cualquier momento sin necesidad de importarlas desde un módulo o biblioteca externa  (como lo hicimos con las funciones del módulo math para obtener una raiz cuadrada  utilizando la función sqrt).

Hasta ahora hemos ya usado las funciones:  

print()

type()

round()

Hemos visto también el uso de las siguientes funciones para asignar/transformar tipos de variables:

  • bool()
  • float()
  • int()
  • str()

De manera paralela, en la siguiente sección, veremos como  las listas, tuplas, conjuntos y diccionarios, tienen asociadas list(), tuple(), set() y dict(), respectivamente.

En los próximos vídeos verás que range(), len() tienen también un uso común en Python. Para conocer la lista completa y la documentación de cada una de las funciones integradas de Python puedes consultar este enlace.

RESPONDER CUESTIONARIO
¿Tiene alguna duda para el profesor?
Hacer pregunta sobre lección
Intro a Python: 2.3 Funciones integradas
Muchas gracias, tu pregunta ha sido enviada al profesor. Se pondrá en contacto contigo a tu correo electrónico.
Algo sucedió mal, favor de intentar de nuevo, si sigue sin funcionar favor de solicitar soporte.
Intro a Python: 2.4 Imports

En Python, los imports se utilizan para traer módulos y funciones externas al programa. Esto permite reutilizar código y acceder a bibliotecas estándar o de terceros sin necesidad de escribir todo desde cero.

Importar un módulo completo

Para importar un módulo completo, usamos la palabra clave import:

Para conocer un poco de las funciones que el módulo contiene, se puede utilizar la función de help.

Importar una función específica

También podemos importar solo una función específica de un módulo usando from ... import ...:

Importar con un alias

Si queremos usar un nombre más corto, podemos asignarle un alias con as:

Finalmente, si el módulo que necesitamos no se encuentra en nuestro ambiente de Python, se puede instalar desde la terminal utilizando el comando de pip install:

04.Imports

RESPONDER CUESTIONARIO
¿Tiene alguna duda para el profesor?
Hacer pregunta sobre lección
Intro a Python: 2.4 Imports
Muchas gracias, tu pregunta ha sido enviada al profesor. Se pondrá en contacto contigo a tu correo electrónico.
Algo sucedió mal, favor de intentar de nuevo, si sigue sin funcionar favor de solicitar soporte.

Semana

3

Lección III

Intro a Python: 3.1 Operadores

En esta lección introduciremos formalmente las funciones integradas de Python que junto con los distintos tipos de datos, forman el “centro” de este popular lenguaje de programación.

Más allá de los operadores aritméticos (vistos anteriormente) en esta sección estudiaremos :

  1. los operadores de comparación;
  2. los operadores lógicos;
  3. los operadores de asignación, y
  4. los operadores de pertenencia

Operaciones de comparación

Como su nombre lo indica, estos operadores se utilizan para hacer la comparación entre dos valores u objetos y obtener un solo valor booleano

Operadores lógicos

Los operadores lógicos a los que también se les conoce como operadores binarios o booleanos, son aquellos que devuelven un valor booleano (verdadero o falso) como resultado.

Tanto el operador and  como el operador or siempre toma dos valores o expresiones booleanas para hacer la operación.

El operador and regresará True si ambas expresiones son verdaderas, de otra manera regresara False. En cambio, el operador or regresara True si cualquiera de las dos expresiones, o ambas son verdaderas, y solamente regresará False si ambas son falsas.

A diferencia de los operadores and y or, el operador not solamente opera con un solo valor booleano y regresa el contrario..

Uso combinado de operadores lógicos y de comparación

Los operadores lógicos se pueden usar en combinación con los operadores de combinación, ya que éstos últimos devuelven un valor booleano como resultado.

La computadora procesará una línea de código como ésta, evaluando primero la expresión a la izquierda del operador and; enseguida hará lo mismo pero ahora con la expresión de la derecha. Una vez que conoce el valor booleano de cada expresión a los lados del operador, entonces realizará la operación lógica and, en este caso devolviendo True, toda vez que el resultado de las dos expresiones a la izquierda y a la derecha del operador, también lo son.

Operadores de asignación

En Python  existe un grupo de operadores de asignación aumentada, que se componen de uno de los operadores aritméticos (+ , – , * ,  / , // , %)  y el operador de asignación = , que permiten abreviar la sintaxis de una operación tal como :

 a = a + 2

a la expresión equivalente

a += 2

Observa que los resultados de los dos códigos, presentados en la figura de la derecha, son idénticos.

A continuación se presenta una descripción de cada uno de los operadores de asignación.

Para que ganes familiaridad con estos operadores, te recomendamos abrir un notebook en Colab y experimentar con cada uno de los operadores presentados.

Estos nos serán de gran utilidad cuando trabajemos con ciclos más adelante.

Operadores de pertenencia

Como su nombre lo indica, el objetivo de los operadores de pertenencia es probar si un valor o variable se encuentra contenido dentro de otro objeto, que bien puede ser una lista, una tupla, un conjunto, una cadena o un diccionario.

En el caso de los diccionarios, es importante considerar que el operador de pertenencia probará, si no especificamos otra cosa de forma explicita,  si un valor o variable es una de las claves del diccionario, tal como se puede deducir del siguiente ejemplo:

En contraste, si lo que deseamos es comprobar si un valor o variable aparece dentro de los valores de un diccionario, en vez de las claves, es necesario explicitarlo de la siguiente manera:

RESPONDER CUESTIONARIO
¿Tiene alguna duda para el profesor?
Hacer pregunta sobre lección
Intro a Python: 3.1 Operadores
Muchas gracias, tu pregunta ha sido enviada al profesor. Se pondrá en contacto contigo a tu correo electrónico.
Algo sucedió mal, favor de intentar de nuevo, si sigue sin funcionar favor de solicitar soporte.
Intro a Python: 3.2 Bloques de código y estructuras de control

Los bloques de código y estructuras de control usualmente comienzan con una condición que se debe cumplir para ejecutar ciertas acciones contenidas en bloques de códigos.

Las líneas de código de Python se pueden agrupar en bloques que se identifican según la sangría u identación que estas líneas tengan a la izquierda, de manera que podemos decir que un bloque comienza con la primera línea identada y termina en la última línea de código con igual identación. Además un bloque puede contener otro bloque de código.

En este tema estudiaremos dos tipos de estructuras de control:

  1. Las estructuras condicionales (if, elif, else)
  2. Las estructuras iterativas o ciclos while y ciclos for.

Estructuras condicionales

Este tipo de estructuras nos permiten verificar el cumplimiento de una o más condiciones para decidir qué acción o acciones vamos a ejecutar.

Para definir una estructura de control condicional en Python contamos con:

  1. La sentencia if, para ejecutar un bloque de código si y solo si se cumple una determinada condición. Las estructuras de control que utilizan la sentencia if contienen los siguientes elementos:

  • la palabra clave if
  • una condición, es decir, una expresión que regresa un valor True o False.
  • los puntos
  • Un bloque de código compuesto por una o más acciones.



2. La sentencia else que se utiliza en ocasiones en que la sentencia if simple, no es suficiente y se necesita ejecutar una o varias acciones si la condición evaluada resulta falsa:

3. La sentencia elif, se añade a una estructura de control cuando una decisión depende de más de una condición:

Estructuras iterativas

A las estructuras de control iterativas también llamadas ciclos nos permiten ejecutar de forma repetida un mismo bloque de código mientras mientras una condición sea verdadera.

En Python tenemos dos estructuras básicas: los ciclos while y los ciclos for.

En esta sección estudiaremos las características de estos ciclos y aprenderemos el uso de tres palabras clave que Python reserva para dar flexibilidad a estas estructuras: brake, continue y pass.

Por último revisaremos ejemplos de ciclos que operan dentro de otros ciclos, es decir ciclos anidados.

En las estructuras iterativas  while  un bloque de código se ejecuta mientras una condición es verdadera. Así, en el ejemplo de la derecha podemos observar que mientras la variable a sea mayor o igual a 0 se va imprimir el valor de a.

En el siguiente video hablaremos con más detenimiento de los ciclos while

Los ciclos for por su parte son aquellos que nos permiten iterar sobre una secuencia que bien puede ser una lista, tupla, o cadena de caracteres.

En algunas tareas, algunas veces necesitamos que parar la ejecución de un ciclo for o while, cuando ocurren ciertas circunstancias. Para ello Python ha reservado la palabra brake.

En otros casos necesitamos que cuando ocurren ciertas circunstancias al ejecutar un ciclo, algunas partes del código no se ejecuten. En este caso podemos valernos de la palabra continue. Por otro lado, si queremos que en un ciclo no se ejecute acción alguna, entonces Python tiene reservada la palabra pass.

En el siguiente video veremos con más detalle el uso de ellas y además estudiaremos ejemplos de ciclos que dentro de ellos ejecutan otros ciclos. A estas estructuras se les conoce como ciclos anidados.

RESPONDER CUESTIONARIO
¿Tiene alguna duda para el profesor?
Hacer pregunta sobre lección
Intro a Python: 3.2 Bloques de código y estructuras de control
Muchas gracias, tu pregunta ha sido enviada al profesor. Se pondrá en contacto contigo a tu correo electrónico.
Algo sucedió mal, favor de intentar de nuevo, si sigue sin funcionar favor de solicitar soporte.
Intro a Python: 3.3 Compresión de listas y direccionario

Una vez que hemos revisado como funcionan las estructuras condicionales y los ciclos for y while, estamos listos para aprender como crear estructuras de datos por compresión.

En el siguiente video estudiaremos las listas  y los diccionarios por compresión.

RESPONDER CUESTIONARIO
¿Tiene alguna duda para el profesor?
Hacer pregunta sobre lección
Intro a Python: 3.3 Compresión de listas y direccionario
Muchas gracias, tu pregunta ha sido enviada al profesor. Se pondrá en contacto contigo a tu correo electrónico.
Algo sucedió mal, favor de intentar de nuevo, si sigue sin funcionar favor de solicitar soporte.
Intro a Python: 3.4 Operadores, bloques de código y estructuras de control

Hasta ahora nos hemos familiarizado con los principales tipos de variables y estructuras de Python, también hemos aprendido a realizar acciones sencillas como las de una calculadora o asociadas a las funciones nativas de Python.

Intuimos además que los programas o algoritmos no consiste solamente en ejecutar una instrucción tras otra como si solamente se tratara de una lista de pasos o tareas. Incluso en las tareas más sencillas de la vida cotidiana, nuestro actuar está definido por reglas:

De esta forma, conforme aumente  la complejidad de las tareas que queremos programar,  será importante hacer evaluaciones de ciertas condiciones incluir reglas para ejecutar o no ciertas acciones .

En está lección introduciremos otros tipos de operadores, más allá de los matemáticos que nos serán útiles para estudiar enseguida cómo utilizar bloques de código y estructuras de control al programar con Python.

RESPONDER CUESTIONARIO
¿Tiene alguna duda para el profesor?
Hacer pregunta sobre lección
Intro a Python: 3.4 Operadores, bloques de código y estructuras de control
Muchas gracias, tu pregunta ha sido enviada al profesor. Se pondrá en contacto contigo a tu correo electrónico.
Algo sucedió mal, favor de intentar de nuevo, si sigue sin funcionar favor de solicitar soporte.

Semana

Ejercicios III

Intro a Python: 3.1 Ejercicio

Solicita dos números enteros (recuerda usar la función de input).

Utiliza operadores de comparación para verificar si los números son iguales y muestra el resultado.

Usa operadores lógicos para verificar si ambos números son positivos.

Aplica operadores de asignación para modificar los valores de los números y muestra los resultados.

Crea una lista con los números del 1 al 5 y usa operadores de pertenencia para ver si los números ingresados están en la lista.

RESPONDER CUESTIONARIO
¿Tiene alguna duda para el profesor?
Hacer pregunta sobre lección
Intro a Python: 3.1 Ejercicio
Muchas gracias, tu pregunta ha sido enviada al profesor. Se pondrá en contacto contigo a tu correo electrónico.
Algo sucedió mal, favor de intentar de nuevo, si sigue sin funcionar favor de solicitar soporte.
Intro a Python: 3.2 Ejercicio

Solicita un número entero  (recuerda usar la función de input).

Si el número es positivo, imprima los números del 1 hasta ese número usando un ciclo for.

Si el número es negativo, cuenta regresivamente hasta 0 usando un ciclo while.

Si el número es 0, simplemente imprima "Ingresaste el número cero".

RESPONDER CUESTIONARIO
¿Tiene alguna duda para el profesor?
Hacer pregunta sobre lección
Intro a Python: 3.2 Ejercicio
Muchas gracias, tu pregunta ha sido enviada al profesor. Se pondrá en contacto contigo a tu correo electrónico.
Algo sucedió mal, favor de intentar de nuevo, si sigue sin funcionar favor de solicitar soporte.
Intro a Python: 3.3 Ejercicio

Crea una lista de los números del 1 al 10 y multiplicalos por 2 usando comprensión de listas.

A partir de una lista de palabras, crea una nueva lista que solo contenga las palabras con más de 4 letras.

Crea un diccionario que asocie números del 1 al 5 con sus respectivos valores al cuadrado, utilizando comprensión de diccionarios, ejemplo: {1:1, 2:4 …}

RESPONDER CUESTIONARIO
¿Tiene alguna duda para el profesor?
Hacer pregunta sobre lección
Intro a Python: 3.3 Ejercicio
Muchas gracias, tu pregunta ha sido enviada al profesor. Se pondrá en contacto contigo a tu correo electrónico.
Algo sucedió mal, favor de intentar de nuevo, si sigue sin funcionar favor de solicitar soporte.

Semana

4

Lección IV

Intro a Python: 4.1 Funciones definidas por el usuario

Para definir una función en Python es necesario:

  • utilizar la palabra clave def antes de poner el nombre que tendrá la función,
  • nombrar la función utilizando las mismas reglas aplicadas para nombrar variables
  • enseguida del nombre, agregar paréntesis ( ), y
  • añadir al final dos puntos :

Al igual que en los ciclos y en las estructuras condicionales, Python utiliza bloques identados en lugar de brackets, esto además de hacer el código más legible, es una condición necesaria para que la computadora entienda donde empieza y dónde termina el bloque de código que ejecuta la función.

Una función además puede o no tener cualquier cantidad de parámetros, pero también puede no tener parámetro alguno..

Es una buena práctica nombrar a las funciones con la acción que realiza así como incluir documentación sobre lo que la función hace, los parámetros que recibe y los valores que devuelve.

Opcionalmente una función de Python puede o no regresar uno o varios valores o estructuras de datos,  resultantes de las tareas ejecutadas. Para ello nos valdremos de la la palabra clave return.

RESPONDER CUESTIONARIO
¿Tiene alguna duda para el profesor?
Hacer pregunta sobre lección
Intro a Python: 4.1 Funciones definidas por el usuario
Muchas gracias, tu pregunta ha sido enviada al profesor. Se pondrá en contacto contigo a tu correo electrónico.
Algo sucedió mal, favor de intentar de nuevo, si sigue sin funcionar favor de solicitar soporte.
Intro a Python: 4.2 Funciones de orden superior y funciones recursivas

Una función que recibe como parámetro otra función se conoce como función de orden superior

Python permite que una función pueda llamarse a sí misma dentro de las instrucciones que ejecuta la propia función. A estas funciones se les llama funciones recursivas.

La recursividad se utiliza para dividir una tarea en tareas de menor tamaño para encontrar la solución de forma más simple.

Todas las funciones recursivas deben incluir un tope o momento para dejar de llamarse.

RESPONDER CUESTIONARIO
¿Tiene alguna duda para el profesor?
Hacer pregunta sobre lección
Intro a Python: 4.2 Funciones de orden superior y funciones recursivas
Muchas gracias, tu pregunta ha sido enviada al profesor. Se pondrá en contacto contigo a tu correo electrónico.
Algo sucedió mal, favor de intentar de nuevo, si sigue sin funcionar favor de solicitar soporte.
Intro a Python: 4.3 Funciones lambda

Las funciones lambda también son llamadas funciones anónimas. Son una herencia del lenguaje LISP, diseñado por Jhon McCarty  basándose a su vez en el cálculo lambda.

Para construir una función lambda se requiere: (1) escribir la palabra clave lambda; (2) especificar los argumentos de la función, separados por comas; (3) añadir dos puntos (:), y (4) escribir la acción a ejecutar.

Jhon McCarty, conocido como “el padre de la Inteligencia Artificial”, quien desarrolló en 1959 el lenguaje LISP.

Uso de funciones lambda dentro de las funciones map, filter y reduce.

Las funciones lambda suelen ser muy útiles dentro de otra función, ya sea en una definida por nosotros mismos, o bien, en una función de Python o de algún módulo o librería. Por ello la función lambda, con frecuencia se utiliza con tres famosas funciones de Python:

  • la función map(), que se utiliza para ejecutar una función sobre una lista y obtener otra lista donde cada uno de los elementos ha sido transformada por la función especificada.
  • la función filter(),que regresa una lista, después de aplicar una función, con aquellos elementos para los cuales la función es verdadera.
  • la función reduce(), que produce un solo valor a partir de aplicar una función a todos los elementos de una lista.

RESPONDER CUESTIONARIO
¿Tiene alguna duda para el profesor?
Hacer pregunta sobre lección
Intro a Python: 4.3 Funciones lambda
Muchas gracias, tu pregunta ha sido enviada al profesor. Se pondrá en contacto contigo a tu correo electrónico.
Algo sucedió mal, favor de intentar de nuevo, si sigue sin funcionar favor de solicitar soporte.
Intro a Python: 4.4 Manejo de errores y excepciones

Es momento de hablar de forma más detallada de los errores que ocurren al correr ciertas líneas o bloques de código

Esta sección está dividida en tres partes:

  1. Errores y excepciones.
  2. Personalización de excepciones usando raise y assert.
  3. Manejo de errores con tryexcept
Imagen GeeksforGeeks

Errores y excepciones

En videos anteriores, han aparecido al menos un par de ocasiones algunos errores.  En general, existen en Python dos tipos de errores:

  • los errores son ocasionados por problemas que hacen que se detenga la ejecución. Hay errores de distintos tipos. Los más comunes son errores de sintaxis y los de identación, que se originan cuando no se cumplen las reglas de escritura de los bloques de código y de la declaración de variables. Otros errores indican problemas críticos como los errores de recursión (cuando una función no deja de llamarse a sí misma) o los errores por haber excedido la memoria (errores de memoria insuficiente)
  • las excepciones, también son conocidas como errores de lógica. La diferencia es que éstos se pueden manejar para que una función o un bloque de código no se vea obligado a parar.

Antes de aprender a manejar los errores, vamos a revisar en el siguiente video algunos errores y excepciones para que cuando aparezcan en tu programa, puedas fácilmente corregirlos y prevenirlos tal como veremos más adelante.

Personalización de errores y excepciones (raise y assert)

La palabra reservada raise, se utiliza en Python para lanzar un error cuando se produce una condición determinada.

En el siguiente bloque de código, cuando la variable peso tome un valor mayor que cero, no ocurrirá nada.

En cambio si por error introducimos en la variable cero o un valor negativo, entonces obtendremos la excepción con el mensaje personalizado.

Además de raise, nos podemos valer de la palabra assert para evaluar que se cumpla cierta condición. Si la condición se cumple, entonces podemos continuar con el programa; de otra manera, si la condición no se cumple, entonces obtendremos la excepción con un mensaje personalizado por ejemplo, “la variable x debe ser un entero”

Manejo de excepciones con try- except

Ha llegado el momento de aprender a gestionar las excepciones usando las palabras reservadas try y except.

La sintaxis básica es la siguiente:

Lo primero que se ejecuta es la sentencia try para intentar ejecutar el código que le sigue, en caso de que una excepción ocurra el código ligado a try será ignorado y en su lugar se ejecutará el código unido a la sentencia except.

RESPONDER CUESTIONARIO
¿Tiene alguna duda para el profesor?
Hacer pregunta sobre lección
Intro a Python: 4.4 Manejo de errores y excepciones
Muchas gracias, tu pregunta ha sido enviada al profesor. Se pondrá en contacto contigo a tu correo electrónico.
Algo sucedió mal, favor de intentar de nuevo, si sigue sin funcionar favor de solicitar soporte.
Intro a Python: 4.5 Funciones y manejo de errores

En esta lección, estudiaremos dos herramientas muy importantes:

1. la construcción y el uso de funciones

2. El manejo de errores y excepciones

Vimos anteriormente, que las funciones, en cualquier lenguaje de programación, se utilizan para transformar datos de entrada en resultados específicos y que en su interior contienen tareas o procedimientos que pueden ser reusadas con facilidad.

Las instrucciones en una función, para transformar los datos en las salidas que necesitamos, son bloques lógicos de código que utilizan de distinta manera las diferentes estructuras de datos, operadores, ciclos y controles que hemos visto hasta ahora.

Las funciones no son más que tareas que el usuario quiere ejecutar en varias ocasiones y que se “empacan” dentro de una función para realizar la función con tan solo llamarlas.

Una vez que estemos más familiarizados con la construcción de funciones será momento de hablar con más detenimiento de los errores en Python.

El conocimiento de los errores y como manejarlos es muy importante para ganar confianza como programadores de Python, así que ¡Vamos adelante!

Python

RESPONDER CUESTIONARIO
¿Tiene alguna duda para el profesor?
Hacer pregunta sobre lección
Intro a Python: 4.5 Funciones y manejo de errores
Muchas gracias, tu pregunta ha sido enviada al profesor. Se pondrá en contacto contigo a tu correo electrónico.
Algo sucedió mal, favor de intentar de nuevo, si sigue sin funcionar favor de solicitar soporte.

Semana

Ejercicios IV

Intro a Python: 4.1 Ejercicio

Define una función llamada saludar() que imprima un mensaje de bienvenida.

Define una función llamada muplicar_por_dos(num) que reciba un número y retorne su valor multiplicado por 2.

Define una función llamada es_par(num) que reciba un número y retorne True si es par, o False si es impar.

RESPONDER CUESTIONARIO
¿Tiene alguna duda para el profesor?
Hacer pregunta sobre lección
Intro a Python: 4.1 Ejercicio
Muchas gracias, tu pregunta ha sido enviada al profesor. Se pondrá en contacto contigo a tu correo electrónico.
Algo sucedió mal, favor de intentar de nuevo, si sigue sin funcionar favor de solicitar soporte.
Intro a Python: 4.2 Ejercicio

Función de Orden Superior:

Define una función que reciba dos números y una función como parámetro.

La función debe aplicar la operación dada a los números y devolver el resultado.

Prueba con funciones de suma y multiplicación.

Función Recursiva (Fibonacci):

Define una función fibonacci(n) que devuelva el n-ésimo número de la secuencia de Fibonacci.

Usa recursión asegurándote de incluir un caso base.

RESPONDER CUESTIONARIO
¿Tiene alguna duda para el profesor?
Hacer pregunta sobre lección
Intro a Python: 4.2 Ejercicio
Muchas gracias, tu pregunta ha sido enviada al profesor. Se pondrá en contacto contigo a tu correo electrónico.
Algo sucedió mal, favor de intentar de nuevo, si sigue sin funcionar favor de solicitar soporte.
Intro a Python: 4.3 Ejercicio

Usando map() con lambda

Dada una lista de números, usa map() y una función lambda para obtener una nueva lista con cada número elevado al cuadrado.

Usando filter() con lambda

Dada la misma lista, usa filter() y una función lambda para obtener solo los números pares.

Usando reduce() con lambda

Usa reduce() y una función lambda para obtener la suma de todos los números en la lista.

RESPONDER CUESTIONARIO
¿Tiene alguna duda para el profesor?
Hacer pregunta sobre lección
Intro a Python: 4.3 Ejercicio
Muchas gracias, tu pregunta ha sido enviada al profesor. Se pondrá en contacto contigo a tu correo electrónico.
Algo sucedió mal, favor de intentar de nuevo, si sigue sin funcionar favor de solicitar soporte.
Intro a Python: 4.4 Ejercicio

Usando raise:

Crea una función llamada verificar_edad(edad) que lance una excepción si la edad es menor a 0 o mayor a 150. Personaliza el mensaje de la excepción.

Usando assert:

Crea una función llamada verificar_entero(numero) que asegure que el número proporcionado sea un entero positivo. Si no lo es, lanza una excepción con un mensaje claro.

Usando try-except:

Crea una función llamada dividir(a, b) que intente dividir dos números. Si el segundo número es cero, captura la excepción y muestra un mensaje que indique que no se puede dividir por cero.

RESPONDER CUESTIONARIO
¿Tiene alguna duda para el profesor?
Hacer pregunta sobre lección
Intro a Python: 4.4 Ejercicio
Muchas gracias, tu pregunta ha sido enviada al profesor. Se pondrá en contacto contigo a tu correo electrónico.
Algo sucedió mal, favor de intentar de nuevo, si sigue sin funcionar favor de solicitar soporte.

Semana

BONUS

Bonus: Python en Local

En el siguiente vídeo veremos cómo instalar Python en tu ambiente local:

RESPONDER CUESTIONARIO
¿Tiene alguna duda para el profesor?
Hacer pregunta sobre lección
Bonus: Python en Local
Muchas gracias, tu pregunta ha sido enviada al profesor. Se pondrá en contacto contigo a tu correo electrónico.
Algo sucedió mal, favor de intentar de nuevo, si sigue sin funcionar favor de solicitar soporte.
EDL2601 - 19 Feb, 2026
EDL2601 - 18 Feb, 2026
EDL2601 - 17 Feb, 2026
EDL2601 - 16 Feb, 2026
M&DL2501 - 12 Feb, 2026
M&DL2501 - 10 Feb, 2026
M&DL2501 - 05 Feb, 2026
M&DL2501 - 03 Feb, 2026
M&DL2501 - 27 Ene, 2026
M&DL2501 - 26 Ene, 2026
M&DL2501 - 22 Ene, 2026
M&DL2501 - 20 Ene, 2026
M&DL2501 - 19 Ene, 2026
NLP2601 - 15 Ene, 2026 (Parte II)
M&DL2501 - 13 Ene, 2026
M&DL2501 - 12 Ene, 2026
M&DL2501 - 08 Ene, 2026
M&DL2501 - 06 Ene, 2026
M&DL2501 - 06 Ene, 2026
M&DL2501 - 18 Dic, 2025
M&DL2501 - 16 Dic, 2025
M&DL2501 - 15 Dic, 2025
M&DL2501 - 09 Dic, 2025
M&DL2501 - 11 Dic, 2025
M&DL2501 - 08 Dic, 2025

Acceso restringido

Por favor de comunicarte con nuestro soporte si este es un error.