CursosEmpresasBlogLiveConfPrecios

Funciones como objetos

Clase 20 de 31 • Curso de Introducción al Pensamiento Computacional con Python

Contenido del curso

Introducción al pensamiento computacional

  • 1
    Introducción al pensamiento computacional

    Introducción al pensamiento computacional

    02:26 min
  • 2
    Introducción al cómputo

    Introducción al cómputo

    15:39 min
  • 3
    Introducción a los lenguajes de programación

    Introducción a los lenguajes de programación

    09:25 min

Introducción a Python

  • 4
    Preparación de tu computadora

    Preparación de tu computadora

    01:16 min
  • 5
    Elementos básicos de Python

    Elementos básicos de Python

    10:38 min
  • 6
    Asignación de variables

    Asignación de variables

    06:06 min
  • 7
    Cadenas y entradas

    Cadenas y entradas

    14:12 min
  • 8
    Programas ramificados

    Programas ramificados

    11:36 min
  • 9
    Iteraciones

    Iteraciones

    09:11 min
  • 10
    Bucles for

    Bucles for

    03:48 min

Programas numéricos

  • 11
    Representación de flotantes

    Representación de flotantes

    03:45 min
  • 12
    Enumeración exhaustiva

    Enumeración exhaustiva

    07:20 min
  • 13
    Aproximación de soluciones

    Aproximación de soluciones

    12:45 min
  • 14
    Búsqueda Binaria

    Búsqueda Binaria

    10:34 min

Funciones, alcance y abstracción

  • 15
    Funciones y abstracción

    Funciones y abstracción

    09:12 min
  • 16
    Scope o Alcance

    Scope o Alcance

    10:00 min
  • 17
    Especificaciones del código

    Especificaciones del código

    05:26 min
  • 18
    Recursividad

    Recursividad

    11:06 min
  • 19
    Fibonnacci y la Recursividad

    Fibonnacci y la Recursividad

    01:10 min

Tipos estructurados, mutabilidad y funciones de alto nivel

  • 20
    Funciones como objetos

    Funciones como objetos

    Viendo ahora
  • 21
    Tuplas

    Tuplas

    08:09 min
  • 22
    Rangos

    Rangos

    07:35 min
  • 23
    Listas y mutabilidad

    Listas y mutabilidad

    14:00 min
  • 24
    Diccionarios

    Diccionarios

    06:56 min

Pruebas y debugging

  • 25
    Pruebas de caja negra

    Pruebas de caja negra

    11:50 min
  • 26
    Pruebas de caja de cristal

    Pruebas de caja de cristal

    07:45 min
  • 27
    Debugging

    Debugging

    09:56 min

Excepciones y afirmaciones

  • 28
    Manejo de excepciones

    Manejo de excepciones

    07:05 min
  • 29
    Excepciones y control de flujo

    Excepciones y control de flujo

    01:26 min
  • 30
    Afirmaciones

    Afirmaciones

    04:36 min
  • 31
    Conclusiones

    Conclusiones

    02:33 min
Tomar examen

