AI001

Introducción a la Programación con Python

Aprende Python, un lenguaje de programación popular, cubriendo los conceptos básicos para todo, desde el desarrollo web y de software hasta ciencia de datos y aseguramiento de calidad. Las habilidades adquiridas incluyen escribir programas en Python 3 y simplificar el código.

5.0 Calificación
512 Estudiantes

Descripción del curso

📚 Resumen del Curso

Aprende Python, un lenguaje de programación popular, cubriendo los conceptos centrales para todo, desde desarrollo web y de software hasta ciencia de datos y aseguramiento de calidad. Las habilidades adquiridas incluyen escribir programas en Python 3 y simplificar el código.

Un breve resumen de los objetivos principales: Dominar los fundamentos de Python, el flujo de control, las estructuras de datos (listas, cadenas, diccionarios), funciones, módulos y manejo de archivos, culminando con una introducción a la Programación Orientada a Objetos.

🎯 Objetivos de Aprendizaje

  1. Escribir y ejecutar scripts básicos de Python 3, aplicando sintaxis fundamental y tipos de datos integrados (int, float, str).
  2. Implementar lógica de programa compleja utilizando estructuras de flujo de control (if/else, bucles for/while) para gestionar rutas de ejecución.
  3. Diseñar y utilizar funciones y módulos para estructurar programas con mejor reutilización y mantenibilidad.
  4. Gestionar eficazmente datos usando las estructuras centrales de Python, incluyendo listas, cadenas y diccionarios.
  5. Interactuar con fuentes externas de datos realizando operaciones de Entrada/Salida de archivos (texto, CSV y JSON).

🔹 Lección 1: ¡Hola Mundo y Sintaxis Básica

Resumen: Esta lección fundamental introduce los elementos centrales del lenguaje de programación Python, comenzando con el tradicional programa "¡Hola Mundo" usando la función print(). Estableceremos reglas esenciales de sintaxis, cubriendo la importancia de la sangría, la sensibilidad a mayúsculas y minúsculas, y cómo usar comentarios de forma efectiva para documentar el código. Un enfoque significativo estará en las variables, cubriendo declaración, asignación y tipos de datos fundamentales como enteros, flotantes y cadenas, necesarios para almacenar precios y nombres de artículos. Finalmente, aplicaremos estos conceptos inmediatamente al construir el marco de un sistema simple de punto de venta adaptado a una tienda de muebles. Esta aplicación implicará definir variables específicas de artículos (por ejemplo, 'precio_sofa', 'cantidad') y realizar cálculos aritméticos básicos para determinar un total final de compra, consolidando la comprensión del flujo operativo de Python. Resultados de Aprendizaje:

  • Ejecutar el programa estándar "¡Hola Mundo" usando la función print() de Python.
  • Describir y aplicar las reglas básicas de sintaxis de Python, incluyendo la sangría adecuada y el uso efectivo de comentarios.
  • Definir, declarar y asignar valores a variables usando tipos de datos fundamentales apropiados (int, float, str).
  • Utilizar operadores aritméticos básicos para realizar cálculos simples dentro de un programa.
  • Construir la estructura inicial de un sistema de punto de venta, definiendo precios de artículos y calculando un total de transacción.

🔹 Lección 2: Flujo de Control y Lógica

Resumen: Esta lección introduce el concepto fundamental del flujo de control, que determina el orden en que se ejecuta el código de un programa. Comenzaremos explorando la lógica booleana, comprendiendo el tipo de dato bool (True/False) y los operadores relacionales (por ejemplo, ==, >, <) utilizados para crear expresiones condicionales. Se examinará detenidamente la estructura central, la sentencia if, demostrando cómo ejecutar bloques de código solo cuando se cumpla una condición. Luego ampliaremos esto para manejar caminos mutuamente excluyentes usando las sentencias else y elif, permitiendo árboles de decisiones complejos en el código de Python. Finalmente, los estudiantes dominarán los operadores lógicos (and, or, not), lo que les permitirá combinar múltiples comprobaciones condicionales de forma eficiente. Ejemplos prácticos se centrarán en verificar restricciones de entrada de usuario y redirigir la ejecución del programa según criterios específicos. Resultados de Aprendizaje:

  • Definir variables booleanas y usar operadores relacionales (por ejemplo, ==, >, <) para evaluar expresiones condicionales.
  • Construir estructuras básicas de lógica condicional usando la sentencia if.
  • Implementar lógica de decisiones de múltiples caminos usando sentencias else y elif.
  • Explicar el papel crítico de la sangría en la definición de bloques de flujo de control de Python.
  • Aplicar operadores lógicos (and, or, not) para crear pruebas condicionales compuestas.

