Herramientas de usuario

Herramientas del sitio


informatica:programacion:cursos:programacion_desde_cero_con_python

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
informatica:programacion:cursos:programacion_desde_cero_con_python [2026/10/31 20:48] – [5.2. uv (gestor de paquetes y proyectos)] tempwininformatica:programacion:cursos:programacion_desde_cero_con_python [2026/11/01 01:22] (actual) – [Bloque I. Empezar a programar] tempwin
Línea 1: Línea 1:
 ====== Curso de programación desde cero con Python ====== ====== Curso de programación desde cero con Python ======
  
-El curso estará orientado a personas sin experiencia previa en programación. Por tanto, comenzaremos por aprender a pensar y razonar como programadores, antes de escribir código Python. +Curso orientado a personas sin experiencia previa en programación. Aprenderemos a pensar y razonar como programadores, antes de escribir código Python.
- +
-Seguiremos esta secuencia de aprendizaje: +
- +
-Comprender → observar → predecir → ejecutar → modificar → crear → revisar.+
  
 ===== Índice ===== ===== Índice =====
Línea 26: Línea 22:
   * Instalación en Windows y Linux.   * Instalación en Windows y Linux.
   * Editores de código e IDE.   * Editores de código e IDE.
-  * Archivos .py y organización del trabajo.+  * Archivos '.py' y organización del trabajo.
   * Primer programa.   * Primer programa.
   * Ejecución desde el editor y la terminal.   * Ejecución desde el editor y la terminal.
Línea 58: Línea 54:
 **Módulo 5. [[.:programacion_desde_cero_con_python:entrada_salida_y_cadenas_de_texto|Entrada, salida y cadenas de texto]]** **Módulo 5. [[.:programacion_desde_cero_con_python:entrada_salida_y_cadenas_de_texto|Entrada, salida y cadenas de texto]]**
  
-  * print() e input().+  * ''print()'' e ''input()''.
   * Conversión y validación de datos.   * Conversión y validación de datos.
   * Cadenas y concatenación.   * Cadenas y concatenación.
Línea 70: Línea 66:
  
   * Condiciones.   * Condiciones.
-  * if, elif y else.+  * ''if'', ''elif'' y ''else''.
   * Condiciones compuestas.   * Condiciones compuestas.
   * Valores verdaderos y falsos.   * Valores verdaderos y falsos.
   * Condiciones anidadas.   * Condiciones anidadas.
   * Expresiones condicionales.   * Expresiones condicionales.
-  * match y case.+  * ''match'' y ''case''.
   * Casos límite y errores lógicos.   * Casos límite y errores lógicos.
  
Línea 81: Línea 77:
  
   * Repetición de instrucciones.   * Repetición de instrucciones.
-  * while y for. +  * ''while'' y ''for''. 
-  * range().+  * ''range()''.
   * Contadores y acumuladores.   * Contadores y acumuladores.
-  * break y continue.+  * ''break'' y ''continue''.
   * Bucles anidados.   * Bucles anidados.
-  * Cláusula else de los bucles.+  * Cláusula ''else'' de los bucles.
   * Bucles infinitos.   * Bucles infinitos.
   * Elección de estructuras de repetición.   * Elección de estructuras de repetición.
Línea 308: Línea 304:
  
 ===== Recursos ===== ===== Recursos =====
