CursosEmpresasBlogLiveConfPrecios

Cómo organizar las carpetas de tus proyectos

Clase 3 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
    Alfonso Morán

    Alfonso Morán

    student•
    hace 4 años

    📁Un módulo es cualquier archivo de Python. Generalmente, contiene código que puedes reutilizar.

    🗄 Un paquete es un conjunto de módulos. Siempre posee el archivo __init__.py. Una ejemplo de organizar los archivos de 🐍Python es de la siguiente manera.

    paquettes.png
      Kenyi Julberht Hancco Quispe

      Kenyi Julberht Hancco Quispe

      student•
      hace 4 años

      Buen resumen!

      Cesar Hernández Ramírez

      Cesar Hernández Ramírez

      student•
      hace 4 años

      Nice bro

    ALDO MATUS MARTINEZ

    ALDO MATUS MARTINEZ

    student•
    hace 4 años

    :snake: __init __.py When a new object is made, it is initialized by calling the init method on the object.

    __init__

    is pronounced “dunder init”: dunder is short for “double-underscore”.

      Reinaldo Mendoza

      Reinaldo Mendoza

      student•
      hace 4 años

      Muy buen dato, para tener en cuenta al referirnos a los archivos

      Javier Suárez Meerhoff

      Javier Suárez Meerhoff

      student•
      hace 4 años

      gracias!

    Daniel Alejandro Franco Meneses

    Daniel Alejandro Franco Meneses

    student•
    hace 4 años

    Si están usando WSL o una terminal Unix, pueden instalar con sudo apt-get install tree para ver un árbol de sus carpetas. Luego puedo ingresar a la carpeta de mi proyecto y ejecutar el comando tree.

    Se vería algo así:

    Yo pongo tree -I venv para ignorar la carpeta venv que esta llena de cosas. Si no lo pongo verás todos los directorios de tu proyecto.

      Alexander Sánchez

      Alexander Sánchez

      student•
      hace 4 años

      Interesante. muchas gracias. En OS X, con homebrew se puede instalar así:

      brew install tree
      Mauricio Gonzalez Falcon

      Mauricio Gonzalez Falcon

      student•
      hace 4 años

      Gracias por el aporte, instalado ya!

    Gabriel Salvador

    Gabriel Salvador

    student•
    hace 4 años

    El diccionario define a un módulo como cualquier archivo de python con código que se pueda reutilizar... que se pueda reutilizar.

      Reinaldo Mendoza

      Reinaldo Mendoza

      student•
      hace 4 años

      Bien simple esa deficinion

      José Jesús Enciso Mayo

      José Jesús Enciso Mayo

      student•
      hace 4 años

      Y luego te quedas como el jurado en ese episodio, ya que en varios cursos te dicen la.importancia de nunca copiar código o reutilizarlo tanto xD

    Oscar Eduardo Chaparro Blancas

    Oscar Eduardo Chaparro Blancas

    student•
    hace 4 años

    Si haz seguido la rama de cursos sugerida y ya pasaste por el curso de git/github, así como las entregas anteriores de Facundo, sin querer haz aprobado un curso que va tras bambalinas, que es el orden sugerido para el manejo de tus proyectos. Personalmente me ha servido mucho porque he aplicado esa metodología para ordenar los cursos del reto de DataAcademy y muchos mas, aún fuera de uso de python, como los cursos de SQL y esto hace que como profesionista, tenga una costumbre funcional y un orden general en mis proyectos. Esta clase deja ver la maravilla que es Platzi como plataforma de educación en la que los cursos se entrelazan en temas que quizá no son tan relevantes o no forman parte del foco del proyecto, pero que dan un plus a nuestro trabajo y a nuestro estilo profesional. Enhorabuena!

      Jesús Enrique Morocoima Marcano

      Jesús Enrique Morocoima Marcano

      student•
      hace 4 años

      Es verdad 100% de Acuerdo con usted compañero

    Miguel Angel Velazquez Romero

    Miguel Angel Velazquez Romero

    student•
    hace 4 años

    Que yo sepa la carpeta venv (que en realidad es un entorno virtual) por lo regular va en el .gitignore y en vez de la carpeta va un requirements.txt, donde la persona que descargue el proyecto puede hacer su propio entorno virtual (ya que aveces no es compatible con otros equipos), con su propia versión de Python, las dependencias necesarias e incluso sus propias versiones de las dependencias.

      Rogelio Enrique Carrera

      Rogelio Enrique Carrera

      student•
      hace 4 años

      Faltaría requirements.txt pero si, está es la estructura más usada.

      José Anderson Ramírez Ponte

      José Anderson Ramírez Ponte

      student•
      hace 4 años

      ambos paradigmas llevan al mismo resultado?

    Emmanuel Corral Marco

    Emmanuel Corral Marco

    student•
    hace 4 años

    How to organize your proyect folders

    To make this thema more simple Facundo introduces two concepts:

    • modules: A module is any python file, usually this is reusable in other python files, for example a function created to reuse.

    • packages: A package is a folder that contain many modules. In this folder, always there is _init.py, it's necessary to the package.

    package: - module_1 - module_2 - module_3 - module_n all modules are relationized to the __init__

    Example of directory project:

    • README

    • .gitignore

    • venve

    • package:

      • init.py
      • module_1.py
      • module_2.py
    • README: an explanation over our proyect, normally use a .md format.

    • .gitignore: file to ignore other files at the time to run.

    • venve: this is the folder with the envioment variables.

    Frameworks: Set of rules to the app run. They have them folders..

      María Jimena Rodríguez Contreras

      María Jimena Rodríguez Contreras

      student•
      hace 4 años

      gracias

    Carlos Esteban Lara Gil

    Carlos Esteban Lara Gil

    student•
    hace 4 años

    0.1 ¿Cómo organizar las carpetas de tus proyectos?

    Glosario

    Módulo

    Un módulo es cualquier archivo que termine con la extensión .py.

    • Generalmente un módulo tiene archivos que se pueden reutilizar

    Paquete

    Un paquete es un conjunto de módulos. init.py es el archivo que se usa para inicializar un paquete. Esto denota que una carpeta es un paquete.

    Así se vería la carpeta de un proyecto (Explicado con indentación):

    Proyecto: README.md .gitignore venv proyecto: __init__.py nave.py destino.py plataforma.py lanzamiento.py test.py validación.py
    • R E A D M E . m d: Explica como funciona el proyecto, github y gitlab lo toman para explicarle a otros desarrolladores como trabajar con él
    • .gi t i g n o re: Es un archivo que se usa para ignorar todos los archivos que no queremos que se suban a un repositorio remoto
    • ve n v todos los módulos que se usan para trabajar en el proyecto
    • El paquete del proyecto: *Componentes del proyecto
    Iván Mauricio Jaimes Niño

    Iván Mauricio Jaimes Niño

    student•
    hace 4 años

    Módulo en Python

    Un módulo puede contener:

    • Funciones
    • Clases
    • Variables
    • Código ejecutable
    • Atributos asociados con el módulos

    El nombre del módulo es el nombre del archivo (sin la extensión .py).

    Por ejemplo, en el siguiente diagrama la función printer y la clase Shape están definidas en el módulo utils.

    Selection_780.png

    Paquete en Python

    Un paquete en Python es un directorio que contiene uno o más módulos de Python.

    El archivo opcional "init.py" puede contener código que se ejecuta cuando un módulo se importa del paquete (inicialización). Según la documentación:

    Los archivos init.py son necesarios para que Python trate los directorios que contienen el archivo como paquetes. Esto evita que los directorios con un nombre común, como una cadena, oculten involuntariamente módulos válidos que aparecen más adelante en la ruta de búsqueda del módulo. En el caso más simple, init.py puede ser simplemente un archivo vacío, pero también puede ejecutar el código de inicialización del paquete o establecer la variable all, que se describe más adelante. (https://docs.python.org/3/tutorial/modules.html#packages)

    Alfonso Morán

    Alfonso Morán

    student•
    hace 4 años

    Qué es lo que debe contener el archivo init.py? es un archivo vacío?

      Luis Lira

      Luis Lira

      student•
      hace 4 años

      Sí, es un archivo vacío que sirve para que Python reconozca lo módulos.

      Alfonso Morán

      Alfonso Morán

      student•
      hace 4 años

      Gracias! 😄

    Gabriel Missael Barco

    Gabriel Missael Barco

    student•
    hace 4 años

    Cómo organizar las carpetas de tus proyectos

    Es importante comprender dos conceptos:

    • Módulo: Es cualquier archivo de Python. Generalmente, contiene código que puedes reutilizar 😃.
    • Paquete: Un paquete es una carpeta que contiene un conjunto de módulos. Siempre posee el archivo __init__.py. Estos módulos están relacionados.

    Un orden común de proyectos:

    - exploracion_espacial_proyecto. - README - .gitignore - venv - exploración espacial - `__init__.py` - nave.py - destino.py - tests.py

    Sin embargo, en cada proyecto puede ser diferente dependiendo de lo que se esté haciendo, ya que, por ejemplo, podrías usar algún *framework.*🤯

    Juan Carlos Ortiz Romero

    Juan Carlos Ortiz Romero

    student•
    hace 4 años

    una explicación sobre nuestro proyecto, normalmente usamos un formato .md. .gitignore: archivo para ignorar otros archivos en el momento de ejecutar. venve: esta es la carpeta con las variables de entorno. Frameworks: Conjunto de reglas para la ejecución de la aplicación. Las tienen carpetas.

      Daniel Choxin

      Daniel Choxin

      student•
      hace 4 años

      gracias

    Edkar Chachati

    Edkar Chachati

    student•
    hace 4 años

    Como Organizar las Carpetas de tus Proyectos

    Las carpetas se organizan por Paquetes y Módulos, estos últimos son cualquier archivo de Python. Generalmente, contiene código que puedes reutilizar

    Un Paquete es una carpeta que contiene módulos. Siempre posee el archivo init.py

      María Jimena Rodríguez Contreras

      María Jimena Rodríguez Contreras

      student•
      hace 4 años

      gracias

    Miguel Angel Reyes Moreno

    Miguel Angel Reyes Moreno

    student•
    hace 4 años

    Cómo organizar las carpetas de tus proyectos

    Módulo

    Un módulo es cualquier archivo de Python (o sea que termina con .py). Generalmente, contiene código que puedes reutilizar.

    Paquete

    Una carpeta que contiene módulos. Siempre posee el archivo __init__.py. (Se lee dunder init doy py).

    Paquetes
    MóduloMódulo
    MóduloMódulo
    MóduloMódulo
    exploracion_espacial
    nave.pydestino.py
    plataforma.pylanzamiento.py
    tests.pyvalidacion.py

    Estructura de proyecto:

    • README -> Explica cómo funciona el proyecto
    • .gitignore -> Cosas que no se subirán al repo
    • venv -> entorno virtual de Python
    • exploracion_espacial -> Paquete, dentro de él, los módulos
      • __init__.py
      • nave.py
      • destino.py
      • plataforma.py
      • lanzamiento.py
      • tests.py
      • validacion.py

    Esta regla no está tallada en piedra. Depende del proyecto y el Framework que uses.

    Jesús Velázquez Jiménez

    Jesús Velázquez Jiménez

    student•
    hace 4 años

    Package Set of modules that work together. Contain a file init.py **Module **Any code that we can reuse.

    Henry Mendiburu Díaz

    Henry Mendiburu Díaz

    student•
    hace 4 años

    La carpeta exploracion_espacil_proyecto tendría que guardarse en alguna ruta especial de la PC ? Cuando se quiera importar se tendría que llamar considerando la ruta completa donde está guardada?

      Carlos Castillo

      Carlos Castillo

      student•
      hace 4 años

      la ruta tu la puedes definir según como tu manejes tu sistema de carpetas personal. Para importar archivos y usarlos en código si tienes que escribir la dirección completa aunque es importante que los archivos que uses los tengas en la misma carpeta o en una carpeta hija donde tengas tu proyecto para poder ingresar la dirección como "./resources/archivo.csv"

    Sandra Milena Rojas Herrán

    Sandra Milena Rojas Herrán

    student•
    hace 4 años

    Mientras podemos tener tests para python y cuando terminen el curso, pueden ir a:

    TAU Pytest

    Es super explicativo y te ayuda a mejorar tus skills en inglés.

      Andrés Felipe Lopez gomez

      Andrés Felipe Lopez gomez

      student•
      hace 3 años

      Muchas gracias

    Max Castillo

    Max Castillo

    student•
    hace 4 años

    Módulos

    • Un módulo es un archivo de Python cuyos objetos (funciones, clases, excepciones, etc.) pueden ser accedidos desde otro archivo. Se trata simplemente de una forma de organizar grandes códigos.

    Paquetes

    • Un paquete es una carpeta que contiene varios módulos.
    Juan Pablo Cuenca Ludeña

    Juan Pablo Cuenca Ludeña

    student•
    hace 3 años

    Mi resumen #3

    image_517.png
      Alexander Orellana Manayalle

      Alexander Orellana Manayalle

      student•
      hace 3 años

      Excelente gracias.

      Juan Pablo Cuenca Ludeña

      Juan Pablo Cuenca Ludeña

      student•
      hace 3 años

      De nada compañero, espero pueda ser de utilidad para más personas.

    DAVID EDUARDO BAEZ SANCHEZ

    DAVID EDUARDO BAEZ SANCHEZ

    student•
    hace 4 años

    A seguir aprendiendo. Importante el orden

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