🔹 Lección 3: Trabajo con Listas

Resumen: Esta lección presenta la lista de Python, el tipo de dato secuencial fundamental para almacenar colecciones ordenadas y modificables. Comenzaremos definiendo cómo crear listas usando corchetes [] y demostrando su capacidad para contener tipos de datos heterogéneos. Se cubrirán extensamente los mecanismos centrales de las listas: indexación y slicing, mostrando a los estudiantes cómo acceder a elementos específicos o subsecciones usando tanto indexación positiva (basada en 0) como negativa. Un punto teórico crucial es la mutabilidad, explicando que las listas pueden modificarse in situ después de su creación. Los ejemplos prácticos se centrarán en métodos esenciales para el manejo de listas, incluyendo agregar elementos (append(), insert()), eliminar elementos (remove(), pop(), palabra clave del) y determinar la longitud (len()). Los estudiantes aprenderán a almacenar y manipular grupos dinámicos de datos, una habilidad crítica para cualquier aplicación de Python. Resultados de Aprendizaje:

  • Definir e inicializar una lista en Python usando la sintaxis adecuada, comprendiendo su papel como secuencia ordenada y mutable.
  • Acceder, modificar y extraer elementos o subsecciones de listas usando indexación positiva, indexación negativa y slicing.
  • Aplicar métodos fundamentales de listas, como append(), insert(), pop() y remove(), para gestionar dinámicamente el contenido de la lista.
  • Explicar el concepto de mutabilidad y diferenciar cómo se gestiona el contenido de las listas frente a tipos de datos inmutables.

🔹 Lección 4: Iteración y Bucles

Resumen: Esta lección introduce el concepto de iteración, una herramienta fundamental de programación que permite a los desarrolladores ejecutar bloques de código repetidamente, lo que lleva a programas más simples y altamente eficientes. Analizaremos las dos estructuras principales de bucles en Python: el bucle for, ideal para iterar sobre una secuencia conocida (como elementos en una lista o números generados por la función range()), y el bucle while, que se ejecuta repetidamente mientras una condición booleana especificada permanezca verdadera. Demostraremos cómo construir bucles robustos, asegurando criterios de terminación adecuados para los bucles while para evitar ejecuciones infinitas. Además, cubriremos mecanismos especializados de control de bucles, incluyendo la instrucción break para salir inmediatamente del bucle, y la instrucción continue para omitir el resto de la iteración actual y pasar a la siguiente, lo que permite un control de flujo complejo para soluciones iterativas. Resultados de Aprendizaje:

  • Diferenciar entre los roles estructurales de los bucles for y while y seleccionar el tipo de bucle adecuado para una tarea de programación dada.
  • Construir y utilizar bucles for para iterar eficientemente sobre secuencias (como listas) y usar la función range() para iteración numérica.
  • Implementar bucles while seguros y controlados, asegurando condiciones claras de terminación para prevenir ejecuciones infinitas.
  • Aplicar las instrucciones break y continue para modificar el flujo estándar de ejecución de bucles según requisitos condicionales específicos.

🔹 Lección 5: Reutilización de Código con Funciones

Resumen: Esta lección introduce el concepto esencial de reutilización de código mediante funciones de Python. Los estudiantes aprenderán primero la sintaxis fundamental para definir una función usando la palabra clave def, comprendiendo la importancia de la indentación adecuada y los docstrings opcionales. Cubriremos cómo estructurar funciones para aceptar entradas mediante parámetros (argumentos) y cómo devolver salidas usando la sentencia return. El beneficio central de las funciones —simplificar el código, mejorar la legibilidad y prevenir redundancias (el principio DRY)— será enfatizado. La aplicación práctica involucrará resolver problemas matemáticos del mundo real. Los estudiantes definirán y llamarán funciones para calcular fórmulas físicas famosas, como energía cinética o fuerza gravitatoria, demostrando cómo las funciones encapsulan lógica específica para uso fácil y repetible en cualquier programa de Python. Resultados de Aprendizaje:

  • Definir el propósito de las funciones en la programación de Python y articular los beneficios de la reutilización de código y la modularidad.
  • Construir y definir funciones simples de Python usando la palabra clave def, incorporando parámetros adecuados y convenciones estándar de nombrado.
  • Llamar correctamente funciones definidas, pasando argumentos requeridos para ejecutar la lógica encapsulada.
  • Utilizar la sentencia return para producir resultados de una función para asignación o cálculo posterior.
  • Aplicar conceptos de programación funcional para implementar y calcular fórmulas físicas famosas, como calcular distancia o velocidad.

