Saltar a contenido

Python

List comprehensions y otras

La notación por comprensión en Python esta directamente basada en la notación matemática de conjuntos por comprensión.

Esta guía se puede leer de 2 formas distintas dependiendo del tiempo y dedicación del lector:

  1. Completa: Da un panorama completo que ayuda a entender por qué la sintáxis de las list comprehensions es como es y la contrasta con otras formas de resolver el mismo problema.
  2. A partir de "Introducción menos ñoña": Muestra como usar las comprehensions de forma directa.

Módulos y paquetes

Python permite organizar el código en al menos 2 formas:

  1. Módulos: Esto es simplemente un archivo con extensión .py

    • Se pueden importar desde otros módulos.
    • Se pueden ejecutar como scripts.
    • Desde el código del módulo podemos hacer cosas distintas dependiendo de si se importa o se usa como script comparando la variable __name__ con "__main__".
  2. Paquetes: Una carpeta que tiene un archivo __init__.py adentro.

    • Permiten agrupar módulos y otros paquetes.
    • Se pueden importar desde módulos.

Jupyter notebook

Jupyter Notebook es un entorno de trabajo interactivo que permite desarrollar código en Python. Es utilizado ampliamente para análisis numéricos, estadísticas y machine learning, entre otros campos de la informática.

Algunas de las principales funciones y beneficios que provee:

  • Permite editar el código desde el navegador, resaltando la sintaxis, indentación y también provee funciones de autocompletado.
  • Permite ejecutar código desde el navegador, mostrando los resultados de esta ejecución.
  • Provee facilidades para la documentación y visualización del código.
  • No solo permite escribir código Python sino también permite visualizar otro tipo de extensiones como Markdown y HTML.
  • Permite iniciar una sesión de una terminal de bash para ejecutar comandos desde el mismo navegador.
  • Se puede agregar cualquier archivo .py o .ipynb simplemente arrastrandolos hasta la interfaz de la herramienta.
  • Los archivos que genera son de extensión "ipynb", con lo que podemos compartirlos con nuestros compañeros.

Guía de estilos

Las guías de estilo ayudan a los equipos de desarrollo a escribir código consistente simplificando su entendimiento a todos/as los/as miembros del equipo.

Python define en PEP8 como guía de estilos base y en PEP257 la convención para Docstrings. Teniendo esta referencia vamos a mencionar las normas mas importantes que esperamos que traten de cumplir en el trabajo.

Gestión de dependencias en Python

El manejo de paquetes en Python es esencial para la organización y portabilidad de los proyectos. Python utiliza pip como su gestor de paquetes para instalar, actualizar y administrar bibliotecas externas que no forman parte del núcleo del lenguaje.

Estas bibliotecas se descargan desde el repositorio oficial PyPI, aunque es posible configurar pip para utilizar repositorios personalizados.

Entornos virtuales

venv es una herramienta usada para crear un ambiente aislado de Python. Este ambiente tiene su propio directorio de instalación que no comparte librerías con otros ambientes virtuales ni con el sistema operativo.

Esto tiene la ventaja que separa las librerías específicas que necesitamos en cada entorno virtual.

Es útil hacer esta separación porque en el desarrollo de software es muy común que queramos usar en distintos proyectos distintas versiones de la misma librería.

Instalación de Python

En esta guía vamos a ver distintas formas de realizar la instalación de la versión específica de Python que se utilizará en la cátedra para distintos sistemas operativos.

El objetivo es que todos los alumnos que cursen la cátedra puedan instalar en sus sistemas operativos la versión específica de Python que vamos a usar dentro de la cátedra.