PCAP / Lecciones en español · English
Lecciones de PCAP PCAP-31-03
- Variantes de import: import, import as, from … import, from … import * y qué agrega cada una al namespace
- Calificar nombres en módulos y paquetes anidados (package.subpackage.module.name)
- dir() para listar los nombres que define un módulo
- sys.path: dónde busca Python los módulos y cómo ampliarlo en tiempo de ejecución
- Módulo math: ceil(), floor(), trunc(), factorial(), hypot(), sqrt()
- Módulo random: random(), seed(), choice(), sample()
- Módulo platform: platform(), machine(), processor(), system(), version(), python_implementation(), python_version_tuple()
- __name__ y el idioma if __name__ == "__main__"
- __pycache__ y los archivos compilados .pyc
- Estructura de paquetes: directorios, __init__.py, paquetes anidados y variables privadas (_name) de módulo
- try/except, varias ramas except y el orden en que se revisan
- Atrapar varias excepciones en una sola rama: except (E1, E2)
- except … as e y el atributo args
- Las ramas else y finally y cuándo se ejecuta cada una
- La jerarquía de excepciones integradas: BaseException, Exception, ArithmeticError, LookupError y sus subclases
- raise, raise con una instancia y raise sin argumentos para relanzar
- assert y AssertionError
- Por qué except Exception no atrapa KeyboardInterrupt ni SystemExit
- Definir tus propias clases de excepción y agregarles atributos
- Codificación de caracteres: ASCII, Unicode, code points, UTF-8
- ord() y chr()
- Literales de cadena y secuencias de escape (\n, \t, \\, comillas)
- Indexación, índices negativos y slicing (rebanado), incluidos los pasos
- Inmutabilidad: por qué falla la asignación a elementos
- Recorrer cadenas; in y not in
- Concatenación, replicación y comparación de cadenas (y por qué falla comparar cadenas con números usando <)
- Pruebas de caracteres: isdigit(), isalpha(), isalnum(), isspace(), isupper(), islower()
- join(), split(), find(), rfind(), index() y la diferencia entre find e index
- sorted() sobre cadenas frente a list.sort()
- Ideas clave: clase, objeto, atributo, método, encapsulación, herencia, superclase y subclase
- Variables de instancia frente a variables de clase: declaración, inicialización y uso compartido
- El atributo __dict__ de objetos y clases
- Atributos privados y name mangling (__name se convierte en _ClassName__name)
- Métodos y el parámetro self; constructores (__init__) con argumentos predeterminados
- Introspección: hasattr(), type(), __name__, __module__, __bases__, __class__
- Herencia simple y múltiple, sobrescritura de métodos y super()
- Orden de resolución de métodos (MRO), diamantes y jerarquías inconsistentes
- isinstance(), issubclass() y los operadores is / is not frente a ==
- Polimorfismo y el método __str__()
- Comprensiones de listas, incluidos filtros if y bucles anidados
- Funciones lambda y funciones que reciben una lambda como argumento
- map() y filter(), y el hecho de que devuelven iteradores de un solo uso
- Closures: funciones internas que recuerdan variables de un ámbito envolvente, y late binding
- Generadores: yield, next() y StopIteration
- E/S de archivos: modos de open() (r, w, a, x, b, t, +), texto frente a binario
- Manejadores de flujo (stream handles) y los flujos predefinidos sys.stdin, sys.stdout, sys.stderr
- read(), readline(), readlines(), write(), readinto() con bytearray, close() y with
- Valores de errno (por ejemplo ENOENT, EACCES) en errores de E/S