- 
- 
  
   * **Documentación oficial de Python 3.15 (inglés):** [https://docs.python.org/3.15/](https://docs.python.org/3.15/)   * **Documentación oficial de Python 3.15 (inglés):** [https://docs.python.org/3.15/](https://docs.python.org/3.15/)
Línea 319: Línea 313:
 > **[BUENA PRÁCTICA]** La documentación oficial permite cambiar de versión desde el selector de la esquina superior izquierda. Si trabajas con una versión distinta de 3.15 (por ejemplo, 3.12 o 3.13), asegúrate de consultar la documentación de **tu** versión, no la más reciente. > **[BUENA PRÁCTICA]** La documentación oficial permite cambiar de versión desde el selector de la esquina superior izquierda. Si trabajas con una versión distinta de 3.15 (por ejemplo, 3.12 o 3.13), asegúrate de consultar la documentación de **tu** versión, no la más reciente.
  
-### 2. PEPs fundamentales +  * Real Python (tutoriales y artículos): https://realpython.com 
- +  * Python Weekly (boletín de novedades): https://www.pythonweekly.com/ 
-Las PEPs (*Python Enhancement Proposals*) son los documentos que definen el lenguaje, sus convenciones y sus procesos. Estas son las que se han citado en el curso: +  * PyCoder's Weekly (boletín): https://pycoders.com/ 
- +  * Awesome Python (lista curada de bibliotecas y recursos): https://awesome-python.com/ 
-#### 2.1. Estilo y documentación +  * Python Discourse (foro oficial de la comunidad): https://discuss.python.org/
- +
-- **PEP 8 – Style Guide for Python Code:** [https://peps.python.org/pep-0008/](https://peps.python.org/pep-0008/) +
-- **PEP 257 – Docstring Conventions:** [https://peps.python.org/pep-0257/](https://peps.python.org/pep-0257/) +
-- **PEP 20 – The Zen of Python:** [https://peps.python.org/pep-0020/](https://peps.python.org/pep-0020/) +
- +
-#### 2.2. Sistema de tipos +
- +
-- **PEP 484 – Type Hints:** [https://peps.python.org/pep-0484/](https://peps.python.org/pep-0484/) +
-- **PEP 557 – Data Classes:** [https://peps.python.org/pep-0557/](https://peps.python.org/pep-0557/) +
-- **PEP 649 – Deferred Evaluation Of Annotations:** [https://peps.python.org/pep-0649/](https://peps.python.org/pep-0649/) +
-- **PEP 661 – Sentinel Values:** [https://peps.python.org/pep-0661/](https://peps.python.org/pep-0661/) +
-- **PEP 747 – Annotating Type Forms (`TypeForm`):** [https://peps.python.org/pep-0747/](https://peps.python.org/pep-0747/) +
-- **PEP 781 – Make `TYPE_CHECKING` a built-in constant:** [https://peps.python.org/pep-0781/](https://peps.python.org/pep-0781/) +
- +
-#### 2.3. Novedades de Python 3.15 +
- +
-- **PEP 686 – Make UTF-8 mode default:** [https://peps.python.org/pep-0686/](https://peps.python.org/pep-0686/) +
-- **PEP 703 – Making the Global Interpreter Lock Optional (free-threading):** [https://peps.python.org/pep-0703/](https://peps.python.org/pep-0703/) +
-- **PEP 798 – Unpacking in Comprehensions:** [https://peps.python.org/pep-0798/](https://peps.python.org/pep-0798/) +
-- **PEP 810 – Explicit lazy imports:** [https://peps.python.org/pep-0810/](https://peps.python.org/pep-0810/) +
-- **PEP 814 – Add `frozendict` built-in type:** [https://peps.python.org/pep-0814/](https://peps.python.org/pep-0814/) +
- +
-#### 2.4. Empaquetado y estructura de proyectos +
- +
-- **PEP 518 – Specifying Minimum Build System Requirements (`pyproject.toml`):** [https://peps.python.org/pep-0518/](https://peps.python.org/pep-0518/) +
-- **PEP 621 – Storing project metadata in `pyproject.toml`:** [https://peps.python.org/pep-0621/](https://peps.python.org/pep-0621/) +
-- **PEP 249 – Python Database API Specification v2.0:** [https://peps.python.org/pep-0249/](https://peps.python.org/pep-0249/) +
- +
-#### 2.5. Otros patrones y protocolos +
- +
-- **PEP 634 – Structural Pattern Matching (`match`/`case`):** [https://peps.python.org/pep-0634/](https://peps.python.org/pep-0634/) +
-- **PEP 654 – Exception Groups and `except*`:** [https://peps.python.org/pep-0654/](https://peps.python.org/pep-0654/) +
-- **PEP 791 – `math.integer`:** [https://peps.python.org/pep-0791/](https://peps.python.org/pep-0791/) +
- +
---- +
- +
-### 3. Biblioteca estándar por módulos +
- +
-Cada módulo de la biblioteca estándar tiene su propia página de documentación. Estas son las que se han utilizado en el curso: +
- +
-#### 3.1. Fundamentos del lenguaje +
- +
-- **Tipos incorporados (`str`, `list`, `dict`, `set`, `tuple`, `range`, etc.):** [https://docs.python.org/3.15/library/stdtypes.html](https://docs.python.org/3.15/library/stdtypes.html) +
-- **Funciones incorporadas (`print`, `input`, `len`, `type`, `isinstance`, `breakpoint`, `property`, etc.):** [https://docs.python.org/3.15/library/functions.html](https://docs.python.org/3.15/library/functions.html) +
-- **Mini-lenguaje de formato (f-strings):** [https://docs.python.org/3.15/library/string.html#format-specification-mini-language](https://docs.python.org/3.15/library/string.html#format-specification-mini-language) +
- +
-#### 3.2. Módulos de uso general +
- +
-- **`datetime` – Fechas y horas:** [https://docs.python.org/3.15/library/datetime.html](https://docs.python.org/3.15/library/datetime.html) +
-- **`statistics` – Funciones estadísticas:** [https://docs.python.org/3.15/library/statistics.html](https://docs.python.org/3.15/library/statistics.html) +
-- **`math` – Funciones matemáticas:** [https://docs.python.org/3.15/library/math.html](https://docs.python.org/3.15/library/math.html) +
-- **`math.integer` – Funciones matemáticas para enteros (novedad 3.15):** [https://docs.python.org/3.15/library/math.integer.html](https://docs.python.org/3.15/library/math.integer.html) +
-- **`random` – Números pseudoaleatorios:** [https://docs.python.org/3.15/library/random.html](https://docs.python.org/3.15/library/random.html) +
-- **`secrets` – Números aleatorios seguros:** [https://docs.python.org/3.15/library/secrets.html](https://docs.python.org/3.15/library/secrets.html) +
-- **`argparse` – Interfaz de línea de comandos:** [https://docs.python.org/3.15/library/argparse.html](https://docs.python.org/3.15/library/argparse.html) +
-- **`os` – Interfaz con el sistema operativo (`os.environ`):** [https://docs.python.org/3.15/library/os.html](https://docs.python.org/3.15/library/os.html) +
-- **`pathlib` – Rutas orientadas a objetos:** [https://docs.python.org/3.15/library/pathlib.html](https://docs.python.org/3.15/library/pathlib.html) +
-- **`re` – Expresiones regulares:** [https://docs.python.org/3.15/library/re.html](https://docs.python.org/3.15/library/re.html) +
-- **`urllib.request` – Apertura de URLs:** [https://docs.python.org/3.15/library/urllib.request.html](https://docs.python.org/3.15/library/urllib.request.html) +
-- **`sqlite3` – Base de datos SQLite:** [https://docs.python.org/3.15/library/sqlite3.html](https://docs.python.org/3.15/library/sqlite3.html) +
-- **`csv` – Lectura y escritura de CSV:** [https://docs.python.org/3.15/library/csv.html](https://docs.python.org/3.15/library/csv.html) +
-- **`json` – Codificación y decodificación JSON:** [https://docs.python.org/3.15/library/json.html](https://docs.python.org/3.15/library/json.html) +
-- **`shelve` – Persistencia de objetos Python:** [https://docs.python.org/3.15/library/shelve.html](https://docs.python.org/3.15/library/shelve.html) +
-- **`copy` – Copia superficial y profunda:** [https://docs.python.org/3.15/library/copy.html](https://docs.python.org/3.15/library/copy.html) +
-- **`logging` – Registro de eventos:** [https://docs.python.org/3.15/library/logging.html](https://docs.python.org/3.15/library/logging.html) +
-- **`dataclasses` – Clases de datos:** [https://docs.python.org/3.15/library/dataclasses.html](https://docs.python.org/3.15/library/dataclasses.html) +
-- **`typing` – Anotaciones de tipos:** [https://docs.python.org/3.15/library/typing.html](https://docs.python.org/3.15/library/typing.html) +
-- **`unittest` – Marco de pruebas unitarias:** [https://docs.python.org/3.15/library/unittest.html](https://docs.python.org/3.15/library/unittest.html) +
-- **`unittest.mock` – Objetos simulados para pruebas:** [https://docs.python.org/3.15/library/unittest.mock.html](https://docs.python.org/3.15/library/unittest.mock.html) +
-- **`pdb` – Depurador de Python:** [https://docs.python.org/3.15/library/pdb.html](https://docs.python.org/3.15/library/pdb.html) +
-- **`traceback` – Formato de los mensajes de error:** [https://docs.python.org/3.15/library/traceback.html](https://docs.python.org/3.15/library/traceback.html) +
-- **`__main__` – Entorno de código de máximo nivel:** [https://docs.python.org/3.15/library/__main__.html](https://docs.python.org/3.15/library/__main__.html) +
-- **Advertencias de seguridad (*Security Considerations*):** [https://docs.python.org/3.15/library/security_warnings.html](https://docs.python.org/3.15/library/security_warnings.html) +
- +
-> **[AMPLIACIÓN]** Para explorar la biblioteca estándar completa, el **índice alfabético** es la mejor herramienta: [https://docs.python.org/3.15/py-modindex.html](https://docs.python.org/3.15/py-modindex.html). También puedes usar `help()` en el intérprete o `pydoc` desde la terminal. +
- +
---- +
- +
-### 4. Referencia del lenguaje y modelo de datos +
- +
-- **Modelo de datos (métodos especiales, protocolos):** [https://docs.python.org/3.15/reference/datamodel.html](https://docs.python.org/3.15/reference/datamodel.html) +
-- **Expresiones (operadores, comprensiones, condicionales):** [https://docs.python.org/3.15/reference/expressions.html](https://docs.python.org/3.15/reference/expressions.html) +
-- **Sentencias compuestas (`if`, `for`, `while`, `try`, `match`, `with`):** [https://docs.python.org/3.15/reference/compound_stmts.html](https://docs.python.org/3.15/reference/compound_stmts.html) +
-- **Sistema de importación:** [https://docs.python.org/3.15/reference/import.html](https://docs.python.org/3.15/reference/import.html) +
-- **Prioridad de operadores:** [https://docs.python.org/3.15/reference/expressions.html#operator-precedence](https://docs.python.org/3.15/reference/expressions.html#operator-precedence) +
- +
---- +
- +
-### 5. Herramientas de desarrollo y calidad +
- +
-#### 5.1. Ruff (linter y formateador) +
- +
-- **Documentación oficial:** [https://docs.astral.sh/ruff/](https://docs.astral.sh/ruff/) +
-- **Configuración:** [https://docs.astral.sh/ruff/configuration/](https://docs.astral.sh/ruff/configuration/) +
-- **Reglas disponibles:** [https://docs.astral.sh/ruff/rules/](https://docs.astral.sh/ruff/rules/) +
-- **Regla `RUF017` (desempaquetado en comprensiones):** [https://docs.astral.sh/ruff/rules/unpacked-list-comprehension/](https://docs.astral.sh/ruff/rules/unpacked-list-comprehension/) +
- +
- +
-### 6. Control de versiones, terminal y empaquetado +
- +
-  * **Pro Git (libro gratuito en español):** [https://git-scm.com/book/es/v2](https://git-scm.com/book/es/v2) +
- +
- +
-  * **`venv` – Creación de entornos virtuales:** [https://docs.python.org/3.15/library/venv.html](https://docs.python.org/3.15/library/venv.html) +
-  * **`pip` – Instalador de paquetes:** [https://pip.pypa.io/](https://pip.pypa.io/) +
-  * **Real Python (tutoriales y artículos):** [https://realpython.com/](https://realpython.com/) +
-  * **Python Weekly (boletín de novedades):** [https://www.pythonweekly.com/](https://www.pythonweekly.com/) +
-  * **PyCoder's Weekly (boletín):** [https://pycoders.com/](https://pycoders.com/) +
-  * **Awesome Python (lista curada de bibliotecas y recursos):** [https://awesome-python.com/](https://awesome-python.com/) +
-  * **Python Discourse (foro oficial de la comunidad):** [https://discuss.python.org/](https://discuss.python.org/)+
informatica/programacion/cursos/programacion_desde_cero_con_python.1793476119.txt.gz · Última modificación: por tempwin