Escuelas

  • Desarrollo Web
    • Fundamentos del Desarrollo Web Profesional
    • Diseño y Desarrollo Frontend
    • Desarrollo Frontend con JavaScript
    • Desarrollo Frontend con Vue.js
    • Desarrollo Frontend con Angular
    • Desarrollo Frontend con React.js
    • Desarrollo Backend con Node.js
    • Desarrollo Backend con Python
    • Desarrollo Backend con Java
    • Desarrollo Backend con PHP
    • Desarrollo Backend con Ruby
    • Bases de Datos para Web
    • Seguridad Web & API
    • Testing Automatizado y QA para Web
    • Arquitecturas Web Modernas y Escalabilidad
    • DevOps y Cloud para Desarrolladores Web
  • English Academy
    • Inglés Básico A1
    • Inglés Básico A2
    • Inglés Intermedio B1
    • Inglés Intermedio Alto B2
    • Inglés Avanzado C1
    • Inglés para Propósitos Específicos
    • Inglés de Negocios
  • Marketing Digital
    • Fundamentos de Marketing Digital
    • Marketing de Contenidos y Redacción Persuasiva
    • SEO y Posicionamiento Web
    • Social Media Marketing y Community Management
    • Publicidad Digital y Paid Media
    • Analítica Digital y Optimización (CRO)
    • Estrategia de Marketing y Growth
    • Marketing de Marca y Comunicación Estratégica
    • Marketing para E-commerce
    • Marketing B2B
    • Inteligencia Artificial Aplicada al Marketing
    • Automatización del Marketing
    • Marca Personal y Marketing Freelance
    • Ventas y Experiencia del Cliente
    • Creación de Contenido para Redes Sociales
  • Inteligencia Artificial y Data Science
    • Fundamentos de Data Science y AI
    • Análisis y Visualización de Datos
    • Machine Learning y Deep Learning
    • Data Engineer
    • Inteligencia Artificial para la Productividad
    • Desarrollo de Aplicaciones con IA
    • AI Software Engineer
  • Ciberseguridad
    • Fundamentos de Ciberseguridad
    • Hacking Ético y Pentesting (Red Team)
    • Análisis de Malware e Ingeniería Forense
    • Seguridad Defensiva y Cumplimiento (Blue Team)
    • Ciberseguridad Estratégica
  • Liderazgo y Habilidades Blandas
    • Fundamentos de Habilidades Profesionales
    • Liderazgo y Gestión de Equipos
    • Comunicación Avanzada y Oratoria
    • Negociación y Resolución de Conflictos
    • Inteligencia Emocional y Autogestión
    • Productividad y Herramientas Digitales
    • Gestión de Proyectos y Metodologías Ágiles
    • Desarrollo de Carrera y Marca Personal
    • Diversidad, Inclusión y Entorno Laboral Saludable
    • Filosofía y Estrategia para Líderes
  • Diseño de Producto y UX
    • Fundamentos de Diseño UX/UI
    • Investigación de Usuarios (UX Research)
    • Arquitectura de Información y Usabilidad
    • Diseño de Interfaces y Prototipado (UI Design)
    • Sistemas de Diseño y DesignOps
    • Redacción UX (UX Writing)
    • Creatividad e Innovación en Diseño
    • Diseño Accesible e Inclusivo
    • Diseño Asistido por Inteligencia Artificial
    • Gestión de Producto y Liderazgo en Diseño
    • Diseño de Interacciones Emergentes (VUI/VR)
    • Desarrollo Web para Diseñadores
    • Diseño y Prototipado No-Code
  • Contenido Audiovisual
    • Fundamentos de Producción Audiovisual
    • Producción de Video para Plataformas Digitales
    • Producción de Audio y Podcast
    • Fotografía y Diseño Gráfico para Contenido Digital
    • Motion Graphics y Animación
    • Contenido Interactivo y Realidad Aumentada
    • Estrategia, Marketing y Monetización de Contenidos
  • Desarrollo Móvil
    • Fundamentos de Desarrollo Móvil
    • Desarrollo Nativo Android con Kotlin
    • Desarrollo Nativo iOS con Swift
    • Desarrollo Multiplataforma con React Native
    • Desarrollo Multiplataforma con Flutter
    • Arquitectura y Patrones de Diseño Móvil
    • Integración de APIs y Persistencia Móvil
    • Testing y Despliegue en Móvil
    • Diseño UX/UI para Móviles
  • Diseño Gráfico y Arte Digital
    • Fundamentos del Diseño Gráfico y Digital
    • Diseño de Identidad Visual y Branding
    • Ilustración Digital y Arte Conceptual
    • Diseño Editorial y de Empaques
    • Motion Graphics y Animación 3D
    • Diseño Gráfico Asistido por Inteligencia Artificial
    • Creatividad e Innovación en Diseño
  • Programación
    • Fundamentos de Programación e Ingeniería de Software
    • Herramientas de IA para el trabajo
    • Matemáticas para Programación
    • Programación con Python
    • Programación con JavaScript
    • Programación con TypeScript
    • Programación Orientada a Objetos con Java
    • Desarrollo con C# y .NET
    • Programación con PHP
    • Programación con Go y Rust
    • Programación Móvil con Swift y Kotlin
    • Programación con C y C++
    • Administración Básica de Servidores Linux
  • Negocios
    • Fundamentos de Negocios y Emprendimiento
    • Estrategia y Crecimiento Empresarial
    • Finanzas Personales y Corporativas
    • Inversión en Mercados Financieros
    • Ventas, CRM y Experiencia del Cliente
    • Operaciones, Logística y E-commerce
    • Gestión de Proyectos y Metodologías Ágiles
    • Aspectos Legales y Cumplimiento
    • Habilidades Directivas y Crecimiento Profesional
    • Diversidad e Inclusión en el Entorno Laboral
    • Herramientas Digitales y Automatización para Negocios
  • Blockchain y Web3
    • Fundamentos de Blockchain y Web3
    • Desarrollo de Smart Contracts y dApps
    • Finanzas Descentralizadas (DeFi)
    • NFTs y Economía de Creadores
    • Seguridad Blockchain
    • Ecosistemas Blockchain Alternativos (No-EVM)
    • Producto, Marketing y Legal en Web3
  • Recursos Humanos
    • Fundamentos y Cultura Organizacional en RRHH
    • Atracción y Selección de Talento
    • Cultura y Employee Experience
    • Gestión y Desarrollo de Talento
    • Desarrollo y Evaluación de Liderazgo
    • Diversidad, Equidad e Inclusión
    • AI y Automatización en Recursos Humanos
    • Tecnología y Automatización en RRHH
  • Finanzas e Inversiones
    • Fundamentos de Finanzas Personales y Corporativas
    • Análisis y Valoración Financiera
    • Inversión y Mercados de Capitales
    • Finanzas Descentralizadas (DeFi) y Criptoactivos
    • Finanzas y Estrategia para Startups
    • Inteligencia Artificial Aplicada a Finanzas
    • Domina Excel
    • Financial Analyst
    • Conseguir trabajo en Finanzas e Inversiones
  • Startups
    • Fundamentos y Validación de Ideas
    • Estrategia de Negocio y Product-Market Fit
    • Desarrollo de Producto y Operaciones Lean
    • Finanzas, Legal y Fundraising
    • Marketing, Ventas y Growth para Startups
    • Cultura, Talento y Liderazgo
    • Finanzas y Operaciones en Ecommerce
    • Startups Web3 y Blockchain
    • Startups con Impacto Social
    • Expansión y Ecosistema Startup
  • Cloud Computing y DevOps
    • Fundamentos de Cloud y DevOps
    • Administración de Servidores Linux
    • Contenerización y Orquestación
    • Infraestructura como Código (IaC) y CI/CD
    • Amazon Web Services
    • Microsoft Azure
    • Serverless y Observabilidad
    • Certificaciones Cloud (Preparación)
    • Plataforma Cloud GCP

