CursosEmpresasBlogLiveConfPrecios

Mejorando nuestra sucesión de Fibonacci

Clase 15 de 21 • Curso Profesional de Python

Clase anteriorSiguiente clase

Contenido del curso

Introducción
  • 1
    ¿Qué necesitas saber para tomar el curso?

    ¿Qué necesitas saber para tomar el curso?

    03:15
  • 2
    ¿Cómo funciona Python?

    ¿Cómo funciona Python?

    07:49
  • 3
    Cómo organizar las carpetas de tus proyectos

    Cómo organizar las carpetas de tus proyectos

    07:15
Static Typing
  • 4
    ¿Qué son los tipados?

    ¿Qué son los tipados?

    10:26
  • 5
    Tipado estático en Python

    Tipado estático en Python

    14:26
  • 6
    Practicando el tipado estático

    Practicando el tipado estático

    13:33
Conceptos avanzados de funciones
  • 7
    Scope: alcance de las variables

    Scope: alcance de las variables

    06:32
  • 8
    Closures

    Closures

    08:21
  • 9
    Programando closures

    Programando closures

    07:00
  • 10
    Decoradores

    Decoradores

    06:19
  • 11
    Programando decoradores

    Programando decoradores

    13:05
Estructuras de datos avanzadas
  • 12
    Iteradores

    Iteradores

    13:52
  • 13
    La sucesión de Fibonacci

    La sucesión de Fibonacci

    14:01
  • 14
    Generadores

    Generadores

    07:22
  • 15
    Mejorando nuestra sucesión de Fibonacci

    Mejorando nuestra sucesión de Fibonacci

    06:53
  • 16
    Sets

    Sets

    10:58
  • 17
    Operaciones con sets

    Operaciones con sets

    06:09
  • 18
    Eliminando los repetidos de una lista

    Eliminando los repetidos de una lista

    05:20
Bonus
  • 19
    Manejo de fechas

    Manejo de fechas

    08:44
  • 20
    Time zones

    Time zones

    08:46