🔹 Lección 6: Manipulación de Cadenas

Resumen: Esta lección profundiza en el objeto cadena de Python, fundamental para manejar datos de texto. Comenzaremos explorando cómo se crean las cadenas, incluyendo el uso de comillas simples frente a dobles, y discutiendo su naturaleza inmutable. Un enfoque central será acceder y reorganizar texto usando indexación y slicing, lo que permite extraer caracteres o subcadenas específicas de forma eficiente. Luego cubriremos métodos esenciales para manipulación de texto, incluyendo limpiar texto usando .strip(), cambiar el caso con .lower() y .upper(), y verificar contenido usando métodos como .startswith(). Finalmente, los estudiantes dominarán el proceso de descomponer grandes bloques de texto en listas de palabras o líneas usando el poderoso método .split(), y posteriormente reconstruirlos de forma eficiente usando el método versátil .join(), lo que permite aplicaciones de procesamiento automático de texto. Resultados de Aprendizaje:

  • Definir el objeto cadena de Python y aplicar indexación y slicing para acceder a caracteres o subcadenas específicas.
  • Utilizar métodos comunes de cadenas como .upper(), .lower() y .strip() para limpiar y formatear datos de texto.
  • Implementar técnicas de interpolación de cadenas usando f-strings y el método .format() para crear texto dinámico.
  • Demostrar el uso de .split() para descomponer texto en listas y el método .join() para reconstruir secuencias en cadenas.

🔹 Lección 7: Módulos de Python

Resumen: Esta lección introduce el concepto esencial de los módulos de Python, que permiten organizar código y ampliar enormemente la funcionalidad mediante archivos reutilizables. Definiremos qué es un módulo (un archivo estándar .py) y explicaremos por qué usar módulos promueve la reutilización de código y la claridad. El enfoque principal será dominar la sentencia import, cubriendo la sintaxis estándar (import nombre_modulo), alias (import modulo as alias) y importaciones específicas (from modulo import item) para gestionar eficazmente el espacio de nombres del programa. Exploraremos ejemplos prácticos usando módulos integrados fundamentales de la Biblioteca Estándar de Python, como el módulo math (para funciones como sqrt o constantes como pi) y el módulo random. Finalmente, ilustraremos cómo crear e implementar un módulo personalizado simple para estructurar y reutilizar sus propias funciones en diferentes archivos de Python. Resultados de Aprendizaje:

  • Definir qué es un módulo de Python y explicar su papel en extender funcionalidades y organizar programas grandes.
  • Utilizar correctamente la sentencia import estándar y sus variantes (alias y importaciones específicas).
  • Demostrar la capacidad de llamar y utilizar funciones de módulos integrados comunes como math y random.
  • Explicar cómo los diferentes métodos de importación afectan el espacio de nombres del programa actual.
  • Crear un módulo de Python personalizado simple que contenga funciones reutilizables.

🔹 Lección 8: Uso de Diccionarios