Platzi y comunidad

  • Platzi Business
  • Live Classes
  • Lanzamientos
  • Executive Program
  • Trabaja con nosotros
  • Podcast

Recursos

  • Manual de Marca

Soporte

  • Preguntas Frecuentes
  • Contáctanos

Legal

  • Términos y Condiciones
  • Privacidad
  • Tyc promociones
Reconocimientos
Reconocimientos
Logo reconocimientoTop 40 Mejores EdTech del mundo · 2024
Logo reconocimientoPrimera Startup Latina admitida en YC · 2014
Logo reconocimientoPrimera Startup EdTech · 2018
Logo reconocimientoCEO Ganador Medalla por la Educación T4 & HP · 2024
Logo reconocimientoCEO Mejor Emprendedor del año · 2024
De LATAM conpara el mundo
YoutubeInstagramLinkedInTikTokFacebookX (Twitter)Threads

      Una de las características más poderosas de Python es que todo es un objeto, incluyendo las funciones. Las funciones en Python son "ciudadanos de primera clase".

      Esto, en sentido amplio, significa que en Python las funciones:

      • Tienen un tipo
      • Se pueden pasar como argumentos de otras funciones
      • Se pueden utilizar en expresiones
      • Se pueden incluir en varias estructuras de datos (como listas, tuplas, diccionarios, etc.)

      Argumentos de otras funciones

      Hasta ahora hemos visto que las funciones pueden recibir parámetros para realizar los cómputos que definen. Algunos de los tipos que hemos pasado son tipos simples como cadenas, números, listas, etc. Sin embargo, también pueden recibir funciones para crear abstracciones más poderosas. Veamos un ejemplo:

      def multiplicar_por_dos(n): return n * 2 def sumar_dos(n): return n + 2 def aplicar_operacion(f, numeros): resultados = [] for numero in numeros: resultado = f(numero) resultados.append(resultado) return resultados nums = [1, 2, 3] aplicar_operacion(multiplicar_por_dos, nums) [2, 4, 6] aplicar_operacion(sumar_dos, nums) [3, 4, 5]

      Funciones en expresiones

      Una forma de definir una función en una expresión es utilizando el keyword lambda. lambda tiene la siguiente sintaxis: lambda <vars>: <expresion>.

      Otro ejemplo interesante es que las funciones se pueden utilizar en una expresión directamente. Esto es posible ya que como lo hemos platicado con anterioridad, en Python las variables son simplemente nombres que apuntan a un objeto (en este caso a una función). Por ejemplo:

      sumar = lambda x, y: x + y sumar(2, 3) 5

      Funciones en estructuras de datos

      Las funciones también se pueden incluir en diversas estructuras que las permiten almacenar. Por ejemplo, una lista puede guardar diversas funciones a aplicar o un diccionario las puede almacenar como valores.

      def aplicar_operaciones(num): operaciones = [abs, float] resultado = [] for operacion in operaciones: resultado.append(operacion(num)) return resultado aplicar_operaciones(-2) [2, -2.0]

      Como pudimos ver, las funciones son objetos muy versátiles que nos permiten tratarlas de diversas maneras y que nos permiten añadir capas adicionales de abstracción a nuestro programa. Compártenos cómo te imaginas que estas capacidades de Python te pueden ayudar a escribir mejores programas.

      Comentarios

      Sara Yaneth Contreras Elías

      Sara Yaneth Contreras Elías

      student•
      hace 6 años
        franklin andres rodriguez gonzalez

        franklin andres rodriguez gonzalez

        student•
        hace 5 años
      Brayan Segovia

      Brayan Segovia

      student•
      hace 6 años
        Carlos Fernando Aguilar González

        Carlos Fernando Aguilar González

        student•
        hace 5 años
        Moisés Manuel Morín Hevia

        Moisés Manuel Morín Hevia

        student•
        hace 5 años
      María José Medina

      María José Medina

      student•
      hace 6 años
        DIEGO ALEXANDER CASTELLANOS SANTAMARIA

        DIEGO ALEXANDER CASTELLANOS SANTAMARIA

        student•
        hace 6 años
        Miguel Andres Rendon Reyes

        Miguel Andres Rendon Reyes

        student•
        hace 5 años
      Marco Antonio Candia Ortega

      Marco Antonio Candia Ortega

      student•
      hace 5 años
        Axel Jiménez

        Axel Jiménez

        student•
        hace 5 años
        Neftali García González

        Neftali García González

        student•
        hace 5 años
      Alejandro Guerrero

      Alejandro Guerrero

      student•
      hace 5 años
      Carlos Eduardo Gomez García

      Carlos Eduardo Gomez García

      teacher•
      hace 5 años
      Luis Hernando Sarmiento Garzón

      Luis Hernando Sarmiento Garzón

      student•
      hace 6 años
        Juan Diego

        Juan Diego

        student•
        hace 7 meses
      Wilder Bravo

      Wilder Bravo

      student•
      hace 5 años
      Juan Fernando Moyano Ramírez

      Juan Fernando Moyano Ramírez

      student•
      hace 5 años
        Clayton Jhordan Iliquin Zavaleta

        Clayton Jhordan Iliquin Zavaleta

        student•
        hace 5 años
      Andres Alvarez Becerra

      Andres Alvarez Becerra

      student•
      hace 6 años
        Andres Alvarez Becerra

        Andres Alvarez Becerra

        student•
        hace 6 años
        Juan Pablo Cortés Mora

        Juan Pablo Cortés Mora

        student•
        hace 6 años
      Fabrizio Fasanando Sotelo

      Fabrizio Fasanando Sotelo

      student•
      hace 6 años
        Miguel Andres Rendon Reyes

        Miguel Andres Rendon Reyes

        student•
        hace 5 años
      Sebastian Cifuentes

      Sebastian Cifuentes

      student•
      hace 6 años
        Fernando Jesús Núñez Valdez

        Fernando Jesús Núñez Valdez

        student•
        hace 6 años
        Jaime Escobedo Vargas

        Jaime Escobedo Vargas

        student•
        hace 6 años
      Jordi Sort

      Jordi Sort

      student•
      hace 6 años
        Emmanuel Guerra Sánchez

        Emmanuel Guerra Sánchez

        student•
        hace 6 años
      Jaime Eduardo González Meléndez

      Jaime Eduardo González Meléndez

      student•
      hace 6 años
        Alex Jesús Huamanvilca Ichocán

        Alex Jesús Huamanvilca Ichocán

        student•
        hace 6 años
      William Wilfredo Moran Torres

      William Wilfredo Moran Torres

      student•
      hace 6 años
        Enzo Venturi

        Enzo Venturi

        student•
        hace 5 años
      Eber Laurente Lliuyacc

      Eber Laurente Lliuyacc

      student•
      hace 6 años
        Steve Calderón Sánchez

        Steve Calderón Sánchez

        student•
        hace 6 años
        Ricardo F.

        Ricardo F.

        student•
        hace 6 años
      Marisol Catari Choquehuanca

      Marisol Catari Choquehuanca

      student•
      hace 5 años
      ENRIQUE NIETO MARTINEZ

      ENRIQUE NIETO MARTINEZ

      student•
      hace 6 años
      Josue Granados

      Josue Granados

      student•
      hace 5 años
      Manuel Espitia

      Manuel Espitia

      student•
      hace 5 años
        Julian Malarino

        Julian Malarino

        student•
        hace 5 años
        Manuel Espitia

        Manuel Espitia

        student•
        hace 5 años

      ++¿Cómo definir una función en Python?++

      muchas gracias sara por la info

      Encontré esta información acerca de la función lambda : ++Funciones lambda++ Si empiezo diciendo que las funciones o expresiones lambda sirven para crear funciones anónimas, posiblemente me diréis ¿qué me estás contando?, así que vamos a tomarlo con calma, pues estamos ante unas de las funcionalidades más potentes de Python a la vez que más confusas para los principiantes.

      Una función anónima, como su nombre indica es una función sin nombre. ¿Es posible ejecutar una función sin referenciar un nombre? Pues sí, en Python podemos ejecutar una función sin definirla con def. De hecho son similares pero con una diferencia fundamental:

      El contenido de una función lambda debe ser una única expresión en lugar de un bloque de acciones.

      Y es que más allá del sentido de función que tenemos, con su nombre y sus acciones internas, una función en su sentido más trivial significa realizar algo sobre algo. Por tanto podríamos decir que, mientras las funciones anónimas lambda sirven para realizar funciones simples, las funciones definidas con def sirven para manejar tareas más extensas.

      Si deconstruimos una función sencilla, podemos llegar a una función lambda. Por ejemplo tomad la siguiente función para doblar un valor:

      En Dart también se usan las funciones anónimas

      Saludos

      Buen aporte

      Lo importante de las funciones lambda -que creo que faltó mencionar- es que ellas deben ser funciones que son ejecutadas en una línea de código, es decir, funciones rápidas, sencillas, cortas. La ventaja de su uso es que el código se ejecutaria más rápido, ya que no se definiria una funcion con def, que trae consigo más abstracción.

      bien explicado!

      Es por eso que las llaman funciones anónimas, debido que no están definidas con un nombre como tal.

      En el ejemplo de Argumento de otras funciones hizo falta establecer return, al menos a mi no me mostro nada si no se tenía, ¿alguien tuvo la misma situación?

      argumento de otras funciones.png

      No siempre las funciones tienen que regresar un valor distinto de null. Para mostrar la información se pudo haber colocado un print(resultados), en dado caso de que no quisieras que la función aplicar_operacion() regresara un valor distinto de null.

      Me paso lo mismo, muchas gracias por tu aporte. Pregunta, tu IDE es Jupyter?, en visual studio tuve que incluir dos líneas de print con las funciones para poder ver los resultados

      0-20-funciones_como_objetos.png

      Esto de leer los comentarios esta aumentando mi capacidad de aprendizaje!! Dios bendiga la comunidad Platzi

      Ohh las funciones lambda son como las arrow functions de JavaScript! Y lo de pasar como parámetro una función es como pasar un "callback" en JavaScript (o Closure en PHP), por comparar: . Python:

      sumar = lambda x, y: x + y print(sumar(2, 3))

      . JavaScript:

      const sumar = (x, y) => x + y console.log(sumar(2, 3))

      Lambda esta genial, calculo de factorial en una sola linea. 🤯

      factorial = lambda x : 1 if x == 1 else x * factorial(x - 1) print(factorial(7))

      🤯

      A continuación un ejemplo de funciones como parámetros a otras fuciones

      def suma(a,b): return a + b def resta(a,b): return a - b def multiplica(a,b): return a * b def divide(a,b): return a / b def operacion(v1, v2, funcion): return funcion(v1,v2) def error(): print("No ha seleccionado una operacion correcta") def inicio(): a = int(input("Escoge un entero: ")) b = int(input("Escoge otro entero: ")) tipo = int(input("Ingrese el tipo de operacion a utilizar \n 1. Suma \n 2. Resta \n 3. Multiplicacion \n 4. Division \n ==> ")) if tipo == 1: respuesta = operacion(a,b, suma) elif tipo == 2: respuesta = operacion(a,b, resta) elif tipo == 3: respuesta = operacion(a,b, multiplica) elif tipo == 4: respuesta = operacion(a,b, divide) else: error() print(f'La respuesta es {respuesta}') inicio()

      no se vosotros pero en este curso no me estoy enterando de nada

      Es entendible que te sientas confundido. Deberías llevar pimero el curso básico de python. Espero que así entiendas mejor :D

      Alguien me puede hacer el favor de explicar la línea que hay dentro del for? En especial la función "operacion(num)". No entiendo muy bien de donde sale.

      Gracias, pero no se cual es la función operación, no veo a ninguna definida con ese nombre

      Hola Andres

      Lo que sucede ahi es que

      Primero, en el for, la variable "operacion" tomarà el valor de cada uno de los valores en (in) operaciones

      Segundo, lo que hay dentro de operaciones son funciones

      Abs() y Float(), ambas reciben un parametro, el cual va a ser el numero num que entra en la funcion como tal

      Abs() recibe un parametro y devuelve el absoluto, como podras notar, al entrar -2, te regresa un 2

      y float, e devuelve el punto flotante, que seria -2.0

      Gracias a que en Python las funciones son tan versátiles se pueden crear programas realmente modulares permitiendo reutilizar una gran cantidad de código de manera sencilla.

      Tal vez por esa peculiaridad, lo hace terreno fértil para el maching learning

      Pregunta, ¿para que sirve el .append?

      Para agregar datos a un array.

      Que en el caso de Python se le llama Lista

      Si he entendido bien, las funciones en expresiones ¿seria como crear una función de forma rápida? O sea, esto:

      sumar = lambda x,y: x + y

      ¿seria lo mismo que esto?

      def sumar2(x,y): return x+y

      Es correcto.

      Las funciones como expresión son también conocidas como funciones anónimas y son muy utlizadas en lenguajes de scripting y funcionales como Python y JavaScript.

      Su uso mas frecuente es aplicar transformaciones a elementos dentro de una lista.

      En este ejercicio se provee una lista de números separados por comas que es guardada como string, después se convierte el string en una lista de enteros. Por último las funciones para duplicar y sumar 2 unidades se ponen dentro de una estructura de lista y se aplican a cada número de la lista proveída por el usuario:

      funciones como argumentos y lista con cambio de tipo y lista de funciones.JPG

      Interesante gracias por compartir!

      lambda es como las arrow function de javascript?????

      Encontré el aporte de un compañero, espero te ayude.

      Captura de pantalla de 2021-08-04 19-31-21.png

      Amigos, ¿A qué se refiere el profesor cuando dice que en Python las funciones tiene un tipo?

      Captura.PNG

      Tal vez haga referencia a las funciones que creamos nosotros y las que ya están predefinidas por el lenguaje.

      En las primeras clases se hacía referencia al hecho que las variables tienen un "tipo". Es decir, se relacionan de una manera específica con otras variables. Por ejemplo, en las operaciones matemáticas. Creo que se refiere a ello. Ya que podemos realizar diversas operaciones directamente con las funciones. Por eso mismo se dice que las funciones son objetos.

      La expresión lambda me sorprende. Simplifica mucho escribir funciones simples que devuelven alguna operación matemática, evitándose la complejidad de la sintaxis tradicional de funciones.

      Creo que puede ayudar mucho a crear código altamente reutilizable y limpio. Por ejemplo las funciones anidadas permiten crear closures, las funciones lambda permiten crear funciones en una sola línea, y el que se puedan almacenar funciones en arreglos permite implementar el patrón Chain of responsability(cadena de responsabilidades). Además que se puede hacer una composición de funciones muy similar a la forma en que se puede hacer en javascript. Habría estado muy bien un video con ejemplos de esto.

      Un caso especifico que se me viene a la mente es la manipulación de archivos. En Python hay funciones que nos permiten manipular archivos, abrirlos, escribir, cerrarlos, eliminarlos, etc. Entonces imagina que tenemos 3 funciones para aplicarle a una lista de 100 archivos, podrias modificar esos 100 archivos de 3 maneras diferentes, todo eso dentro de un bucle for.

      Perdón, qué quiere decir resultado = [] ??

      Quiere decir que resultado sera una lista, y despues cuando hace resultado.append(operacion(num)) lo que esta haciendo es agregar ese valor a la lista.

      Entiendo. Gracias Julián.