Introducción al lenguaje Python

El presente curso trata de dar una visión amplia de las características y posibilidades del lenguaje de programación Python, cubriendo tanto el propio lenguaje como las funcionalidades elementales de la librería estándar. Se aborda también el proceso de testing y perfilado de programas.

Contenidos

Introducción (1)

Funciones (1)

  • funciones y paso de parámetros
  • parámetros por defecto y nombrados
  • empaquetado de parámetros

Programación defensiva (2)

  • assert
  • testing rudimentario

Errores (2)

  • Tratamiento de excepciones
  • Lanzar excepciones
  • Excepciones de usuario

Módulos (3)

  • estructura
  • namespaces y pollution

Programación orientada a objetos (2,3)

  • clases, self e __init__
  • __dict__
  • métodos estáticos y de clase
  • herencia
  • información de tipo
  • introspección

Pruebas (3,4)

  • doctests
  • pruebas unitarias
  • FIRST
  • Test suites
  • TDD
  • Dobles de prueba (PENDIENTE)

Programación orientada a objetos II

Programación funcional (4)

  • funciones lambda
  • map, filter y reduce
  • comprensión de listas, conjuntos y diccionarios
  • decoradores (funciones de orden superior)
  • funciones parcialmente especificadas (6)
  • closures (5)

Iterables

  • Crear un tipo iterable (5)
  • generadores (7)
  • itertools (7)

Matemáticas

Entrada/Salida (7)

  • E/S estándar
  • Ficheros
  • Sockets (8)

Servicios del sistema operativo (8)

  • línea de comandos
  • sistema de ficheros
  • señales
  • procesos y subprocesos
  • usuarios

Bindings C/C++ (8)

  • Empotrar Python
    • Con libpython
    • Con boost
  • Extender Python
    • Con libpython
    • Con ctypes
    • Con boost

Codificación de datos (PENDIENTE)

  • unicode y sistemas de codificación
  • representación de datos
  • struct
  • pickle

Temas avanzados

  • descriptores
  • decoradores de clases
  • metaprogramación

Más

  • expresiones regulares
  • requests
  • patrones de diseño
  • notebook
  • signals / eventos
  • bindings a C/C++
  • multiprocessing
  • concurrencia