Resumen: Esta lección profundiza en el diccionario de Python, una estructura de datos fundamental y potente usada para mapear claves únicas a valores específicos. Comenzaremos definiendo la estructura del diccionario usando llaves y pares clave-valor separados por comas, destacando que los diccionarios son mutables y optimizados para búsquedas rápidas basadas en la clave. La lección cubrirá operaciones esenciales, incluyendo cómo acceder a valores de forma eficiente usando notación entre corchetes, y cómo añadir nuevos pares o modificar valores existentes de forma dinámica. Exploraremos las restricciones clave, señalando que las claves deben ser tipos inmutables (como cadenas o tuplas). Finalmente, los estudiantes aprenderán métodos críticos como ".keys()", ".values()" y ".items()" para ver el contenido del diccionario, y cómo iterar sobre estos elementos usando bucles, consolidando su capacidad para almacenar y recuperar datos complejos y no estructurados de forma efectiva. Resultados de Aprendizaje:

  • Definir la estructura de diccionario de Python y articular su función principal como contenedor de mapeo clave-valor.
  • Construir e inicializar un diccionario usando sintaxis literal y asignar y recuperar valores correctamente según sus claves correspondientes.
  • Realizar operaciones CRUD (Crear, Leer, Actualizar, Eliminar) sobre elementos de diccionario usando notación entre corchetes y la palabra clave del.
  • Utilizar métodos integrados de diccionario, incluyendo .keys(), .values() y .items(), para extraer de forma eficiente distintas vistas de los datos almacenados.
  • Aplicar diccionarios en ejemplos de codificación prácticos, como modelar un perfil de usuario o gestionar configuraciones.

🔹 Lección 9: Entrada y Salida de Archivos (I/O)

Resumen: Esta lección introduce la Entrada y Salida de Archivos (I/O) en Python, permitiendo automatización y persistencia de datos. Comenzamos dominando las operaciones centrales de manejo de archivos: abrir archivos usando la función integrada open(), especificar diversos modos de acceso (lectura 'r', escritura 'w', anexar 'a'), y entender el papel crucial del administrador de contexto with open() as f: para asegurar que los archivos se cierren automáticamente, evitando fugas de recursos. Posteriormente, exploraremos lectura y escritura de datos no estructurados usando archivos de texto estándar (.txt). La segunda mitad se centra en datos estructurados: utilizar el módulo dedicado csv para leer y escribir valores separados por comas de forma eficiente, e implementar el módulo json (específicamente json.load() y json.dump()) para manejar estructuras de datos JSON complejas y anidadas, que son vitales para interactuar con APIs y archivos de configuración modernos. El dominio de estos conceptos es clave para construir aplicaciones de Python prácticas que interactúen con fuentes externas de datos. Resultados de Aprendizaje:

  • Explicar el proceso fundamental de manejo de archivos en Python, incluyendo el uso de la función open() y especificar modos de lectura/escritura/anexar.
  • Implementar la sentencia with (administrador de contexto) para gestionar de forma segura y confiable los recursos de archivos, asegurando siempre que se cierren.
  • Escribir código Python para leer y escribir datos secuenciales en archivos de texto estándar (.txt).
  • Aplicar el módulo integrado csv para leer, analizar y generar datos en formato CSV de forma programática.
  • Utilizar el módulo json para serializar objetos de Python en formato JSON y deserializar datos JSON de nuevo en estructuras de Python utilizable.

🔹 Lección 10: Introducción a Clases y POO

Resumen: Esta lección proporciona una introducción fundamental a la Programación Orientada a Objetos (POO) en Python. Comenzaremos aclarando la distinción entre los tipos de datos estándar y nativos de Python (como int, str, list) y las potentes estructuras definidas por el usuario conocidas como clases. Los aprendices comprenderán que una clase sirve como plano, mientras que un objeto es una instancia concreta derivada de ese plano. Cubriremos la sintaxis esencial para definir una clase usando la palabra clave class, centrándonos fuertemente en cómo inicializar el estado del objeto usando el método especial __init__ (el constructor) y cómo definir métodos operativos. Finalmente, exploraremos cómo estos conceptos permiten la encapsulación —juntar datos y los métodos que operan sobre esos datos— y brevemente discutiremos el papel de las interfaces en definir contratos de comportamiento claros para los objetos, sentando las bases para arquitecturas de software complejas. Resultados de Aprendizaje:

  • Distinguir entre tipos de datos integrados de Python y tipos de clases personalizadas definidas por el usuario.
  • Definir y articular la diferencia fundamental entre una clase y un objeto (instancia).
  • Implementar una clase básica de Python, incluyendo instanciación y definición de atributos de instancia.
  • Utilizar el método __init__ (constructor) para inicializar adecuadamente el estado del objeto al crearse.
  • Explicar cómo la encapsulación estructura el código y contribuye a la reutilización y mantenibilidad del código.