Este repositorio contiene material práctico para la introducción a la programación en Python. El material está enfocado a quienes tienen conocimiento de programación y necesitan partir con la programación en este lenguaje. Aunque describe brevemente algunos conceptos usados en programación, no es un curso de introducción a la programación.
Antes de comenzar con el tutorial es necesario tener instalado el interprete Python 3.11 o superior (recomendamos Python 3.11 LTS). El que puede ser descargado desde:
La forma más fácil es instalar Python es usando miniconda y el gestor de paquetes conda. Por defecto, miniconda instalará una versión de Python definida en la versión del instalador. Sin embargo, es posible instalar otras versiones y las dependencias a través de ambientes virtuales.
Una vez instalado miniconda podemos crear un ambiente de trabajo de la siguiente manera:
$ conda create -n py311 python=3.11
$ conda activate py311Para proyectos más complejos, recomendamos usar Poetry para la gestión de dependencias. La instalación recomendada es mediante pipx:
En macOS:
$ brew install pipx
$ pipx ensurepathEn Linux (Ubuntu 23.04+):
$ sudo apt update
$ sudo apt install pipx
$ pipx ensurepathEn Linux (Fedora):
$ sudo dnf install pipx
$ pipx ensurepathEn Linux (otras distribuciones):
$ python3 -m pip install --user pipx
$ python3 -m pipx ensurepathEn Windows:
# Con Scoop
$ scoop install pipx
$ pipx ensurepath
# Con pip
$ py -m pip install --user pipx
$ .\pipx.exe ensurepathUna vez instalado pipx:
# Instalar Poetry con pipx
$ pipx install poetry
# Inicializar un proyecto
$ poetry init
$ poetry installEn Windows es necesario verificar que el directorio de Python esté incluido en el path de las variables de entorno.
Python es un lenguaje interpretado que permite ejecutar las sentencias directamente desde una consola o terminal. Sin embargo, para programar es recomendable utilizar un IDE para facilitar el desarrollo, la búsqueda de errores y depuración, mantenimiento del código, entre otras actividades propias del desarrollo de software. Python tiene un editor básico llamado IDLE. Existen otros IDEs con mayores prestaciones y compatibles con Python. A continuación dejo un listado con ellos:
- Visual Studio Code - Editor gratuito con excelente soporte para Python
- PyCharm Community Edition - IDE completo para Python
- JupyterLab - Entorno interactivo para notebooks (recomendado para este curso)
- Jupyter Notebook - Versión clásica de Jupyter
- GitHub Codespaces - Entorno de desarrollo en la nube
Siempre es recomendable trabajar con ambientes virtuales para aislar las dependencias de cada proyecto:
# Con venv (incluido en Python)
$ python -m venv mi_proyecto
$ source mi_proyecto/bin/activate # Linux/Mac
$ mi_proyecto\Scripts\activate # Windows
# Con conda
$ conda create -n mi_proyecto python=3.11
$ conda activate mi_proyectoGit es esencial para el desarrollo de software:
$ git init
$ git add .
$ git commit -m "Mensaje descriptivo"
$ git push origin mainSeguir PEP 8 - Guía de estilo oficial de Python.
Al igual que en matemáticas u otra materia, programar require de práctica. A continuación dejo algunos sitios y lecturas que podrían ser útiles para el aprendizaje y práctica de programación en Python.
-
HackerRank: plataforma web de reclutamiento de fuerza laboral en áreas de tecnología. Puede ser utilizada también para el aprendizaje y práctica de programación.
-
Codecademy: plataforma web orientada a la educación y promoción del aprendizaje de diferentes áreas de la computación como programación, ciencia de datos y desarrollo web.
-
Codility: Codility es una plataforma para evaluar candidatos a puestos de desarrollo. Tiene una sección para práctica con temas y preguntas similares a las que podrían aparecen en los test de código.
-
LeetCode: plataforma para mejorar habilidades en programación y preparación para entrevistas técnicas.
-
AlgoExpert: plataforma para mejorar habilidades en programación y preparación para entrevistas técnicas.
Por favor sientanse libres de dejar comentarios, sugerencias u observaciones en la sección de Issues de este repositorio.