Esta es una colección de scripts de Python divididos en categorías que contienen ejemplos de código con sus explicaciones, diferentes usos y links a recursos adicionales.
Lee esto en: Inglés, Portugués, Traditional Chinese](README.zh-TW.md).
Es un playground ya que puedes cambiar o añadir cosas al código para ver cómo funciona y probarlo usando aserciones. También puedes revisar el código que has escrito y averiguar si está acorde con la guía de estilos de Python. Todo esto, en conjunto, puede hacer que tu proceso de aprendizaje sea más interactivo y puede ayudarte a mantener la calidad del código muy alta desde el principio.
Es un cheatsheet porque puedes regresar y revisar los ejemplos de código para fortalecer tus conocimientos sobre las sentencias y contrucciones estándar de Python. Además, ya que el código tiene muchas aserciones, podrás ver el resultado de las funciones/sentencias en el mismo código sin la necesidad de ejecutarlos.
También puede interesarte 🤖 Interactive Machine Learning Experiments
Cada script de Python en este repositorio sigue la estructura:
"""Lists <--- Nombre del tema
# @see: https://www.learnpython.org/en/Lists <-- Link a recurso adicional
Aquí puede haber una explicación detallada del tema en concreto (ej: información general sobre listas).
"""
def test_list_type():
"""Explicación del sub-tema.
Cada archivo contiene funciones de prueba que muestran sub-temas (ej: tipos de listas, métodos en listas).
"""
# Este es un ejemplo de cómo construir una lista. <-- Estos comentarios explican el procedimiento
squares = [1, 4, 9, 16, 25]
# Las listas pueden ser indexadas y cortadas.
# Al indexar devuelve el item.
assert squares[0] == 1 # <-- Estas aserciones muestran el resultado.
# Al cortar devuelve una nueva lista.
assert squares[-3:] == [9, 16, 25] # <-- Estas aserciones muestran el resultado.
Normalmente, querrás hacer lo siguiente:
- Encontrar el tema que quieres aprender o revisar.
- Leer los comentarios y/o la documentación que está escrita en cada docstring del script (toma como ejemplo el script de arriba).
- Ver los ejemplos de código y las aserciones para conocer diferentes maneras de usar el código y entender el resultado previsto.
- Cambiar el código o añadir nuevas aserciones para ver cómo funcionan las cosas.
- Probar y revisar el código para ver si funciona y si está escrito correctamente.
- Empezando
- Operadores
- Operadores aritméticos (
+
,-
,*
,/
,//
,%
,**
) - Operadores Bitwise (
&
,|
,^
,>>
,<<
,~
) - Operadores de atribución (
=
,+=
,-=
,/=
,//=
etc.) - Operadores de comparación (
==
,!=
,>
,<
,>=
,<=
) - Operadores lógicos (
and
,or
,not
) - Operadores de identidad (
is
,is not
) - Operadores de asociación (
in
,not in
)
- Operadores aritméticos (
- Tipos de datos
- Números (incluyendo booleans)
- Strings y sus métodos
- Listas y sus métodos (incluyendo comprensión de listas)
- Tuples
- Sets y sus métodos
- Diccionarios
- Tipo de casting
- Control de flujo
- La sentencia
if
- La sentencia
for
(y la funciónrange()
) - La sentencia
while
- La sentencia
try
- La sentencia
break
- La sentencia
continue
- La sentencia
- Funciones
- Definición de función (sentencias
def
yreturn
) - Ámbito de variables dentro de funciones (sentencias
global
ynonlocal
) - Valores de argumento predeterminados
- Argumentos de palabras clave
- Listas de argumento arbitrario
- Listas de argumentos en funciones (sentencias
*
y**
) - Expresiones Lambda (sentencia
lambda
) - Strings de documentación
- Anotaciones en funciones
- Decoradores de funciones
- Definición de función (sentencias
- Clases
- Módulos
- Errores y excepciones
- Controlando excepciones (sentencia
try
) - Generando excepciones (sentencia
raise
)
- Controlando excepciones (sentencia
- Archivos
- Leyendo y escribiendo (sentencia
with
) - Métodos de objetos de archivo
- Leyendo y escribiendo (sentencia
- Adicionales
- La sentencia
pass
- Generadores (sentencia
yield
)
- La sentencia
- Pequeño tour de las librerías estándar
- Serialización (librería
json
) - Parámetros en archivos (librería
glob
) - Expresiones regulares (librearía
re
) - Matemática (librerías
math
,random
ystatistics
) - Fechas y horas (librería
datetime
) - Compresión de datos (librearía
zlib
)
- Serialización (librería
Instalando Python
Asegúrate de que tienes Python3 instalado en tu sistema.
Podrías utilizar la librería estándar venv para crear entornos virtuales y tener Python, pip y todos los paquetes instalados en el directorio de tu proyecto local para evitar cometer errores con paquetes del sistema y sus versiones.
Dependiendo de la instalación, tendrás acceso a Python3 ejecutando python
o python3
. Lo mismo
aplica para el administrador de paquetes pip - puedes tener acceso a él ejecutando pip
o pip3
.
Puedes ver tu versión actual de Python ejecutando:
python --version
Ten en cuenta que cuando leas python
en este repositorio, se asume que es Python 3.
Instalando dependencias
Instala todas las depencias requeridas para el proyecto ejecutando:
pip install -r requirements.txt
Las pruebas son hechas usando el framework pytest.
Puedes añadir más pruebas por ti mismo añadiendo archivos y funciones con el prefijo test_
(ej: test_topic.py
con la función def test_sub_topic()
adentro).
Para ejecutar todas las pruebas, por favor escribe el siguiente comando desde el directorio raíz del proyecto:
pytest
Para ejecutar diferentes pruebas escribe:
pytest ./path/to/the/test_file.py
La revisión del código está hecha usando las librerías pylint y flake8.
Para revisar si el código sigue la guía de estilos PEP 8, por favor ejecuta:
pylint ./src/
En caso de que linter detecte un error (ej: missing-docstring
), te recomiendo leer más sobre
el error concreto ejecutando:
pylint --help-msg=missing-docstring
Para revisar si el código sigue la guía de estilos PEP 8, por favor ejecuta:
flake8 ./src
O, si quieres ver un output más detallado, ejecuta:
flake8 ./src --statistics --show-source --count
Puedes apoyar al proyecto a través de ❤️️ GitHub o ❤️️ Patreon.