Conclusión
  • 21
    Completaste la trilogía. ¿Cómo seguir?

    Completaste la trilogía. ¿Cómo seguir?

    01:30
    Jose Ricardo Perez

    Jose Ricardo Perez

    student•
    hace 4 años

    Una versión más compacta:

    from time import sleep def fibonacci_gen(): a, b = 0, 1 while True: yield a a, b = b, a+b if __name__ == "__main__": fibonacci = fibonacci_gen() for element in fibonacci: print(element) sleep(1)
      David Guerrero Morales Guerrero

      David Guerrero Morales Guerrero

      student•
      hace 4 años

      Actualizando el generador con lo indicado en el reto:

      from time import sleep def fibonacci_gen(max_counter:int): a, b = 0, 1 while a <= max_counter: yield a a, b = b, a+b if __name__ == "__main__": for element in fibonacci_gen(39): print(element) sleep(0.3)
      William Leonardo Torres Toloza

      William Leonardo Torres Toloza

      student•
      hace 4 años

      Compañero felicidades, tienes una excelente lógica. No lo había contemplado así, pero sí sentía que tener 3 if se vuelve poco práctico el programa.

    Miguel Sanchez

    Miguel Sanchez

    student•
    hace 4 años

    Mi solución:

    import time def fibo_gen(stop: int): n1 = 0 n2 = 1 counter = 0 while True: if counter == 0: counter += 1 yield n1 elif counter == 1: counter += 1 yield n2 else: aux = n1 + n2 if not stop or aux <= stop: n1, n2 = n2, aux counter += 1 yield aux else: break if __name__ == '__main__': fibonacci = fibo_gen(5) for element in fibonacci: print(element) time.sleep(1)
      Carlos Rodríguez

      Carlos Rodríguez

      student•
      hace 3 años

      Grandioso aporte.

    Francisco Moreno

    Francisco Moreno

    student•
    hace 4 años

    Este es mi aporte :)

    < import time def fibo_gen(selecc:int) -> int: n1 = 0 n2 = 1 counter = 0 aux = 0 while aux < selecc: if counter == 0: counter += 1 yield n1 elif counter == 1: counter += 1 yield n2 else: aux = n1 + n2 n1, n2 = n2, aux counter += 1 yield aux def run(): selecc = int(input('Introduce your limit value for the fibonacci function:\n')) fibonacci = fibo_gen(selecc) for element in fibonacci: print(element) time.sleep(1) if __name__ == '__main__': run() >
      Jorge Mario Herrera Idarraga

      Jorge Mario Herrera Idarraga

      student•
      hace 4 años

      Tome tu codigo y lo modifiqué, a base del tuyo mi porgrama me genera una lista con el numero de elementos que yo le pase en el input.

      Ejemplo: si le introduzco el numero 10, el programa me trae una lista con los primeros 10 elementos de la sucesión Fibonacci :)

      def fibo_gen(selecc:int) -> int: n1 = 0 n2 = 1 counter = 0 aux = 0 while True: if counter == 0: counter += 1 yield n1 elif counter == 1: counter += 1 yield n2 else: aux = n1 + n2 n1, n2 = n2, aux counter += 1 yield aux if selecc == counter: break def run(): selecc = int(input('Introduce el numero de elementos a generar de la lista: ')) fibonacci = list(fibo_gen(selecc)) print(fibonacci) if __name__ == '__main__': run()
      Cristian Camilo Correa Barrera

      Cristian Camilo Correa Barrera

      student•
      hace 4 años

      Recuerda que la función devuelve un iterable, que pertenece a collections, la forma correcta sería:

      def fibo_gen(selecc: int) -> collections.Iterable:

      Saludos

    Tan Zuñiga

    Tan Zuñiga

    student•
    hace 4 años

    Aporte 🐍🐍

    reto2.png
      Oriol Fernando Palacios Durand

      Oriol Fernando Palacios Durand

      student•
      hace 4 años

      Buen código! Refleja bastante bien las posibilidades de yield y cómo aprovechar el congelamiento parcial de estados

      Carlos Rodríguez

      Carlos Rodríguez

      student•
      hace 3 años

      Fenomenal mi amigo :D.

    david roberto urquiza rivera

    david roberto urquiza rivera

    student•
    hace 4 años

    Aquí mi solución al reto después de pasearme por stackoverflow

    from time import sleep max = int(input('Max: ')) def fibo(): a, b = 0, 1 while True: yield a a, b = b, a + b for n in fibo(): if n > max: break print(n) sleep(0.5)
      Jorge Mario Herrera Idarraga

      Jorge Mario Herrera Idarraga

      student•
      hace 4 años

      Si algun dia lees esto, me puedes explicar el recorrido del codigo?, aun me da dificultad :(

    Gabriel Missael Barco

    Gabriel Missael Barco

    student•
    hace 4 años

    Mejorando nuestra sucesión de Fibonacci.

    • Solución al reto:

      import time def fibo_gen(max = None): n1, n2 = 0, 1 counter = 0 while not max or counter <= max: if counter == 0: counter += 1 yield n1 elif counter == 1: counter += 1 yield n2 else: aux = n1 + n2 n1, n2 = n2, aux counter += 1 yield n2 if __name__ == '__main__': fibonacci = fibo_gen(10) for element in fibonacci: print(element) time.sleep(0.5)
    Pedro Alejandro Silva Perez

    Pedro Alejandro Silva Perez

    student•
    hace 4 años

    Fascinante

    import time def fibo_gen(): n1 = 0 n2 = 1 counter = 0 limit = int(input("""Set a limit for the Fibonacci Succecsion: """)) while counter < limit: if counter == 0: counter +=1 yield n1 elif counter == 1: counter +=1 yield n2 else: aux = n1 + n2 n1, n2 = n2, aux counter +=1 yield aux raise StopIteration if __name__ == '__main__': fibonacci = fibo_gen() for element in fibonacci: print(element) time.sleep(0.5)
      Kristabel Rosales S.

      Kristabel Rosales S.

      student•
      hace 4 años

      excelente .

    Ramsés Alejandro Camas Nájera

    Ramsés Alejandro Camas Nájera

    student•
    hace 4 años

    En mi caso, diseñé la solución para que tome en cuenta incluso si el usuario no ingresa nada.

    import time def fibonacci_gen(max=None): n1 = 0 n2 = 1 count = 0 is_infinite = False if max == None: is_infinite = True while is_infinite or count<max: if count == 0: count +=1 yield n1 elif count == 1: count +=1 yield n2 else: aux = n1 + n2 n1, n2 = n2, aux count +=1 yield aux if __name__ == "__main__": fibonacci = fibonacci_gen(5) for element in fibonacci: print(element) time.sleep(0.5)
      Jean Paul Fabra Ruiz

      Jean Paul Fabra Ruiz

      student•
      hace 4 años

      Hola bro, el tema de infinito lo podríamos ahorrar poniendo en el ciclo "while not max or counter < max"

    Esteban Lombeida

    Esteban Lombeida

    student•
    hace 4 años

    Saludos compas, una pregunta.

    Podrían explicarme por favor para qué se utiliza el counter? No termino de entenderlo.

      Joseph Lázaro Ricardo

      Joseph Lázaro Ricardo

      student•
      hace 4 años

      Como yo lo entiendo es para marcar las vueltas, con este counter hacemos que en la vuelta 0 y 1 haga una función diferente que en resto de vueltas, esto es por que digamos que se esta "inicializando" el proceso. Además nos sirve para detener el ciclo en caso de que alcance un determinado número de vueltas.

    Gabriela Andreina García Uzcategui

    Gabriela Andreina García Uzcategui

    student•
    hace 4 años

    Reto cumplido! :)

    reto generators.PNG
    Sergio Esteban Gamboa Muñoz

    Sergio Esteban Gamboa Muñoz

    student•
    hace 4 años

    mi reto 🎋🎋

    import time def fibo_gen(max:int): n1=0 n2=1 counter=0 while True: if not max or n2 <= max: if counter == 0: counter +=1 yield n1 elif counter==1: counter +=1 yield n2 else: aux = n1 + n2 n1 , n2 = n2, aux counter +=1 yield aux else: break if __name__=="__main__": fibonacci=fibo_gen(max=10) for element in fibonacci: print(element ) time.sleep(0.1)
    Laura Gonzalez Colorado

    Laura Gonzalez Colorado

    student•
    hace 4 años

    Hola a todos, mi aporte.

    import time def fibo_gen(max:int): n1 = 0 n2 = 1 counter =0 while True: if counter == 0: counter +=1 yield n1 elif counter ==1: counter +=1 yield n2 else: aux = n1 + n2 n1,n2 = n2, aux if aux <= max: yield aux else: raise StopIteration if __name__ == '__main__': fibonacci = fibo_gen(5) for element in fibonacci: print(element) time.sleep(1)
    John Alexander Ortiz Ramirez

    John Alexander Ortiz Ramirez

    student•
    hace 4 años

    Este es mi código del reto con algo de static typing

    import time from typing import Generator def fibonacci_gen(max: int = None) -> Generator: n1: int = 0 n2: int = 1 counter: int = 0 while not max or max > counter: if counter == 0: counter += 1 yield n1 elif counter == 1: counter += 1 yield n2 else: out: int = n1 + n2 n1, n2 = n2, out counter += 1 yield out if __name__ == '__main__': fibonacci: Generator = fibonacci_gen(10) for element in fibonacci: print(element) time.sleep(1)
    Julio Gutierrez

    Julio Gutierrez

    company_admin•
    hace 4 años

    Alguien ha usado iteradores o generadores en django?, digamos que obtenemos un set de datos sobre un query, podríamos pasar ese set a un iterador?, Quisiera entender como usar esto en ambientes reales.

    Brayan Niño

    Brayan Niño

    student•
    hace 4 años

    Hola, alguien sabe porque mi programa imprime hasta el 144 y no hasta el 89?

    photo_2022-01-12_13-40-29.jpg
    photo_2022-01-12_13-40-32.jpg
      Pablo Antipan Quiñenao

      Pablo Antipan Quiñenao

      student•
      hace 4 años

      Hola!

      Esto se da porque cuando imprime 144 en pantalla aux es 89, por lo tanto, en el while, 89 sí es menor a 100, por lo que realiza la suma de 55 + 89 y lo guarda en aux.

      Saludos!

      Romel Manrique

      Romel Manrique

      student•
      hace 4 años

      Yo también tuve el mismo problema, y aunque mi código no se parece mucho al tuyo, creo que esta solución podría servirte.

      • Cambia la condición del while por True
      • Agrega un if sentence justo despues de que le asignas a aux el valor de la suma de n1 y n2 De esta forma el codigo se interrumpira inmediatamente despues de que el aux haya tomado un valor mayor a max_value y por lo tanto nunca ejecutara el codigo que contiene el yield aux
      while True: if condicion1: ## tu codigo ## pass elif condicion2: ## tu codigo pass else: ## tu codigo aux = n1 + n2 if aux > max_value: break yield aux
    Manuel G. Pineda

    Manuel G. Pineda

    student•
    hace 4 años

    Tengo una pregunta acerca del ejercicio. Por qué con el método que implementamos de iteradores no aparecia la excepción al final de la ejecución de Fibonacci y si aparece la excepción cuando la implementamos con generadores?

    Tenia entendido que el for estaba construido por medio de un ciclo while con el try-except y que tomaba la excepción para finalizar el ciclo.

    Agradezco si alguien me puede ayudar con la respuesta.

    Jesús David Gómez Gil

    Jesús David Gómez Gil

    student•
    hace 4 años

    con lo del reto no estoy seguro de que quedo bien pues el reto de los iteradores se detenía sin levantar ningún error, pero en este reto si lo hace, ¿debó suponer que así esta bien, o no debería salir ningún error?

    import time def fibo_gen(max): n1, n2, counter = 0, 1, 0 while True: if counter == 0: counter += 1 yield n1 elif counter == 1: counter += 1 yield n2 else: n1, n2 = n2, n1+n2 counter += 1 if n2 > max: raise StopIteration else: yield n2 if __name__ == '__main__': max = int(input("¿Hasta que numero desea que la secuencia llegue?: ")) fibonacci = fibo_gen(max) for element in fibonacci: print(element) time.sleep(1)
      Pedro Alvarado Garcia

      Pedro Alvarado Garcia

      student•
      hace 4 años

      Tu código está excelente y funciona muy bien, hace todo lo que tiene que hacer, incluso cuando te salta el error en teoría también está bien, porque básicamente te detiene el generador. Pero si quieres que no te salga el error por pantalla y simplemente termine su ejecución puedes hacer lo siguiente:

      En el bloque:

      if n2 > max: raise StopIteration

      Simplemente realiza el siguiente cambio:

      if n2 > max: break

      Y así ya no aparecerá el error por pantalla pero terminará la ejecución del generador.

      Manuel G. Pineda

      Manuel G. Pineda

      student•
      hace 4 años

      Hola Pedro qué tal! Me pasó lo mismo. Lo que no entiendo es por qué con los iteradores levantamos la misma excepción pero en ese caso no aparecia al finalizar la sucesión.

    Ezequiel Saldaña

    Ezequiel Saldaña

    student•
    hace 4 años
    from time import sleep def fibo_gen_max(maximo): n1 = 0 n2 = 1 counter = 0 aux = 0 while True: if counter == 0: counter += 1 aux = 0 yield n1 elif counter == 1: counter += 1 aux = 1 yield n2 else: aux = n1 + n2 n1, n2 = n2, aux counter += 1 if aux <= maximo: yield aux else: raise StopIteration if __name__ == '__main__': fibonacci_gen_max = fibo_gen_max(35) for element in fibonacci_gen_max: print(element) time.sleep(1)
      Jose Ivan Zapata Ramirez

      Jose Ivan Zapata Ramirez

      student•
      hace 4 años
      import time def fibo_gen(stoping:int): n1 = 0 n2 = 1 counter = 0 aux=0 while aux<stoping: if counter == 0: counter += 1 yield n1 elif counter == 1: counter += 1 yield n2 else: aux = n1+n2 n1, n2 = n2, aux counter += 1 yield aux if __name__ == '__main__': number=int(input("hasta que numero de la serie deseas que se detenga esta verga: ")) fibonacci = fibo_gen(number) for element in fibonacci: print(element) time.sleep(1)
    Christian Fernandez

    Christian Fernandez

    student•
    hace 4 años
    import time def fibo_gen(max = None): n1 = 0 n2 = 1 counter = 0 while counter != max: if counter == 0: counter += 1 yield n1 elif counter == 1: counter += 1 yield n2 else: aux = n1 + n2 n1, n2 = n2, aux counter += 1 yield aux if __name__ == "__main__": fibonacci = fibo_gen(8) for element in fibonacci: print(element) time.sleep(1)
      Bryan

      Bryan

      student•
      hace 4 años

      Me podrías explicar como funciona tu código?

      Gutemberg S. Mendoza Mestanza

      Gutemberg S. Mendoza Mestanza

      student•
      hace 4 años

      Esta también fue mi solución, para la persona que preguntó abajo lo puedo explicar. Recuerdas que en un inicio decíamos

      while True:

      Bueno pues esa era mi condición para que el ciclo sea infinito, ahora, también debes recordar que teníamos una variable llamada:

      counter = 0

      Esta variable lo que hacia era ayudarme a mostrar los dos primeros valores de la sucesión de fibonacci.

      n1 = 0 n2 = 1

      Que te parece si nos valemos de ese concepto para detener el programa con el numero que el usuario elija. En la que en los argumentos agregamos la variable

      max = None

      Y así como ya tenemos un contador solo nos preguntamos cuando este contador llegue a max y se detiene! 👌

    Fernando Callasaca Acuña

    Fernando Callasaca Acuña

    student•
    hace 4 años

    Cuando hacemos el generador para iterar fibonacci si colocamos 1 debería devolvernos 0? o siempre debería iniciar con '0' '1'?

      Pablo Antipan Quiñenao

      Pablo Antipan Quiñenao

      student•
      hace 4 años

      Hola! Depende de lo que definas como parametro para mandarle a la función, si el parámetro que le mandas a la función es el número máximo al que va a llegar la sucesión de FIbonacci, entonces si le mandas un 1 te debería retornar 0 1 1. En cambio, si el parámetro representa la cantidad de números que va a retornar la función, si le mandas un 1 solo te debería retornar el 0. Saludos!

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