Curso Completo de Python y SQL
Introducción
Python y SQL son dos de las herramientas más utilizadas en el mundo del desarrollo de
software y análisis de datos. Con este curso, aprenderás desde los fundamentos hasta
técnicas avanzadas, permitiéndote construir soluciones eficientes y optimizadas.
A lo largo del curso, trabajaremos con ejercicios prácticos y proyectos que te ayudarán a
afianzar cada concepto. Ya sea que quieras iniciarte en la programación, mejorar tus
habilidades o especializarte como analista de datos, este curso te dará una base sólida
para lograrlo.
Módulo 1: Introducción a Python (64 lecciones)
1. Historia y ventajas de Python
Python es un lenguaje de programación de alto nivel, interpretado y multipropósito.
Fue creado a finales de los años 80 por Guido van Rossum, un programador
holandés que buscaba un lenguaje sencillo y legible, pero poderoso. La primera
versión oficial de Python (Python 0.9.0) se lanzó en 1991.
Desde entonces, Python ha evolucionado significativamente, con versiones
mejoradas que han ampliado su funcionalidad y optimización. Actualmente, es uno
de los lenguajes más utilizados en desarrollo web, inteligencia artificial, análisis de
datos, ciberseguridad y muchas otras áreas.
¿Por qué Python se ha vuelto tan popular?
Python ha ganado una enorme popularidad debido a su simplicidad y versatilidad. Aquí
hay algunas razones clave:
1. Sintaxis sencilla y fácil de aprender
o Python usa una sintaxis clara y parecida al inglés, lo que lo hace ideal para
principiantes.
o No requiere el uso de llaves {} o punto y coma ;, lo que lo hace más
legible.
2. Gran comunidad y soporte
o Python tiene una comunidad global activa que contribuye con librerías,
documentación y soluciones a problemas comunes.
o Existen foros como Stack Overflow y documentación oficial que facilitan el
aprendizaje.
3. Multipropósito y multiplataforma
o Python se usa en desarrollo web, ciencia de datos, inteligencia artificial,
automatización, juegos, ciberseguridad y más.
o Funciona en Windows, macOS y Linux sin necesidad de grandes cambios
en el código.
4. Gran cantidad de bibliotecas y frameworks
o Python cuenta con bibliotecas como NumPy, Pandas y TensorFlow para
ciencia de datos e IA.
o Frameworks como Django y Flask facilitan el desarrollo web.
5. Uso en empresas y tecnología moderna
o Empresas como Google, Facebook, Netflix y Amazon usan Python en sus
sistemas.
o Es un pilar en áreas como machine learning, análisis de datos y
automatización de tareas.
Ventajas de Python sobre otros lenguajes de
programación
Python se compara con otros lenguajes como C, Java y JavaScript, pero tiene ciertas
ventajas clave:
Característica Python Java C/C++ JavaScript
Facilidad de
aprendizaje ✅ Muy fácil ❌ Más difícil ❌ Más complejo ✅ Fácil pero
confuso
Código más
corto ✅ Sí ❌ No ❌ No ✅ Sí
Eficiencia en
desarrollo ✅ Rápido ❌ Lento ❌ Lento ✅ Rápido
rápido
Uso en
inteligencia ✅ Popular ✅ Menos popular ❌ Poco usado ❌ No usado
artificial
Rendimiento
❌ Lento ✅ Rápido ✅ Muy rápido ✅ Rápido
Ejecuta en el
navegador ❌ No ❌ No ❌ No ✅ Sí
Conclusión: Python es ideal para quienes buscan un lenguaje fácil de aprender, versátil y con gran
cantidad de bibliotecas. Sin embargo, en aplicaciones que requieren máxima velocidad, como
videojuegos o sistemas embebidos, C++ puede ser una mejor opción.
2. Instalación y configuración de Python
Python se puede instalar fácilmente en Windows, macOS y Linux. A continuación, te mostraré
cómo descargar e instalar Python en cada sistema operativo y cómo verificar que la instalación fue
exitosa.
Descargar e instalar Python
1. Ir a la página oficial de Python
o Visita [Link]
o La página detectará automáticamente tu sistema operativo y te mostrará la
versión más reciente disponible.
2. Seleccionar la versión de Python
o Se recomienda descargar la última versión estable de Python 3.x (Python
2 ya no tiene soporte).
3. Instalar Python en Windows
o Descarga el instalador .exe y ejecútalo.
o Marca la casilla "Add Python to PATH" antes de instalar (esto permite
ejecutar Python desde cualquier lugar en la terminal).
o Haz clic en "Install Now" y espera a que finalice la instalación.
4. Instalar Python en macOS
o Descarga el archivo .pkg desde la página oficial.
o Ábrelo y sigue las instrucciones de instalación.
o También puedes instalar Python usando Homebrew con el siguiente
comando en la terminal:
bash
CopiarEditar
brew install python
5. Instalar Python en Linux
o En la mayoría de distribuciones, Python ya viene preinstalado. Para comprobarlo,
abre la terminal y escribe:
bash
CopiarEditar
python3 --version
o Si no está instalado, puedes agregarlo con el siguiente comando:
bash
CopiarEditar
sudo apt install python3 # Para distribuciones basadas en
Debian (Ubuntu, Mint)
sudo dnf install python3 # Para Fedora
sudo pacman -S python # Para Arch Linux
Verificación de instalación en diferentes sistemas
operativos
Después de la instalación, es importante verificar que Python está correctamente instalado.
En Windows:
1. Abre el Símbolo del sistema (CMD) o PowerShell.
2. Escribe el siguiente comando y presiona Enter:
bash
CopiarEditar
python --version
3. Debería mostrar algo como:
nginx
CopiarEditar
Python 3.x.x
En macOS y Linux:
1. Abre la terminal.
2. Escribe:
bash
CopiarEditar
python3 --version
3. Si Python está instalado, verás una salida similar a:
nginx
CopiarEditar
Python 3.x.x
Si el comando no funciona en Windows, prueba escribir python3 --version o reinicia el
equipo para asegurarte de que los cambios en las variables de entorno se aplicaron
correctamente.
3. Uso del intérprete y ejecución de scripts
Python se ejecuta a través de un intérprete, lo que permite escribir y ejecutar código en
tiempo real. En este apartado, veremos cómo utilizar el intérprete de Python y cómo ejecutar
scripts desde la terminal.
¿Qué es el intérprete de Python?
El intérprete de Python es un programa que lee y ejecuta el código Python línea por línea. Existen
dos formas principales de usarlo:
1. Modo interactivo (consola REPL – Read-Eval-Print Loop).
2. Modo script (ejecutando archivos .py en la terminal).
El modo interactivo es útil para probar pequeños fragmentos de código rápidamente, mientras
que el modo script permite escribir programas completos en archivos .py.
Ejecutar código en la consola interactiva
El modo interactivo permite escribir y ejecutar código directamente en la consola de Python. Para
acceder a él:
🔹 En Windows:
1. Abre el Símbolo del sistema (CMD) o PowerShell.
2. Escribe python o python3 y presiona Enter.
3. Aparecerá algo como esto:
cpp
CopiarEditar
Python 3.x.x (default, ...)
Type "help", "copyright", "credits" or "license" for more
information.
>>>
4. En este modo, puedes escribir código directamente y ver el resultado.
python
CopiarEditar
>>> print("¡Hola, Python!")
¡Hola, Python!
🔹 En macOS y Linux:
1. Abre la terminal.
2. Escribe python3 y presiona Enter.
3. Verás el mismo intérprete interactivo (>>>) listo para recibir comandos.
Para salir del modo interactivo, usa el comando:
python
CopiarEditar
exit()
O presiona Ctrl + Z en Windows o Ctrl + D en macOS/Linux.
Cómo ejecutar un script Python desde la terminal
Si bien el modo interactivo es útil para pruebas rápidas, la mayoría de los programas se guardan en
archivos .py y se ejecutan desde la terminal o línea de comandos.
1. Crear un archivo Python
1. Abre un editor de texto (Bloc de notas, VS Code, PyCharm, etc.).
2. Escribe el siguiente código:
python
CopiarEditar
print("¡Hola, mundo desde un script!")
3. Guarda el archivo con el nombre [Link].
2. Ejecutar el script en la terminal
🔹 En Windows:
1. Abre la carpeta donde guardaste el archivo [Link].
2. Escribe cmd en la barra de dirección del Explorador y presiona Enter.
3. Ejecuta el script con:
bash
CopiarEditar
python [Link]
O si python no funciona, prueba con:
bash
CopiarEditar
python3 [Link]
🔹 En macOS y Linux:
1. Abre la terminal.
2. Navega hasta la carpeta donde guardaste [Link] usando el comando cd.
3. Ejecuta el script con:
bash
CopiarEditar
python3 [Link]
Después de ejecutar el comando, deberías ver la salida en la terminal:
CopiarEditar
¡Hola, mundo desde un script!
4. Primeros pasos con Python
En este apartado aprenderás la estructura básica de un programa en Python y escribirás tu primer
programa: "Hola, Mundo".
Estructura básica de un programa en Python
Python es un lenguaje de programación interpretado, lo que significa que puedes escribir código y
ejecutarlo directamente sin necesidad de compilarlo.
1. Comentarios en Python
Los comentarios sirven para agregar notas en el código sin afectar su ejecución.
Comentario de una línea:
python
CopiarEditar
# Esto es un comentario en Python
print("Hola, Python") # Comentario al final de la línea
Comentarios de varias líneas (con """ o '''):
python
CopiarEditar
"""
Este es un comentario
de varias líneas
"""
print("Python es genial")
2. Uso de la función print()
La función print() se usa para mostrar mensajes en pantalla.
python
CopiarEditar
print("Bienvenido a Python")
3. Variables y tipos de datos básicos
En Python no es necesario declarar el tipo de variable, simplemente se asigna un valor:
python
CopiarEditar
nombre = "Juan"
edad = 25
altura = 1.75
es_estudiante = True
Hola Mundo: Primer programa en Python
El clásico "Hola, Mundo" es el primer programa que se escribe en casi cualquier lenguaje de
programación. Veamos cómo hacerlo en Python.
Ejemplo 1: Ejecutando directamente en el intérprete
Si abres el intérprete interactivo de Python (escribiendo python en la terminal), puedes escribir:
python
CopiarEditar
print("¡Hola, Mundo!")
Salida:
CopiarEditar
¡Hola, Mundo!
Ejemplo 2: Creando un archivo hola_mundo.py
1. Abre un editor de texto como VS Code o Bloc de Notas.
2. Escribe el siguiente código:
python
CopiarEditar
print("¡Hola, Mundo en Python!")
3. Guarda el archivo como hola_mundo.py.
4. Abre la terminal y ejecuta el script con:
bash
CopiarEditar
python hola_mundo.py
(En macOS/Linux usa python3 en lugar de python).
Ejemplo 3: Pedir el nombre del usuario
Podemos mejorar el programa pidiendo un nombre al usuario:
python
CopiarEditar
nombre = input("¿Cómo te llamas? ")
print("¡Hola, " + nombre + "! Bienvenido a Python.")
Salida esperada:
css
CopiarEditar
¿Cómo te llamas? Juan
¡Hola, Juan! Bienvenido a Python.
5. El intérprete interactivo de Python
Python ofrece un entorno interactivo conocido como REPL (Read-Eval-Print Loop), que
permite ejecutar código línea por línea y obtener resultados en tiempo real. Este es un recurso
útil para probar ideas rápidamente, aprender sintaxis y depurar código.
¿Qué es el REPL y cómo usarlo?
REPL: Read-Eval-Print Loop
El REPL es un modo interactivo donde puedes escribir código Python y ver los resultados de
inmediato. Funciona en tres pasos:
1. Read (Leer): Recibe la entrada del usuario.
2. Eval (Evaluar): Interpreta y ejecuta la entrada.
3. Print (Imprimir): Muestra el resultado de la ejecución.
4. Loop (Repetir): Vuelve al primer paso y espera más instrucciones.
Cómo acceder al intérprete interactivo
1. Abrir la terminal o consola del sistema operativo
o En Windows: Presiona Win + R, escribe cmd y presiona Enter.
o En macOS/Linux: Abre la terminal (Ctrl + Alt + T en Linux).
2. Escribir python o python3 y presionar Enter
bash
CopiarEditar
python
o en macOS/Linux:
bash
CopiarEditar
python3
3. Verás algo como esto:
bash
CopiarEditar
Python 3.x.x (default, ...)
Type "help", "copyright", "credits" or "license" for more
information.
>>>
La línea >>> indica que el intérprete está esperando instrucciones.
4. Escribir comandos y ver resultados en tiempo real
python
CopiarEditar
>>> 2 + 2
4
>>> print("Hola, Python!")
Hola, Python!
>>> nombre = "Juan"
>>> nombre
'Juan'
Puedes escribir código sin necesidad de guardarlo en un archivo y ver inmediatamente la
salida.
Ventajas de programar interactuando con el intérprete
✅ Ideal para pruebas rápidas: Permite ejecutar líneas de código sin necesidad de escribir
un archivo completo.
✅ Fácil depuración: Puedes probar fragmentos de código y corregir errores antes de
implementarlos en un programa más grande.
✅ Aprendizaje más dinámico: Facilita la exploración de funciones, métodos y tipos de
datos sin complicaciones.
✅ Ejecución inmediata: No requiere compilación, lo que ahorra tiempo en el desarrollo y
la experimentación.
Ejemplo: Experimentando con tipos de datos en el REPL
python
CopiarEditar
>>> 10 + 5
15
>>> "Hola" + " " + "Mundo"
'Hola Mundo'
>>> edad = 25
>>> edad * 2
50
>>> type(edad)
<class 'int'>
📌 Tip: Si necesitas salir del intérprete interactivo, escribe exit() o presiona Ctrl + Z en
Windows o Ctrl + D en macOS/Linux.
6. Primeros comandos y funciones básicas
en Python
Python es un lenguaje sencillo y poderoso. Para empezar a interactuar con él, es
fundamental conocer algunas funciones básicas como print(), input() y cómo
agregar comentarios en el código.
Uso de la función print()
La función print() se usa para mostrar información en la pantalla. Puede imprimir texto,
números, variables, resultados de operaciones y más.
📌 Sintaxis:
python
CopiarEditar
print(valor1, valor2, ..., valorN, sep=' ', end='\n')
valor1, valor2, ..., valorN: Son los valores a imprimir. Pueden ser texto,
números, listas, etc.
sep=' ' (opcional): Define el separador entre los valores (por defecto, es un espacio).
end='\n' (opcional): Especifica cómo termina la línea (por defecto, con un salto de línea).
🔹 Ejemplos básicos de print()
python
CopiarEditar
print("Hola, Python!") # Imprime un mensaje de texto
print(3 + 5) # Imprime el resultado de una operación
print("El resultado es:", 10 * 2) # Imprime texto y un cálculo juntos
📌 Ejemplo con sep y end:
python
CopiarEditar
print("Hola", "Mundo", sep=" - ") # Usa "-" como separador
print("Línea 1", end=" | ")
print("Línea 2") # Ambas líneas quedan en la misma línea
📌 Salida:
nginx
CopiarEditar
Hola - Mundo
Línea 1 | Línea 2
🔹 Entrada de datos con input()
La función input() permite al usuario ingresar datos desde el teclado.
📌 Sintaxis:
python
CopiarEditar
variable = input("Mensaje para el usuario: ")
El texto dentro de input() se muestra como mensaje antes de la entrada del usuario.
El dato ingresado siempre es una cadena de texto (str), incluso si se ingresan números.
🔹 Ejemplo básico de input()
python
CopiarEditar
nombre = input("¿Cuál es tu nombre? ")
print("Hola,", nombre, "¡Bienvenido a Python!")
📌 Salida (ejemplo con entrada del usuario):
css
CopiarEditar
¿Cuál es tu nombre? Juan
Hola, Juan ¡Bienvenido a Python!
📌 Convertir la entrada de input() a números
Si necesitas trabajar con números, convierte el valor con int() o float().
python
CopiarEditar
edad = int(input("Ingresa tu edad: ")) # Convierte a número entero
altura = float(input("Ingresa tu altura en metros: ")) # Convierte a
decimal
print("Tienes", edad, "años y mides", altura, "m.")
📌 Ejemplo de entrada/salida:
yaml
CopiarEditar
Ingresa tu edad: 25
Ingresa tu altura en metros: 1.75
Tienes 25 años y mides 1.75 m.
Comentarios en Python
Los comentarios son líneas de código que Python ignora. Sirven para explicar el código o
desactivar partes temporalmente.
📌 Comentarios de una sola línea:
Se escriben con # al inicio de la línea.
python
CopiarEditar
# Esto es un comentario
print("Hola, Python") # También puede ir después de una instrucción
📌 Comentarios de varias líneas:
Se pueden escribir con """ o ''' al principio y al final.
python
CopiarEditar
"""
Este es un comentario
de varias líneas en Python.
Sirve para documentar el código.
"""
print("Ejemplo con comentario largo")
Resumen
🔹 print(): Imprime información en la pantalla.
🔹 input(): Permite ingresar datos desde el teclado.
🔹 # Comentarios: Explican el código sin afectar su ejecución.
Estos conceptos básicos son esenciales para comenzar a programar en Python.
7. Variables y asignación de valores en
Python
Las variables son fundamentales en cualquier lenguaje de programación, ya que permiten
almacenar y manipular datos. En Python, trabajar con variables es sencillo porque no es
necesario declarar el tipo de dato antes de usarlas.
Introducción a las variables en Python
📌 ¿Qué es una variable?
Una variable es un espacio en memoria donde se almacena un valor que puede cambiar
durante la ejecución del programa.
📌 Reglas para nombrar variables en Python:
✅ Debe comenzar con una letra o un guion bajo (_).
✅ Puede contener letras, números y guion bajo (_).
✅ No puede ser una palabra reservada de Python (como if, while, print, etc.).
✅ Es sensible a mayúsculas y minúsculas (edad y Edad son variables distintas).
📌 Ejemplos válidos de nombres de variables:
python
CopiarEditar
nombre = "Juan"
edad_2025 = 25
_altura = 1.75
📌 Ejemplos inválidos: ❌
python
CopiarEditar
2edad = 25 # No puede comenzar con un número
nombre completo = "Ana" # No puede contener espacios
class = "Python" # No puede ser una palabra reservada
Asignación de valores y tipos de datos básicos
En Python, se pueden asignar valores a variables usando el operador =.
📌 Ejemplo de asignación de valores:
python
CopiarEditar
nombre = "Carlos" # Cadena de texto (str)
edad = 30 # Número entero (int)
altura = 1.75 # Número decimal (float)
es_estudiante = True # Valor booleano (bool)
📌 Salida:
yaml
CopiarEditar
Carlos tiene 30 años, mide 1.75 metros y es estudiante: True
Tipos de datos básicos en Python
Tipo de dato Descripción Ejemplo
int Números enteros 10 , -5 , 1000
float Números decimales 3.14, -0.99, 2.0
str Texto o cadena de caracteres "Hola", 'Python'
bool Booleano (Verdadero o Falso) True, False
📌 Ejemplo de asignación con diferentes tipos:
python
CopiarEditar
numero_entero = 42
numero_decimal = 3.1416
texto = "Aprendiendo Python"
booleano = False
print(numero_entero, numero_decimal, texto, booleano)
📌 Salida:
graphql
CopiarEditar
42 3.1416 Aprendiendo Python False
Asignación múltiple
Python permite asignar varios valores a múltiples variables en una sola línea.
python
CopiarEditar
x, y, z = 10, 20, 30
print(x, y, z) # Salida: 10 20 30
También se pueden asignar el mismo valor a varias variables:
python
CopiarEditar
a = b = c = 5
print(a, b, c) # Salida: 5 5 5
Resumen
✅ Las variables almacenan valores que pueden cambiar en el programa.
✅ Reglas de nombres: No inician con números, no tienen espacios y no usan palabras
reservadas.
✅ Tipos de datos básicos: int, float, str, bool.
✅ Asignación múltiple permite asignar valores a varias variables en una sola línea.
8. Tipos de datos en Python: Números
Python maneja diferentes tipos de datos numéricos, los principales son los enteros (int) y
los flotantes (float). Estos números se pueden utilizar en operaciones matemáticas básicas
y avanzadas.
🔹 Números enteros (int)
📌 Los números enteros son aquellos que no tienen parte decimal, como -5, 0, 100, 42.
📌 Ejemplo de números enteros en Python:
python
CopiarEditar
edad = 25
cantidad = -10
poblacion = 7800000
print(edad, cantidad, poblacion)
📌 Salida:
CopiarEditar
25 -10 7800000
🔹 Números flotantes (float)
📌 Los números flotantes o decimales incluyen una parte decimal, como 3.14, -0.75, 10.0.
📌 Ejemplo de números flotantes en Python:
python
CopiarEditar
altura = 1.75
precio = -99.99
pi = 3.1416
print(altura, precio, pi)
📌 Salida:
CopiarEditar
1.75 -99.99 3.1416
📌 Nota: Python maneja los números flotantes con punto decimal . y no con coma ,.
🔹 Operaciones aritméticas en Python
Python permite realizar operaciones matemáticas básicas y avanzadas con números.
📌 Operaciones básicas con enteros y flotantes:
Operación Símbolo Ejemplo
Suma + 5 + 3 = 8
Resta - 10 - 4 = 6
Multiplicación * 6 * 2 = 12
División / 15 / 3 = 5.0
División entera // 15 // 4 = 3 (descarta los decimales)
Módulo (residuo) % 10 % 3 = 1
Potencia ** 2 ** 3 = 8
📌 Ejemplo de operaciones aritméticas en Python:
python
CopiarEditar
a = 10
b = 3
print("Suma:", a + b)
print("Resta:", a - b)
print("Multiplicación:", a * b)
print("División:", a / b)
print("División entera:", a // b)
print("Módulo:", a % b)
print("Potencia:", a ** b)
📌 Salida:
makefile
CopiarEditar
Suma: 13
Resta: 7
Multiplicación: 30
División: 3.3333333333333335
División entera: 3
Módulo: 1
Potencia: 1000
🔹 Conversión entre enteros y flotantes
Python permite convertir entre tipos numéricos con int() y float().
📌 Ejemplo de conversión de datos:
python
CopiarEditar
numero_entero = 10
numero_decimal = 3.75
# Convertir entero a flotante
convertido_a_float = float(numero_entero)
# Convertir flotante a entero
convertido_a_int = int(numero_decimal)
print(convertido_a_float) # Salida: 10.0
print(convertido_a_int) # Salida: 3
🚀 Resumen
✅ Números enteros (int): Son valores sin parte decimal, como 5, 100, -12.
✅ Números flotantes (float): Son valores con decimales, como 3.14, 2.0, -1.5.
✅ Operaciones aritméticas: Suma (+), resta (-), multiplicación (*), división (/), división
entera (//), módulo (%), potencia (**).
✅ Conversión entre números: int() para convertir a entero, float() para convertir a
decimal.
9. Tipos de datos en Python: Cadenas
de texto (str)
Las cadenas de texto en Python se conocen como "strings" y se representan con el
tipo de dato str. Se utilizan para almacenar texto y pueden manipularse de muchas
maneras.
🔹 ¿Qué es una cadena de texto (str)?
📌 Una cadena de texto es una secuencia de caracteres encerrados entre comillas
simples (') o dobles (").
📌 Ejemplos de cadenas en Python:
python
CopiarEditar
mensaje = "Hola, mundo"
nombre = 'Juan'
frase = "Python es increíble"
print(mensaje)
print(nombre)
print(frase)
📌 Salida:
CopiarEditar
Hola, mundo
Juan
Python es increíble
📌 También se pueden usar comillas triples (""" """ o ''' ''') para cadenas de
varias líneas:
python
CopiarEditar
texto_largo = """Este es un mensaje
que ocupa varias líneas
en Python."""
print(texto_largo)
📌 Salida:
nginx
CopiarEditar
Este es un mensaje
que ocupa varias líneas
en Python.
🔹 Operaciones con cadenas de texto
Python permite realizar diversas operaciones con cadenas de texto, como
concatenación, repetición y acceso a caracteres.
📌 1. Concatenación de cadenas (+)
Se pueden unir dos o más cadenas usando el operador +.
python
CopiarEditar
saludo = "Hola"
nombre = "Juan"
mensaje = saludo + ", " + nombre + "!"
print(mensaje)
📌 Salida:
CopiarEditar
Hola, Juan!
📌 2. Repetición de cadenas (*)
Podemos repetir una cadena varias veces usando *.
python
CopiarEditar
eco = "Python! " * 3
print(eco)
📌 Salida:
CopiarEditar
Python! Python! Python!
📌 3. Acceder a caracteres de una cadena ([])
Podemos acceder a un carácter de la cadena usando su índice (comenzando desde
0).
python
CopiarEditar
palabra = "Python"
print(palabra[0]) # Primer carácter
print(palabra[3]) # Cuarto carácter
print(palabra[-1]) # Último carácter
📌 Salida:
css
CopiarEditar
P
h
n
📌 4. Slicing (subcadenas)
Podemos extraer partes de una cadena usando slicing [inicio:fin].
python
CopiarEditar
frase = "Aprendiendo Python"
print(frase[0:11]) # "Aprendiendo"
print(frase[12:]) # "Python"
print(frase[:5]) # "Apren"
📌 Salida:
nginx
CopiarEditar
Aprendiendo
Python
Apren
📌 5. Longitud de una cadena (len())
Podemos obtener la cantidad de caracteres de una cadena con len().
python
CopiarEditar
mensaje = "Hola, Python!"
print(len(mensaje)) # 14 caracteres
📌 Salida:
CopiarEditar
14
📌 6. Métodos útiles para manipular cadenas
Método Descripción Ejemplo
.lower() Convierte a minúsculas "PYTHON".lower() → "python"
.upper() Convierte a mayúsculas "python".upper() → "PYTHON"
Elimina espacios en blanco al
.strip() " hola ".strip() → "hola"
inicio y final
.replace(a,
b) Reemplaza a por b en la cadena "hola".replace("h", "H") → "Hola"
.split(" ")
Divide la cadena en una lista de "Hola mundo".split(" ") → ["Hola",
palabras "mundo"]
📌 Ejemplo de uso de métodos:
python
CopiarEditar
texto = " Python es Genial "
print([Link]()) # " python es genial "
print([Link]()) # " PYTHON ES GENIAL "
print([Link]()) # "Python es Genial"
print([Link]("Genial", "increíble")) # " Python es
increíble "
print([Link]()) # ["Python", "es", "Genial"]
🚀 Resumen
✅ Cadenas de texto (str): Se escriben entre comillas (' o ").
✅ Concatenación (+): Permite unir cadenas.
✅ Repetición (*): Repite una cadena varias veces.
✅ Índices ([]) y slicing ([:]): Permiten acceder y extraer partes de una cadena.
✅ Funciones útiles: len(), .upper(), .lower(), .strip(), .replace(),
.split().
10. Tipos de datos en Python: Booleanos
(bool)
Los valores booleanos en Python representan verdadero (True) o falso (False). Son
fundamentales en la toma de decisiones dentro de un programa y se usan en condiciones,
comparaciones y estructuras de control.
🔹 Introducción a los valores booleanos (True, False)
📌 En Python, el tipo booleano (bool) tiene solo dos valores posibles:
True (verdadero)
False (falso)
📌 Ejemplo de valores booleanos en Python:
python
CopiarEditar
es_mayor = True
es_menor = False
print(es_mayor) # True
print(es_menor) # False
📌 Importante:
True y False deben escribirse con mayúscula inicial, ya que son palabras clave en
Python.
Se pueden asignar a variables y usar en operaciones lógicas.
🔹 Uso de booleanos en comparaciones
Los valores booleanos son el resultado de operaciones de comparación.
Operador Descripción Ejemplo
== Igualdad 5 == 5 → True
!= Diferente 5 != 3 → True
> Mayor que 10 > 3 → True
Operador Descripción Ejemplo
< Menor que 2 < 5 → True
>= Mayor o igual 4 >= 4 → True
<= Menor o igual 6 <= 7 → True
📌 Ejemplo de comparaciones en Python:
python
CopiarEditar
print(10 > 5) # True
print(3 == 3) # True
print(4 != 2) # True
print(7 <= 6) # False
📌 Salida:
graphql
CopiarEditar
True
True
True
False
🔹 Uso de booleanos en condicionales (if, else)
Los booleanos se utilizan en estructuras condicionales para ejecutar código según una condición.
📌 Ejemplo:
python
CopiarEditar
edad = 18
if edad >= 18:
print("Eres mayor de edad.")
else:
print("Eres menor de edad.")
📌 Salida:
nginx
CopiarEditar
Eres mayor de edad.
Aquí, la condición edad >= 18 evalúa True, por lo que se ejecuta el bloque del if.
🔹 Operadores lógicos con booleanos
Python permite combinar booleanos con operadores lógicos.
Operador Descripción Ejemplo
and Ambas condiciones deben ser True (5 > 2) and (10 > 3) → True
or Al menos una condición debe ser True (5 > 2) or (10 < 3) → True
not Niega un valor booleano not (5 > 2) → False
📌 Ejemplo de operadores lógicos en Python:
python
CopiarEditar
x = True
y = False
print(x and y) # False (ambos deben ser True)
print(x or y) # True (con que uno sea True es suficiente)
print(not x) # False (invierte el valor de x)
📌 Salida:
graphql
CopiarEditar
False
True
False
🔹 Booleanos en conversiones (bool())
Se pueden convertir otros tipos de datos a bool con la función bool().
📌 Reglas básicas:
Valores considerados False: 0, "" (cadena vacía), None, [] (lista vacía), {} (diccionario
vacío).
Valores considerados True: Cualquier otro valor.
📌 Ejemplo:
python
CopiarEditar
print(bool(0)) # False
print(bool(1)) # True
print(bool("")) # False
print(bool("Hola")) # True
print(bool([])) # False
print(bool([1, 2])) # True
📌 Salida:
graphql
CopiarEditar
False
True
False
True
False
True
🚀 Resumen
✅ Booleanos (bool): Solo pueden tener los valores True o False.
✅ Comparaciones (==, !=, >, <, >=, <=) generan valores True o False.
✅ Condicionales (if, else) dependen de valores booleanos.
✅ Operadores lógicos (and, or, not) permiten combinar condiciones.
✅ Cualquier valor en Python puede convertirse en bool(), donde 0, "", [], {} y None son
False.
11. Tipos de datos en Python: Listas (list)
Las listas en Python son estructuras de datos ordenadas y mutables que permiten almacenar una
colección de elementos. Puedes tener diferentes tipos de datos dentro de una misma lista, como
números, cadenas de texto, booleanos, entre otros.
🔹 ¿Qué son las listas en Python?
Una lista en Python es una colección ordenada de elementos que puede contener cualquier tipo
de datos y es mutable, lo que significa que puedes modificarla después de haberla creado.
📌 Características de las listas:
Ordenadas: Los elementos en una lista tienen un orden específico.
Mutable: Puedes cambiar el contenido de la lista después de crearla (añadir, eliminar,
modificar elementos).
Índices: Los elementos en una lista tienen un índice que empieza desde 0.
📌 Sintaxis básica para crear una lista:
python
CopiarEditar
mi_lista = [1, 2, 3, 4, 5]
🔹 Operaciones básicas con listas
1. Añadir elementos a la lista
Puedes añadir elementos a una lista utilizando varios métodos.
📌 Método append(): Añade un solo elemento al final de la lista.
python
CopiarEditar
mi_lista = [1, 2, 3]
mi_lista.append(4) # Añade el 4 al final de la lista
print(mi_lista) # Salida: [1, 2, 3, 4]
📌 Método insert(): Permite insertar un elemento en una posición específica de la lista.
python
CopiarEditar
mi_lista = [1, 2, 3]
mi_lista.insert(1, 5) # Inserta el 5 en la posición 1
print(mi_lista) # Salida: [1, 5, 2, 3]
2. Eliminar elementos de la lista
Puedes eliminar elementos de la lista de varias formas.
📌 Método remove(): Elimina el primer elemento que coincide con el valor dado.
python
CopiarEditar
mi_lista = [1, 2, 3, 2]
mi_lista.remove(2) # Elimina la primera ocurrencia del 2
print(mi_lista) # Salida: [1, 3, 2]
📌 Método pop(): Elimina un elemento en la posición indicada y lo devuelve. Si no se pasa índice,
elimina el último elemento.
python
CopiarEditar
mi_lista = [1, 2, 3]
elemento = mi_lista.pop() # Elimina y devuelve el último elemento
print(mi_lista) # Salida: [1, 2]
print(elemento) # Salida: 3
📌 Método clear(): Elimina todos los elementos de la lista, dejándola vacía.
python
CopiarEditar
mi_lista = [1, 2, 3]
mi_lista.clear() # Elimina todos los elementos
print(mi_lista) # Salida: []
3. Acceder a elementos de la lista
Puedes acceder a los elementos de la lista utilizando índices.
📌 Acceso por índice: El primer elemento tiene índice 0, el segundo 1, etc.
python
CopiarEditar
mi_lista = [10, 20, 30]
print(mi_lista[0]) # Accede al primer elemento, salida: 10
print(mi_lista[1]) # Accede al segundo elemento, salida: 20
📌 Acceso por índices negativos: Los índices negativos permiten acceder a los elementos desde el
final de la lista.
python
CopiarEditar
mi_lista = [10, 20, 30]
print(mi_lista[-1]) # Último elemento, salida: 30
print(mi_lista[-2]) # Penúltimo elemento, salida: 20
🔹 Otras operaciones útiles con listas
4. Longitud de la lista
Para obtener la cantidad de elementos en la lista, se utiliza la función len().
python
CopiarEditar
mi_lista = [1, 2, 3, 4]
print(len(mi_lista)) # Salida: 4
5. Concatenación de listas
Puedes concatenar dos o más listas utilizando el operador +.
python
CopiarEditar
lista1 = [1, 2, 3]
lista2 = [4, 5, 6]
lista_combinada = lista1 + lista2
print(lista_combinada) # Salida: [1, 2, 3, 4, 5, 6]
6. Repetición de listas
Puedes repetir los elementos de una lista utilizando el operador *.
python
CopiarEditar
mi_lista = [1, 2, 3]
lista_repetida = mi_lista * 2
print(lista_repetida) # Salida: [1, 2, 3, 1, 2, 3]
7. Verificar si un elemento existe en la lista
Puedes verificar si un elemento está presente en la lista utilizando el operador in.
python
CopiarEditar
mi_lista = [1, 2, 3, 4]
print(3 in mi_lista) # Salida: True
print(5 in mi_lista) # Salida: False
🚀 Resumen
Las listas son estructuras de datos ordenadas, mutables y con índices.
Puedes añadir elementos con append() o insert(), y eliminar con remove(), pop(),
o clear().
Puedes acceder a los elementos de la lista mediante índices, tanto positivos como
negativos.
La función len() te permite obtener la longitud de la lista.
Puedes concatenar y repetir listas con los operadores + y *.
12. Tipos de datos en Python: Tuplas (tuple)
Las tuplas son estructuras de datos similares a las listas en Python, pero con una diferencia clave:
son inmutables, lo que significa que una vez creadas, no puedes modificar sus elementos. Son
muy útiles cuando necesitas almacenar datos que no deben cambiar a lo largo del tiempo.
🔹 ¿Qué son las tuplas y cómo se diferencian de las listas?
Las tuplas son colecciones de elementos ordenados, al igual que las listas, pero con la
característica de ser inmutables.
Características de las tuplas:
Inmutables: Una vez que se crea una tupla, no puedes modificarla, añadirle o eliminarle
elementos.
Ordenadas: Los elementos en una tupla siguen un orden específico, y puedes acceder a
ellos mediante índices.
Permiten elementos duplicados: Al igual que las listas, las tuplas pueden contener
elementos duplicados.
Pueden contener cualquier tipo de dato: Las tuplas pueden tener elementos de distintos
tipos de datos (enteros, cadenas, listas, etc.).
📌 Sintaxis básica de una tupla:
python
CopiarEditar
mi_tupla = (1, 2, 3, 4)
Diferencias entre tuplas y listas:
Característica Tupla Lista
Mutabilidad Inmutable (no se puede modificar) Mutable (se puede modificar)
Sintaxis Usan paréntesis () Usan corchetes []
Métodos Pocos métodos disponibles Muchos métodos disponibles
Rendimiento Más rápido para iterar y acceder Más lento que las tuplas
🔹 Acceso y manipulación de tuplas
Aunque las tuplas son inmutables, puedes acceder a sus elementos, iterar sobre ellas y realizar
algunas operaciones.
1. Acceso a los elementos de una tupla
Al igual que las listas, puedes acceder a los elementos de una tupla utilizando índices.
📌 Acceso por índice: El primer elemento tiene índice 0, el segundo 1, y así sucesivamente.
python
CopiarEditar
mi_tupla = (10, 20, 30)
print(mi_tupla[0]) # Salida: 10
print(mi_tupla[1]) # Salida: 20
📌 Acceso por índices negativos: Los índices negativos permiten acceder a los elementos desde el
final de la tupla.
python
CopiarEditar
mi_tupla = (10, 20, 30)
print(mi_tupla[-1]) # Último elemento, salida: 30
print(mi_tupla[-2]) # Penúltimo elemento, salida: 20
2. No puedes modificar los elementos de una tupla
Una de las características más importantes de las tuplas es que no puedes modificar sus
elementos una vez que han sido definidos. Intentar cambiar el valor de un elemento generará un
error.
python
CopiarEditar
mi_tupla = (10, 20, 30)
# Esto dará error:
mi_tupla[1] = 25 # TypeError: 'tuple' object does not support item
assignment
3. Métodos disponibles en las tuplas
Aunque las tuplas son inmutables, tienen algunos métodos útiles, como count() y index(), que
permiten trabajar con ellas de manera limitada.
📌 Método count(): Cuenta cuántas veces aparece un elemento en la tupla.
python
CopiarEditar
mi_tupla = (10, 20, 30, 20)
print(mi_tupla.count(20)) # Salida: 2
📌 Método index(): Devuelve el índice de la primera ocurrencia de un elemento.
python
CopiarEditar
mi_tupla = (10, 20, 30)
print(mi_tupla.index(20)) # Salida: 1
4. Concatenación de tuplas
Puedes concatenar tuplas usando el operador +. Esto genera una nueva tupla, ya que las tuplas
son inmutables.
python
CopiarEditar
tupla1 = (1, 2, 3)
tupla2 = (4, 5, 6)
tupla_combinada = tupla1 + tupla2
print(tupla_combinada) # Salida: (1, 2, 3, 4, 5, 6)
5. Repetición de tuplas
Puedes repetir una tupla usando el operador *, lo que crea una nueva tupla.
python
CopiarEditar
mi_tupla = (1, 2, 3)
tupla_repetida = mi_tupla * 2
print(tupla_repetida) # Salida: (1, 2, 3, 1, 2, 3)
6. Desempaquetado de tuplas
Puedes desempaquetar los elementos de una tupla directamente en variables. Esto es útil cuando
tienes una tupla con varios elementos y quieres asignarlos a variables.
python
CopiarEditar
mi_tupla = (10, 20, 30)
a, b, c = mi_tupla
print(a) # Salida: 10
print(b) # Salida: 20
print(c) # Salida: 30
🚀 Resumen
Las tuplas son inmutables, lo que significa que una vez creadas, no puedes cambiarlas.
Puedes acceder a los elementos de una tupla mediante índices, como en las listas.
Las tuplas tienen métodos como count() e index() para realizar operaciones limitadas.
No puedes añadir, eliminar ni modificar elementos dentro de una tupla una vez que está
creada.
Puedes concatenar y repetir tuplas utilizando los operadores + y *.
13. Tipos de datos en Python: Diccionarios
(dict)
Los diccionarios son una de las estructuras de datos más poderosas y flexibles en Python. Son
colecciones de elementos no ordenados, mutables y almacenan pares de clave y valor. Los
diccionarios se utilizan cuando necesitamos asociar una clave única a un valor determinado,
permitiendo un acceso rápido a los datos mediante las claves.
🔹 Introducción a los diccionarios en Python
Un diccionario en Python es una estructura de datos que permite almacenar datos en forma de
pares clave:valor. Las claves deben ser únicas y generalmente son de tipos inmutables, como
cadenas, números o tuplas. Los valores, por otro lado, pueden ser de cualquier tipo de dato.
Características de los diccionarios:
No ordenados: Los diccionarios no tienen un orden específico para sus elementos, es
decir, no puedes acceder a los elementos por un índice numérico como en las listas.
Mutables: Puedes modificar un diccionario después de haberlo creado.
Claves únicas: Cada clave en un diccionario debe ser única. Si intentas asignar un nuevo
valor a una clave existente, sobrescribirás el valor anterior.
Eficiencia: El acceso a los elementos a través de la clave es muy rápido.
📌 Sintaxis básica de un diccionario:
python
CopiarEditar
mi_diccionario = {"clave1": "valor1", "clave2": "valor2", "clave3":
"valor3"}
En este ejemplo, "clave1", "clave2", y "clave3" son las claves, y "valor1", "valor2", y
"valor3" son los valores asociados a esas claves.
🔹 Operaciones básicas con diccionarios
1. Acceso a los elementos de un diccionario
Puedes acceder a los elementos de un diccionario utilizando la clave correspondiente. Si la clave
no existe, obtendrás un error KeyError.
📌 Acceso mediante la clave:
python
CopiarEditar
mi_diccionario = {"nombre": "Juan", "edad": 25, "profesión":
"programador"}
# Acceder a un valor
print(mi_diccionario["nombre"]) # Salida: Juan
print(mi_diccionario["edad"]) # Salida: 25
También puedes usar el método .get() para acceder a los valores de una manera más segura. Si
la clave no existe, .get() devuelve None (o un valor predeterminado si se lo especificas).
python
CopiarEditar
print(mi_diccionario.get("nombre")) # Salida: Juan
print(mi_diccionario.get("apellido", "No disponible")) # Salida: No
disponible
2. Inserción de elementos en un diccionario
Para agregar un nuevo par clave:valor a un diccionario, simplemente asignas un valor a una nueva
clave.
📌 Inserción de elementos:
python
CopiarEditar
mi_diccionario = {"nombre": "Juan", "edad": 25}
mi_diccionario["profesión"] = "programador" # Añadimos una nueva
clave:valor
print(mi_diccionario)
# Salida: {'nombre': 'Juan', 'edad': 25, 'profesión': 'programador'}
Si la clave ya existe en el diccionario, su valor se actualizará con el nuevo valor asignado.
python
CopiarEditar
mi_diccionario["edad"] = 26 # Actualizamos el valor de la clave 'edad'
print(mi_diccionario)
# Salida: {'nombre': 'Juan', 'edad': 26, 'profesión': 'programador'}
3. Eliminación de elementos en un diccionario
Puedes eliminar elementos de un diccionario de varias formas. La forma más común es usar la
palabra clave del.
📌 Eliminar un par clave:valor con del:
python
CopiarEditar
mi_diccionario = {"nombre": "Juan", "edad": 25, "profesión":
"programador"}
del mi_diccionario["edad"] # Elimina la clave 'edad' y su valor
print(mi_diccionario)
# Salida: {'nombre': 'Juan', 'profesión': 'programador'}
Otra forma de eliminar un elemento es con el método .pop(), que también devuelve el valor de
la clave eliminada.
📌 Eliminar y obtener el valor con .pop():
python
CopiarEditar
mi_diccionario = {"nombre": "Juan", "edad": 25, "profesión":
"programador"}
edad = mi_diccionario.pop("edad") # Elimina y devuelve el valor de la
clave 'edad'
print(edad) # Salida: 25
print(mi_diccionario)
# Salida: {'nombre': 'Juan', 'profesión': 'programador'}
4. Iterando sobre los diccionarios
Puedes iterar sobre las claves, los valores o ambos en un diccionario utilizando un bucle for.
📌 Iterando sobre las claves:
python
CopiarEditar
mi_diccionario = {"nombre": "Juan", "edad": 25, "profesión":
"programador"}
for clave in mi_diccionario:
print(clave)
# Salida:
# nombre
# edad
# profesión
📌 Iterando sobre las claves y valores:
python
CopiarEditar
for clave, valor in mi_diccionario.items():
print(clave, ":", valor)
# Salida:
# nombre : Juan
# edad : 25
# profesión : programador
🚀 Resumen
Los diccionarios en Python almacenan pares de clave:valor.
Puedes acceder a los valores utilizando las claves.
Los diccionarios son mutables, lo que significa que puedes agregar, modificar o eliminar
elementos.
Las claves deben ser únicas dentro de un diccionario, y generalmente deben ser de tipos
inmutables (como cadenas, enteros o tuplas).
Puedes iterar sobre un diccionario para obtener sus claves o sus claves y valores.
👉 ¡Recuerda! Los diccionarios son muy útiles cuando necesitas asociar un valor a una clave única, y
son especialmente poderosos cuando quieres acceder rápidamente a datos.
14. Tipos de datos en Python: Conjuntos
(set)
Los conjuntos en Python son colecciones no ordenadas de elementos únicos. Son similares a las
listas o tuplas, pero a diferencia de ellas, no pueden contener elementos duplicados y no
mantienen un orden específico. Los conjuntos son útiles cuando se necesita verificar la existencia
de un elemento en una colección o realizar operaciones matemáticas con ellos (como la unión, la
intersección, etc.).
🔹 ¿Qué son los conjuntos en Python?
Un conjunto es una colección desordenada de elementos únicos en Python. No permiten
duplicados, lo que significa que si intentas añadir un elemento repetido a un conjunto, este no se
agregará.
Características de los conjuntos:
No ordenados: Los elementos de un conjunto no siguen un orden específico.
Elementos únicos: Un conjunto no puede tener elementos duplicados. Si intentas agregar
un valor ya existente, el conjunto no cambiará.
Mutables: Puedes modificar un conjunto después de su creación (añadir o eliminar
elementos).
No permiten acceso por índice: Dado que son desordenados, no puedes acceder a sus
elementos mediante un índice como en las listas.
📌 Sintaxis básica para crear un conjunto:
python
CopiarEditar
mi_conjunto = {1, 2, 3, 4, 5}
También puedes crear un conjunto vacío de la siguiente manera (no se puede usar {} porque eso
crea un diccionario vacío):
python
CopiarEditar
conjunto_vacio = set()
🔹 Operaciones básicas con conjuntos
1. Añadir elementos a un conjunto
Puedes añadir un nuevo elemento a un conjunto usando el método .add(). Si el elemento ya
existe, no se añadirá.
📌 Añadir un elemento:
python
CopiarEditar
mi_conjunto = {1, 2, 3}
mi_conjunto.add(4)
print(mi_conjunto) # Salida: {1, 2, 3, 4}
2. Eliminar elementos de un conjunto
Para eliminar un elemento de un conjunto, puedes usar el método .remove() o .discard().
.remove(): Elimina el elemento del conjunto. Si el elemento no existe, lanza un
KeyError.
.discard(): Elimina el elemento, pero si no existe, no lanza un error.
📌 Eliminar con .remove():
python
CopiarEditar
mi_conjunto = {1, 2, 3, 4}
mi_conjunto.remove(3)
print(mi_conjunto) # Salida: {1, 2, 4}
📌 Eliminar con .discard():
python
CopiarEditar
mi_conjunto = {1, 2, 3, 4}
mi_conjunto.discard(5) # No lanza error aunque el elemento no esté en el
conjunto
print(mi_conjunto) # Salida: {1, 2, 3, 4}
3. Comprobar si un elemento está en un conjunto
Puedes comprobar si un elemento está presente en un conjunto utilizando el operador in.
📌 Uso del operador in:
python
CopiarEditar
mi_conjunto = {1, 2, 3, 4}
print(2 in mi_conjunto) # Salida: True
print(5 in mi_conjunto) # Salida: False
4. Operaciones de conjuntos
Python proporciona varios métodos para realizar operaciones matemáticas con conjuntos, como la
unión, intersección, diferencia y diferencia simétrica.
Unión (union() o |):
La unión de dos conjuntos produce un conjunto con todos los elementos de ambos conjuntos (sin
duplicados).
python
CopiarEditar
conjunto1 = {1, 2, 3}
conjunto2 = {3, 4, 5}
union = [Link](conjunto2)
print(union) # Salida: {1, 2, 3, 4, 5}
# También se puede usar el operador |
union = conjunto1 | conjunto2
print(union) # Salida: {1, 2, 3, 4, 5}
Intersección (intersection() o &):
La intersección de dos conjuntos produce un conjunto con los elementos que son comunes a
ambos conjuntos.
python
CopiarEditar
conjunto1 = {1, 2, 3}
conjunto2 = {3, 4, 5}
interseccion = [Link](conjunto2)
print(interseccion) # Salida: {3}
# También se puede usar el operador &
interseccion = conjunto1 & conjunto2
print(interseccion) # Salida: {3}
Diferencia (difference() o -):
La diferencia de dos conjuntos produce un conjunto con los elementos que están en el primer
conjunto, pero no en el segundo.
python
CopiarEditar
conjunto1 = {1, 2, 3}
conjunto2 = {3, 4, 5}
diferencia = [Link](conjunto2)
print(diferencia) # Salida: {1, 2}
# También se puede usar el operador -
diferencia = conjunto1 - conjunto2
print(diferencia) # Salida: {1, 2}
Diferencia simétrica (symmetric_difference() o ^):
La diferencia simétrica de dos conjuntos produce un conjunto con los elementos que están en uno
de los conjuntos, pero no en ambos.
python
CopiarEditar
conjunto1 = {1, 2, 3}
conjunto2 = {3, 4, 5}
diferencia_simetrica = conjunto1.symmetric_difference(conjunto2)
print(diferencia_simetrica) # Salida: {1, 2, 4, 5}
# También se puede usar el operador ^
diferencia_simetrica = conjunto1 ^ conjunto2
print(diferencia_simetrica) # Salida: {1, 2, 4, 5}
🚀 Resumen
Conjuntos en Python son colecciones no ordenadas y mutables de elementos únicos.
Se utilizan para eliminar duplicados y realizar operaciones matemáticas como la unión,
intersección, diferencia y diferencia simétrica.
Las operaciones con conjuntos incluyen añadir, eliminar y comprobar si un elemento está
presente.
Los conjuntos son ideales cuando necesitas verificar la existencia de un elemento o
realizar operaciones matemáticas entre colecciones.
👉 ¡Recuerda! Los conjuntos son especialmente útiles cuando no te importa el orden de los
elementos, pero sí que quieres asegurarte de que no haya duplicados. Además, te permiten
realizar operaciones matemáticas de manera eficiente.
15. Tipos de datos en Python: None
El valor especial None en Python es un tipo de datos único que representa la ausencia de valor o
la falta de un valor definido. Es un objeto de tipo NoneType y se utiliza en muchos casos para
indicar que una variable no tiene un valor asignado o que una función no devuelve ningún valor.
🔹 ¿Qué es None en Python?
None es un valor especial en Python que indica la ausencia de un valor o la falta de definición. No
es lo mismo que 0, False, o una cadena vacía "", ya que estos son valores válidos, mientras que
None indica específicamente que no hay ningún valor presente.
En términos simples, None es el valor por defecto cuando algo no tiene un valor asignado.
Características de None:
Es un objeto único de tipo NoneType.
No es equivalente a 0, False ni a una cadena vacía ("").
No se puede modificar ni modificar su valor.
📌 Ejemplo de None:
python
CopiarEditar
valor = None
print(valor) # Salida: None
🔹 Uso común de None en programación
1. Valor por defecto en funciones que no devuelven nada
En Python, cuando una función no tiene una instrucción return, por defecto devuelve None.
📌 Ejemplo:
python
CopiarEditar
def mi_funcion():
print("Hola Mundo")
resultado = mi_funcion()
print(resultado) # Salida: None
En este caso, como la función no tiene un return, el valor devuelto por la función es None.
2. Indicador de ausencia de valor o inicialización de una variable
None se utiliza para indicar que una variable aún no ha sido inicializada con un valor.
📌 Ejemplo:
python
CopiarEditar
mi_variable = None # La variable no tiene valor aún
Este es un patrón común cuando se desea verificar si una variable ha sido asignada un valor más
adelante en el código.
3. Como valor de retorno de funciones vacías
Si una función explícitamente no necesita devolver ningún valor, puede usar return None o
simplemente dejar el return vacío (ya que lo hará de manera implícita).
📌 Ejemplo:
python
CopiarEditar
def ejemplo_funcion():
return None # Es lo mismo que no retornar nada
4. Comparaciones con None
Para verificar si una variable es None, se debe usar la instrucción is. Comparar con == podría dar
resultados inesperados, ya que None es un objeto único.
📌 Ejemplo:
python
CopiarEditar
mi_variable = None
if mi_variable is None:
print("La variable no tiene valor asignado.")
else:
print("La variable tiene un valor.")
Este es un uso común para comprobar si una variable ha sido definida o si una función ha devuelto
explícitamente None.
🚀 Resumen
None es un valor especial en Python que indica la ausencia de valor.
Se utiliza comúnmente para funciones que no devuelven un valor (return None), para
inicializar variables que aún no tienen valor o para indicar la falta de un valor definido.
El valor None no debe confundirse con False, 0, o una cadena vacía "", ya que esos son
valores válidos.
La forma correcta de comparar None en Python es usando is en lugar de ==.
👉 ¡Recuerda! None es fundamental para el manejo de valores nulos en programación y se usa para
representar la falta de valor en una gran variedad de situaciones en Python.
16. Conversión entre tipos de datos
En Python, es común necesitar convertir entre diferentes tipos de datos. Esto se conoce como
"conversión de tipos" o "casting". Python proporciona varias funciones integradas para realizar
estas conversiones entre tipos de datos de manera fácil y rápida.
🔹 ¿Cómo convertir entre diferentes tipos de datos en
Python?
La conversión de tipos de datos en Python se puede realizar de dos maneras:
1. Conversión implícita (automática): Python convierte automáticamente los tipos de datos
cuando es necesario, siempre que la conversión sea compatible. Por ejemplo, si sumamos
un entero con un número flotante, Python automáticamente convierte el entero en
flotante para realizar la operación.
2. Conversión explícita (manual): Cuando se necesita convertir un tipo de datos de forma
explícita (por ejemplo, convertir un número flotante en un entero), podemos usar las
funciones de conversión que Python proporciona.
🔹 Funciones de conversión en Python
A continuación se presentan algunas de las funciones más comunes utilizadas para la conversión
de tipos de datos en Python:
1. int() - Convertir a entero
La función int() convierte otros tipos de datos (como cadenas de texto, flotantes, etc.) a enteros.
Si el valor no puede convertirse a un número entero, se lanzará un error.
📌 Ejemplo:
python
CopiarEditar
# Convertir una cadena de texto a entero
numero = int("123")
print(numero) # Salida: 123
# Convertir un número flotante a entero
numero_flotante = int(10.75)
print(numero_flotante) # Salida: 10
# Error si la cadena no es un número válido
# numero_invalido = int("abc") # Lanzará un error
2. float() - Convertir a flotante
La función float() convierte otros tipos de datos a números flotantes (decimales). Esto incluye
enteros y cadenas de texto que representen un número decimal.
📌 Ejemplo:
python
CopiarEditar
# Convertir un entero a flotante
numero_entero = 10
numero_flotante = float(numero_entero)
print(numero_flotante) # Salida: 10.0
# Convertir una cadena de texto a flotante
cadena_flotante = float("12.34")
print(cadena_flotante) # Salida: 12.34
# Convertir un número flotante en otro flotante
numero_flotante_2 = float(10.75)
print(numero_flotante_2) # Salida: 10.75
3. str() - Convertir a cadena de texto
La función str() convierte un valor en una cadena de texto. Esto es útil cuando necesitamos
representar cualquier tipo de valor como texto (por ejemplo, cuando imprimimos información o
guardamos datos como texto).
📌 Ejemplo:
python
CopiarEditar
# Convertir un número entero a cadena de texto
numero = 123
cadena = str(numero)
print(cadena) # Salida: "123"
# Convertir un número flotante a cadena de texto
numero_flotante = 12.34
cadena_flotante = str(numero_flotante)
print(cadena_flotante) # Salida: "12.34"
# Convertir un valor booleano a cadena de texto
valor_booleano = True
cadena_booleano = str(valor_booleano)
print(cadena_booleano) # Salida: "True"
4. bool() - Convertir a booleano
La función bool() convierte un valor en su equivalente booleano (ya sea True o False). Los
valores como 0, None, y cadenas vacías son convertidos a False, mientras que cualquier otro
valor es convertido a True.
📌 Ejemplo:
python
CopiarEditar
# Convertir un entero a booleano
entero = 0
valor_booleano = bool(entero)
print(valor_booleano) # Salida: False
# Convertir una cadena no vacía a booleano
cadena = "Hola"
valor_booleano_2 = bool(cadena)
print(valor_booleano_2) # Salida: True
🔹 Conversión entre tipos no compatibles
Es importante tener en cuenta que no todos los tipos de datos son convertibles entre sí de manera
directa. Algunos intentos de conversión pueden lanzar errores.
Ejemplos de errores comunes:
Intentar convertir una cadena que no representa un número (por ejemplo, "abc") a
entero o flotante lanzará un ValueError.
📌 Ejemplo:
python
CopiarEditar
# Error al intentar convertir una cadena no numérica a entero
try:
numero = int("abc")
except ValueError:
print("No se puede convertir 'abc' a un número entero.")
🚀 Resumen
int(): Convierte a un número entero.
float(): Convierte a un número flotante.
str(): Convierte a cadena de texto.
bool(): Convierte a valor booleano (True o False).
Las conversiones entre tipos de datos en Python son esenciales para manejar datos de forma
flexible y realizar operaciones de manera efectiva, siempre asegurando que los datos sean del tipo
adecuado según el contexto.
17. Operadores en Python
Operadores aritméticos
Operadores de comparación
Operadores lógicos
18. Condicionales: if, elif, else
Sintaxis y funcionamiento
Uso práctico de las estructuras condicionales
19. Bucles for en Python
Introducción a los bucles for
Uso de for para recorrer listas y otros iterables
20. Bucles while en Python
Uso básico del bucle while
Ejemplos prácticos con while
21. Sentencias break, continue y else en bucles
Controlando el flujo de los bucles
Cómo salir de un bucle anticipadamente con break
22. Funciones en Python
Qué es una función en Python
Definición y llamada de funciones
23. Parámetros y argumentos en funciones
Diferencia entre parámetros y argumentos
Funciones con múltiples parámetros
24. Retorno de valores en funciones
Cómo devolver valores desde una función
Ejemplos prácticos con funciones que retornan resultados
25. Funciones de orden superior
Qué son las funciones de orden superior
Uso de funciones como map(), filter(), y reduce()
26. Manejo de excepciones en Python
Qué son las excepciones
Cómo manejar errores con try y except
27. Archivos en Python
Cómo leer y escribir archivos en Python
Ejemplo de lectura de un archivo de texto
28. Introducción a la depuración en Python
Qué es la depuración
Uso de pdb para depurar programas en Python
29. Estructura de directorios y módulos
Qué son los módulos en Python
Cómo importar y utilizar módulos
30. Introducción a las bibliotecas estándar de Python
Algunas bibliotecas útiles como os, math, datetime
Ejemplos prácticos con las bibliotecas estándar
31. Trabajando con fechas y horas
Uso de la biblioteca datetime
Cómo obtener la fecha y hora actuales
32. Introducción a la orientación a objetos en Python
Qué es la programación orientada a objetos (OOP)
Clases y objetos en Python
33. Creación de clases en Python
Cómo definir clases en Python
Creación de instancias de clase
34. Atributos y métodos de una clase
Qué son los atributos y métodos en una clase
Ejemplo de uso de atributos y métodos
35. Herencia en Python
Qué es la herencia en programación orientada a objetos
Cómo usar la herencia en Python
36. Encapsulamiento y polimorfismo en Python
Explicación de encapsulamiento y polimorfismo
Ejemplos prácticos en Python
37. Uso de self en clases
Qué es self y cómo se utiliza en las clases
Ejemplo de su aplicación
38. Listas por comprensión
Qué es una lista por comprensión
Sintaxis y ejemplos de listas por comprensión
39. Funciones lambda
Qué son las funciones lambda
Sintaxis y ejemplos prácticos
40. Introducción a la programación funcional en Python
Qué es la programación funcional
Uso de funciones como map(), filter(), reduce()
41. Módulos y paquetes en Python
Diferencia entre módulos y paquetes
Cómo organizar tu código en módulos
42. Introducción a las pruebas unitarias
Qué son las pruebas unitarias
Cómo escribir pruebas unitarias en Python con unittest
43. Cómo crear tu propio módulo en Python
Creación y organización de módulos personalizados
Importación y uso de módulos propios
44. Manejo de errores en Python
Manejo de excepciones específicas
Uso de finally para la limpieza de recursos
45. Uso de generadores en Python
Qué son los generadores
Cómo crear y utilizar generadores en Python
46. Introducción a las expresiones regulares
Qué son las expresiones regulares
Ejemplos básicos de uso de expresiones regulares en Python
47. Introducción a la manipulación de datos con pandas
Qué es pandas y para qué sirve
Instalación y primeros pasos con pandas
48. Creación y manipulación de DataFrames con pandas
Qué es un DataFrame
Cómo crear y manipular DataFrames
49. Importación de datos con pandas
Leer archivos CSV, Excel y bases de datos con pandas
Ejemplo práctico de carga de datos
50. Filtros y selecciones en pandas
Filtrar y seleccionar datos en un DataFrame
Uso de condiciones en pandas
51. Trabajar con datos faltantes en pandas
Cómo manejar datos faltantes (NaN) en un DataFrame
Métodos de limpieza de datos
52. Visualización de datos con matplotlib
Introducción a matplotlib para visualización de datos
Creación de gráficos simples
53. Introducción a numpy para operaciones numéricas
Qué es numpy y cómo ayuda en Python
Operaciones básicas con numpy
54. Manejo de cadenas de texto con re
Uso de la librería re para expresiones regulares
Buscar y manipular texto con re
55. Cómo trabajar con APIs en Python
Qué es una API
Cómo hacer solicitudes HTTP en Python usando requests
56. Uso de bases de datos con Python
Conexión a bases de datos con sqlite3
Realizar consultas a una base de datos
57. Integración de Python con otras tecnologías
Cómo integrar Python con herramientas y tecnologías populares
Ejemplos prácticos de integración
58. Optimización de código Python
Consejos para mejorar el rendimiento de tu código Python
Herramientas para medir el rendimiento
59. Automatización con Python
Qué es la automatización
Cómo usar Python para automatizar tareas repetitivas
60. Creación de interfaces gráficas con Python
Qué son las interfaces gráficas
Creación de interfaces con Tkinter
61. Programación de redes en Python
Introducción a la programación de redes
Ejemplos básicos de uso de sockets en Python
62. Desarrollo web con Python y Flask
Qué es Flask y cómo crear aplicaciones web simples
Primeros pasos en el desarrollo web con Python
63. Implementación de pruebas automatizadas
Introducción a las pruebas automatizadas en Python
Escribir pruebas y ejecutar con pytest
64. Repaso y proyecto final
Resumen de todos los conceptos aprendidos
Proyecto final integrando múltiples temas de Python
Módulo 2: Variables y Tipos (12 lecciones)
1. Introducción a variables en Python
Qué son las variables y por qué son esenciales en la programación.
Declaración y asignación de variables en Python.
Asignación simple y múltiple de variables.
Ejemplo práctico de declaración de variables.
2. Tipos de datos básicos: Números
Explicación de los tipos numéricos: enteros (int) y flotantes (float).
Operaciones aritméticas básicas: suma, resta, multiplicación, división, módulo.
Ejemplos prácticos con operaciones matemáticas.
3. Tipos de datos básicos: Cadenas de texto
Qué son las cadenas de texto (str).
Cómo definir y manipular cadenas.
Concatenación, repetición, y métodos útiles de cadenas de texto (.upper(),
.lower(), .strip()).
4. Tipos de datos básicos: Booleanos
Qué son los valores booleanos (True y False).
Uso de booleanos en comparaciones y control de flujo.
Ejemplos prácticos con operadores lógicos.
5. Tipos de datos compuestos: Listas
Qué son las listas en Python.
Declaración, acceso, y manipulación de listas (agregar, eliminar, cambiar
elementos).
Ejemplos de listas de diferentes tipos de datos.
6. Tipos de datos compuestos: Tuplas
Qué son las tuplas y en qué se diferencian de las listas.
Cómo declarar y trabajar con tuplas.
Acceso a elementos de una tupla y usos comunes.
7. Tipos de datos compuestos: Diccionarios
Qué son los diccionarios y cómo se definen.
Acceso a claves y valores.
Métodos útiles de diccionarios (como .get(), .keys(), .values()).
8. Tipos de datos compuestos: Conjuntos
Qué son los conjuntos en Python.
Cómo definir y manipular conjuntos.
Operaciones con conjuntos: unión, intersección, diferencia.
9. Conversión de tipos de datos (Casting)
Qué es la conversión de tipos y cuándo utilizarla.
Convertir entre tipos: int(), float(), str(), bool().
Ejemplos prácticos de conversión entre tipos de datos.
10. Buenas prácticas en nombres de variables
Convenciones de nombres: estilo snake_case y nombres descriptivos.
Evitar nombres de variables confusos o reservados.
Ejemplos de buenos y malos nombres de variables.
11. Variables globales y locales
Diferencia entre variables locales y globales.
Alcance de las variables y cómo afectan a las funciones.
Ejemplos prácticos de uso de variables locales y globales.
12. Uso de constantes y la convención de mayúsculas
Qué son las constantes y cómo se definen.
Convención de nomenclatura de constantes (UPPERCASE).
Ejemplos de uso de constantes en Python.
Módulo 3: Declaraciones Condicionales (11 lecciones)
1. Introducción a las estructuras de control
Qué son las estructuras de control y por qué son fundamentales.
Diferencia entre estructuras secuenciales, condicionales y repetitivas.
Explicación de cómo las estructuras condicionales permiten controlar el flujo de
ejecución en un programa.
2. Uso de la sentencia if
Qué es la sentencia if y cómo se utiliza para tomar decisiones.
Sintaxis básica: if condición:.
Ejemplos prácticos con condiciones simples.
3. Uso de la sentencia else
Explicación de la sentencia else para el caso contrario.
Sintaxis de else y cómo se usa para ejecutar un bloque alternativo.
Ejemplos de uso de if-else.
4. Uso de elif
Qué es la sentencia elif y cómo se utiliza para manejar múltiples condiciones.
Sintaxis y casos de uso en estructuras con múltiples opciones.
Ejemplos prácticos con varias condiciones utilizando if, elif, y else.
5. Operadores lógicos: and, or, not
Explicación de los operadores lógicos y cómo combinarlos con condiciones.
Uso de and, or, y not para crear expresiones lógicas más complejas.
Ejemplos de combinaciones de condiciones lógicas.
6. Operadores relacionales: ==, !=, >, <, >=, <=
Qué son los operadores relacionales y cómo se utilizan en las condiciones.
Comparar valores con operadores como ==, !=, >, <.
Ejemplos prácticos con condiciones de comparación.
7. Sentencias condicionales anidadas
Qué son las sentencias condicionales anidadas y cómo se pueden usar dentro de
otras estructuras condicionales.
Sintaxis de if-else anidado.
Ejemplos prácticos con decisiones dentro de decisiones.
8. Uso de condiciones múltiples
Cómo evaluar múltiples condiciones en una sola sentencia condicional.
Ejemplo de combinar múltiples condiciones dentro de una estructura condicional.
Uso de operadores lógicos para combinar más de dos condiciones.
9. Condiciones con valores booleanos
Explicación de cómo las condiciones pueden ser evaluadas como valores
booleanos (True o False).
Uso de variables booleanas directamente en las condiciones.
Ejemplo de simplificación de condiciones usando valores booleanos.
10. Condiciones con cadenas de texto
Uso de cadenas de texto en condiciones.
Comparación de cadenas usando operadores relacionales.
Ejemplo de uso de condiciones con cadenas como "sí/no", "True/False".
11. Uso de condicionales en estructuras complejas
Aplicación de condicionales en escenarios más complejos (ej., validación de
entrada de usuario).
Integración de condicionales con otras estructuras, como listas o diccionarios.
Ejemplo de programa con múltiples condiciones y operaciones.
1.
Módulo 4: Otros Tipos de Datos (14 lecciones)
1. Introducción a las colecciones de datos en Python
Qué son las colecciones de datos y por qué son importantes.
Comparación de las colecciones más comunes en Python: listas, tuplas, conjuntos
y diccionarios.
Explicación sobre cuándo utilizar cada tipo de dato según el problema a resolver.
2. Listas en Python
Qué son las listas en Python y cómo se definen.
Sintaxis básica para crear una lista.
Acceso, modificación y eliminación de elementos en una lista.
Ejemplos prácticos de uso de listas en Python.
3. Operaciones con listas
Métodos comunes para trabajar con listas: append(), insert(), remove(),
pop(), extend().
Cómo recorrer listas con bucles for.
Uso de listas por comprensión para crear nuevas listas de manera concisa.
4. Tuplas en Python
Qué son las tuplas y cuál es la diferencia con las listas.
Sintaxis básica de las tuplas.
Acceso a elementos y uso de tuplas en lugar de listas cuando no se necesita
modificar el contenido.
5. Operaciones con tuplas
Qué operaciones se pueden realizar con tuplas: concatenación, repetición, acceso
a elementos.
Explicación de la inmutabilidad de las tuplas y sus ventajas.
Ejemplos prácticos de uso de tuplas.
6. Conjuntos en Python
Qué son los conjuntos y cómo se crean.
Diferencia entre conjuntos y listas/tuplas: no tienen elementos duplicados.
Operaciones comunes con conjuntos: unión, intersección, diferencia y diferencia
simétrica.
7. Operaciones con conjuntos
Métodos de conjuntos como add(), remove(), discard().
Uso de operadores como |, &, - para realizar operaciones con conjuntos.
Ejemplos prácticos de conjuntos para eliminar duplicados y realizar cálculos con
ellos.
8. Diccionarios en Python
Qué son los diccionarios y cómo se definen.
Sintaxis básica para crear un diccionario y acceder a sus valores.
Uso de claves únicas para acceder a los valores en un diccionario.
9. Operaciones con diccionarios
Métodos comunes en diccionarios: get(), keys(), values(), items(), pop().
Cómo modificar y eliminar elementos de un diccionario.
Iteración sobre diccionarios: cómo acceder a claves y valores con bucles.
10. Recorriendo colecciones de datos
Cómo recorrer listas, tuplas, conjuntos y diccionarios usando bucles for.
Técnicas avanzadas de recorrido: usando enumerate() para obtener índices,
zip() para combinar colecciones, etc.
Ejemplos prácticos de recorrido de diferentes colecciones.
11. Comprensión de listas y otras colecciones
Explicación de las comprensiones de listas, diccionarios y conjuntos.
Cómo crear nuevas colecciones de manera más concisa con expresiones
compactas.
Ejemplos prácticos de comprensión para generar colecciones.
12. Uso de colecciones en aplicaciones del mundo real
Cómo aplicar las colecciones en ejemplos del mundo real, como almacenar
información de estudiantes, productos, etc.
Ejemplos de aplicaciones con listas, tuplas, conjuntos y diccionarios.
13. Colecciones y su rendimiento
Explicación de las diferencias de rendimiento entre las colecciones: listas, tuplas,
conjuntos y diccionarios.
Cuándo es más eficiente usar uno u otro.
Optimización de código utilizando colecciones de acuerdo con el problema a
resolver.
14. Buenas prácticas al trabajar con colecciones
Recomendaciones sobre cómo usar las colecciones de manera eficiente y limpia.
Cómo evitar errores comunes al trabajar con colecciones.
Ejemplos de buenas prácticas en la creación y manipulación de colecciones.
Módulo 5: Python Loops y Funciones (20 lecciones)
1. Introducción a los bucles
Qué son los bucles y por qué son útiles en programación.
Explicación general sobre los bucles y sus aplicaciones en la automatización de
tareas repetitivas.
Tipos de bucles en Python: for y while.
2. El bucle for en Python
Sintaxis básica del bucle for.
Iteración sobre secuencias: listas, cadenas, tuplas, diccionarios, etc.
Ejemplos prácticos de bucles for con diferentes tipos de datos.
3. El bucle while en Python
Sintaxis básica del bucle while.
Uso de una condición para que el bucle continúe ejecutándose.
Ejemplos prácticos de bucles while y su comportamiento.
4. Control de flujo dentro de los bucles
Explicación de las instrucciones break, continue y else en los bucles.
Cuándo y cómo usar break y continue para controlar la ejecución del bucle.
Ejemplos de cómo utilizar else en bucles.
5. Iterando sobre colecciones de datos con for
Recorrido por listas, diccionarios, conjuntos y otros tipos de colecciones.
Uso de enumerate() para obtener el índice y el valor durante la iteración.
Ejemplos prácticos de iteración avanzada.
6. Comprensión de listas (List Comprehensions)
Introducción a la comprensión de listas.
Sintaxis y uso para crear nuevas listas de forma más eficiente.
Ejemplos de comprensión de listas con condicionales.
7. Uso de range() para iterar en Python
Qué es la función range() y cómo usarla en bucles for.
Parámetros de range(): inicio, fin, paso.
Ejemplos de uso de range() en la creación de secuencias numéricas.
8. Funciones en Python
Qué son las funciones y por qué son importantes en la programación.
Sintaxis básica de las funciones en Python.
Cómo definir una función con def y llamarla.
9. Parámetros y argumentos en funciones
Qué son los parámetros y los argumentos en las funciones.
Cómo pasar datos a una función y trabajar con ellos dentro de la misma.
Diferencia entre parámetros posicionales y no posicionales (por palabra clave).
10. Funciones con valores de retorno
Cómo una función puede devolver un valor utilizando la palabra clave return.
La importancia de los valores de retorno para modularizar y reutilizar código.
Ejemplos prácticos de funciones con valores de retorno.
11. Funciones con múltiples parámetros
Cómo trabajar con funciones que aceptan más de un parámetro.
Uso de parámetros opcionales con valores por defecto.
Ejemplos de funciones que manejan múltiples parámetros.
12. Funciones recursivas
Qué es la recursión y cómo se utiliza en programación.
Ejemplo de una función recursiva que resuelve un problema común.
Cómo evitar problemas como la recursión infinita y cómo optimizar las funciones
recursivas.
13. Ámbito de las variables (Scope)
Qué es el ámbito de las variables y cómo se aplica en las funciones.
Diferencia entre variables locales y globales.
Cómo modificar variables globales dentro de una función.
14. Funciones lambda (funciones anónimas)
Qué son las funciones lambda y cómo se utilizan.
Sintaxis de una función lambda en Python.
Ejemplos de uso de funciones lambda para tareas rápidas.
15. Funciones con varios valores de retorno
Cómo devolver múltiples valores de una función utilizando tuplas.
Ejemplos de funciones que devuelven varios resultados y cómo trabajar con ellos.
16. Uso de map(), filter() y reduce()
Explicación de las funciones integradas map(), filter() y reduce() en
Python.
Cuándo y cómo usarlas para transformar, filtrar y reducir colecciones de datos.
Ejemplos prácticos del uso de estas funciones.
17. Funciones y manejo de excepciones
Cómo usar el manejo de excepciones dentro de funciones con try, except,
finally.
Qué hacer cuando se produce un error dentro de una función y cómo gestionarlo
adecuadamente.
Ejemplos de manejo de errores en funciones.
18. Funciones y documentación
La importancia de documentar las funciones con docstrings.
Cómo escribir un buen docstring para describir lo que hace una función.
Ejemplos de documentación de funciones en Python.
19. Funciones y módulos
Cómo organizar funciones en módulos para hacer el código más limpio y
reutilizable.
Qué son los módulos y cómo importarlos para usarlos en otros archivos.
Ejemplo de uso de módulos para organizar el código en Python.
20. Buenas prácticas al trabajar con funciones y bucles
Consejos sobre cómo escribir código limpio y eficiente al usar funciones y bucles.
Cómo evitar errores comunes en la implementación de bucles y funciones.
Recomendaciones para mejorar el rendimiento del código que utiliza bucles y
funciones.
Módulo 6: Introducción a SQL (41 lecciones)
1. Qué es SQL y para qué sirve
Definición de SQL (Structured Query Language).
Explicación de su importancia en la manipulación y gestión de bases de datos.
Usos comunes de SQL en aplicaciones, análisis de datos, y desarrollo web.
2. Instalación de un gestor de bases de datos
Qué es un sistema de gestión de bases de datos (DBMS).
Instalación de MySQL o PostgreSQL (con instrucciones para ambos).
Verificación de la instalación y configuración inicial del DBMS.
3. Primeros comandos en SQL
Introducción a los comandos básicos de SQL: SELECT, FROM, WHERE.
Sintaxis básica para realizar consultas simples en una base de datos.
Ejemplo práctico con una base de datos de ejemplo.
4. Creación de bases de datos y tablas
Cómo crear una nueva base de datos con el comando CREATE DATABASE.
Cómo crear tablas dentro de una base de datos con CREATE TABLE.
Tipos de datos comunes al crear tablas: INT, VARCHAR, DATE, etc.
5. Insertando datos en una tabla
Sintaxis básica para insertar registros en una tabla usando INSERT INTO.
Inserción de un solo registro y varios registros a la vez.
Ejemplos prácticos.
6. Consultas SELECT básicas
Cómo seleccionar columnas específicas con el comando SELECT.
Uso de * para seleccionar todas las columnas.
Ejemplos básicos de consultas SELECT.
7. Uso de WHERE en SQL
Filtrar resultados con la cláusula WHERE.
Condiciones comunes: =, >, <, >=, <=, <>.
Operadores lógicos: AND, OR, NOT.
8. Ordenando los resultados con ORDER BY
Sintaxis básica de ORDER BY para ordenar los resultados de una consulta.
Orden ascendente y descendente.
Ordenar por múltiples columnas.
9. Uso de LIKE para patrones de búsqueda
Qué es el operador LIKE y cómo se usa para búsquedas con patrones.
Comodines % y _ en el operador LIKE.
Ejemplos prácticos de búsqueda de patrones.
10. Consultas con operadores lógicos
Uso de AND, OR y NOT para combinar condiciones en consultas SQL.
Ejemplos de consultas complejas con operadores lógicos.
11. Uso de IN y BETWEEN en SQL
Explicación y ejemplos del operador IN para buscar en listas de valores.
Uso de BETWEEN para seleccionar rangos de valores.
Comparación de IN y BETWEEN.
12. Funciones de agregación en SQL
Qué son las funciones de agregación: COUNT(), SUM(), AVG(), MAX(), MIN().
Sintaxis y ejemplos para usar funciones de agregación en consultas.
Agrupación de resultados con GROUP BY.
13. Uso de GROUP BY para agrupar datos
Sintaxis de GROUP BY y su importancia en la agregación de datos.
Agrupar por una o varias columnas.
Ejemplo de uso de GROUP BY con funciones de agregación.
14. Filtrado de grupos con HAVING
Uso de HAVING para filtrar grupos en lugar de filas individuales.
Diferencia entre WHERE y HAVING.
Ejemplos prácticos de filtrado de grupos.
15. Joins en SQL: INNER JOIN
Qué son los JOIN y cómo se utilizan para combinar datos de dos o más tablas.
Sintaxis básica de INNER JOIN.
Ejemplos de cómo usar INNER JOIN para unir tablas.
16. Joins en SQL: LEFT JOIN
Sintaxis y explicación de LEFT JOIN.
Diferencia entre INNER JOIN y LEFT JOIN.
Ejemplos de uso de LEFT JOIN para obtener todos los registros de la tabla
izquierda.
17. Joins en SQL: RIGHT JOIN
Qué es un RIGHT JOIN y cómo se utiliza.
Diferencias entre LEFT JOIN y RIGHT JOIN.
Ejemplos de consultas con RIGHT JOIN.
18. Joins en SQL: FULL JOIN
Explicación de FULL JOIN y su sintaxis.
Cuándo usar FULL JOIN para obtener todos los registros de ambas tablas.
Ejemplo de uso práctico.
19. Subconsultas en SQL
Qué son las subconsultas y cómo se pueden usar en SQL.
Subconsultas en el SELECT, WHERE y FROM.
Ejemplos de subconsultas anidadas.
20. Subconsultas correlacionadas
Explicación de subconsultas correlacionadas.
Diferencia entre subconsultas no correlacionadas y correlacionadas.
Ejemplos prácticos de uso.
21. Creación y uso de vistas
Qué es una vista en SQL y para qué se utiliza.
Sintaxis para crear y eliminar vistas.
Ejemplos de consultas que usan vistas.
22. Actualización de registros con UPDATE
Cómo actualizar registros existentes en una tabla con UPDATE.
Uso de la cláusula WHERE para actualizar registros específicos.
Ejemplos prácticos.
23. Eliminación de registros con DELETE
Sintaxis para eliminar registros con DELETE.
Cómo usar DELETE con condiciones en WHERE.
Precauciones al usar DELETE en bases de datos.
24. Restricciones y claves primarias
Qué son las restricciones en SQL y cómo se aplican.
Cómo definir claves primarias en una tabla.
Ejemplo de creación de una tabla con claves primarias.
25. Claves foráneas y relaciones entre tablas
Qué son las claves foráneas y cómo establecer relaciones entre tablas.
Sintaxis para definir claves foráneas con FOREIGN KEY.
Ejemplo práctico de relaciones de tablas.
26. Creación de índices en SQL
Qué es un índice y cómo mejorar el rendimiento con índices.
Sintaxis para crear índices en SQL.
Ejemplo de creación de índices para consultas rápidas.
27. Transacciones en SQL
Qué es una transacción y cómo se usa en SQL.
Comandos BEGIN, COMMIT y ROLLBACK para gestionar transacciones.
Ejemplo de cómo trabajar con transacciones.
28. Funciones de cadenas de texto en SQL
Uso de funciones de texto como CONCAT(), LENGTH(), UPPER(), LOWER(), etc.
Cómo manipular cadenas de texto dentro de una consulta.
Ejemplos prácticos.
29. Funciones de fecha y hora en SQL
Qué son las funciones de fecha y hora en SQL: NOW(), DATE(), YEAR(), etc.
Cómo trabajar con fechas y horas en consultas SQL.
Ejemplos de uso de funciones de fecha y hora.
30. Funciones matemáticas en SQL
Funciones matemáticas como ROUND(), CEIL(), FLOOR(), ABS(), etc.
Cómo realizar operaciones matemáticas en consultas SQL.
Ejemplos prácticos.
31. Creación de procedimientos almacenados
Qué son los procedimientos almacenados y cómo se crean en SQL.
Sintaxis básica para crear un procedimiento almacenado.
Ejemplo de uso de procedimientos almacenados.
32. Creación de triggers en SQL
Qué es un trigger (disparador) y cuándo utilizarlo.
Sintaxis para crear triggers que se ejecutan antes o después de ciertas acciones.
Ejemplo de creación de un trigger.
33. Normalización de bases de datos
Qué es la normalización y por qué es importante.
Los 3 primeros niveles de normalización: 1NF, 2NF y 3NF.
Ejemplos de normalización de una base de datos.
34. Desnormalización de bases de datos
Qué es la desnormalización y cuándo se utiliza.
Beneficios y desventajas de desnormalizar.
Ejemplo de una base de datos desnormalizada.
35. Operaciones en bases de datos distribuidas
Qué son las bases de datos distribuidas.
Operaciones básicas en bases de datos distribuidas.
Ejemplo de consulta en una base de datos distribuida.
36. Seguridad en bases de datos SQL
Mejores prácticas para asegurar bases de datos SQL.
Control de acceso, roles y permisos.
Cómo crear usuarios con permisos específicos en una base de datos.
37. Optimización de consultas SQL
Cómo mejorar el rendimiento de las consultas SQL.
Uso de índices, y qué evitar para optimizar las consultas.
Ejemplos prácticos de optimización de consultas.
38. Análisis de consultas SQL con EXPLAIN
Uso de EXPLAIN para analizar el rendimiento de una consulta.
Interpretación de los resultados del análisis.
Ejemplo práctico.
39. Respaldo y restauración de bases de datos
Cómo realizar copias de seguridad de bases de datos con BACKUP.
Restauración de bases de datos desde un respaldo.
Ejemplo de uso de respaldo y restauración.
40. Manejo de errores en SQL
Cómo manejar errores en SQL utilizando TRY...CATCH.
Creación de manejadores de errores personalizados.
Ejemplos de manejo de errores.
41. Práctica final: Proyecto de base de datos
Desarrollo de un proyecto de base de datos utilizando todos los conceptos
aprendidos.
Creación de tablas, relaciones, procedimientos almacenados, y consultas
complejas.
Ejemplo de implementación de una base de datos completa.
Módulo 7: Recuperando Datos en SQL (10 lecciones)
1. Introducción a SELECT
Qué es el comando SELECT y su propósito en SQL.
Sintaxis básica de una consulta SELECT.
Ejemplos de cómo recuperar datos de una tabla.
2. Uso de WHERE
Qué es la cláusula WHERE y cómo se usa para filtrar resultados.
Condiciones básicas y operadores de comparación (=, >, <, <>).
Ejemplos de uso de WHERE.
3. Filtrado básico de datos
Uso de operadores de comparación: =, >, <, <=, >=.
Combinación de múltiples condiciones con AND y OR.
Ejemplos prácticos de consultas con filtros básicos.
4. Uso de operadores lógicos
Explicación de los operadores lógicos AND, OR y NOT.
Ejemplos de cómo combinar condiciones con estos operadores.
Casos prácticos de filtrado de datos.
5. Filtrado con múltiples condiciones
Cómo usar múltiples condiciones en una sola consulta.
Uso de paréntesis para agrupar condiciones complejas.
Ejemplo práctico con condiciones combinadas.
6. Uso de IS NULL y IS NOT NULL
Qué son IS NULL y IS NOT NULL y cuándo se utilizan.
Ejemplos de cómo buscar valores nulos en las columnas.
Filtrado de registros con valores nulos.
7. Uso de BETWEEN
Qué es el operador BETWEEN y cómo se utiliza para filtrar rangos.
Ejemplos de uso de BETWEEN para seleccionar datos dentro de un rango.
Diferencia entre BETWEEN y otros operadores de comparación.
8. Uso de LIKE
Qué es el operador LIKE y cómo realizar búsquedas con patrones.
Uso de los comodines % y _.
Ejemplos de búsquedas con patrones utilizando LIKE.
9. Uso de IN
Qué es el operador IN y cómo se utiliza para filtrar datos de una lista.
Ejemplo de uso de IN con múltiples valores.
Comparación entre IN y OR.
10. Filtrado de resultados con subconsultas
Uso de subconsultas en la cláusula WHERE para filtrar datos.
Ejemplo de subconsulta simple y correlacionada.
Explicación de cómo usar subconsultas para filtrado avanzado.
Módulo 8: Ordenando Datos Recuperados en SQL (11
lecciones)
1. U1. Uso de ORDER BY
Qué es el comando ORDER BY y cómo se utiliza para ordenar los resultados.
Sintaxis básica de ORDER BY.
Ejemplo de cómo ordenar resultados en orden ascendente y descendente.
2. Orden ascendente y descendente
Diferencia entre orden ascendente (ASC) y descendente (DESC).
Cómo ordenar por una o varias columnas.
Ejemplo de ordenación con múltiples columnas.
3. Ordenación por múltiples columnas
Uso de ORDER BY para ordenar por más de una columna.
Ejemplos de ordenación jerárquica.
Sintaxis avanzada de ordenación con múltiples criterios.
4. Ordenando con funciones agregadas
Cómo ordenar los resultados cuando se usan funciones agregadas como SUM() y
AVG().
Ejemplo de ordenación de resultados agrupados por una función agregada.
Uso de ORDER BY con HAVING.
5. Uso de ORDER BY con valores nulos
Cómo manejar valores nulos (NULL) al ordenar datos.
Comportamiento por defecto en SQL con valores nulos en el ordenamiento.
Ejemplo de ordenación donde los valores nulos aparecen al final.
6. Uso de RAND() para orden aleatorio
Qué es RAND() y cómo se usa para ordenar aleatoriamente los resultados.
Ejemplo práctico de uso de ORDER BY RAND().
Limitación de filas con orden aleatorio.
7. Ordenando por expresiones calculadas
Uso de expresiones calculadas en la cláusula ORDER BY.
Ejemplo de ordenación de resultados usando cálculos sobre las columnas.
Cómo ordenar por la suma o promedio de valores de una columna.
8. Manejo de cadenas de texto al ordenar
Cómo ordenar datos de tipo cadena de texto.
Comportamiento del ordenamiento de cadenas en SQL.
Ejemplo de ordenación alfabética en un campo de texto.
9. Consideraciones al ordenar grandes conjuntos de datos
Desempeño y optimización al usar ORDER BY en grandes conjuntos de datos.
Buenas prácticas para mejorar la eficiencia de la consulta.
Uso de índices para optimizar la ordenación.
10. Limitando el número de resultados ordenados
Uso de LIMIT o TOP para restringir la cantidad de registros ordenados.
Ejemplo de cómo limitar los resultados de una consulta ordenada.
Aplicación de LIMIT con ORDER BY para obtener los primeros o últimos registros.
11. Prácticas recomendadas al ordenar datos
Consejos y mejores prácticas al usar ORDER BY.
Consideraciones sobre el impacto en el rendimiento y la legibilidad de las
consultas.
Ejemplo de ordenación eficiente en bases de datos grandes.
Módulo 9: Filtrando Datos en SQL (12 lecciones)
1. Uso de LIKE y patrones
Revisión y aplicación avanzada del operador LIKE.
Uso de comodines para encontrar patrones complejos.
Ejemplos prácticos con patrones de búsqueda complejos.
2. Filtrado avanzado con operadores lógicos
Aplicación de operadores lógicos avanzados para filtrar datos.
Uso de NOT LIKE, NOT IN, y otras combinaciones de filtros.
Ejemplos avanzados de filtrado con múltiples condiciones.
3. Filtrado de texto con funciones
Uso de funciones de texto como CONCAT(), TRIM(), SUBSTRING(), para filtrar
datos.
Cómo trabajar con cadenas de texto al filtrar.
Ejemplo de uso de funciones de texto para obtener resultados específicos.
4. Uso de operadores de comparación
Filtrado avanzado con operadores de comparación: =, >, LIKE, etc.
Combinación de estos operadores con subconsultas y otros filtros.
Ejemplos de consultas complejas usando operadores de comparación.
5. Filtrado con subconsultas
Uso avanzado de subconsultas en la cláusula WHERE.
Subconsultas correlacionadas y no correlacionadas.
Ejemplo de filtrado utilizando subconsultas en SQL.
6. Uso de funciones de agregación en el filtrado
Uso de funciones agregadas con cláusulas HAVING para filtrar grupos de datos.
Ejemplo de cómo filtrar resultados agregados con HAVING.
Comparación de WHERE y HAVING para filtrado.
7. Filtrado de fechas y horas
Cómo filtrar por fechas con operadores de fecha.
Uso de DATE(), YEAR(), y otras funciones de fecha.
Ejemplo de consultas filtradas por fecha.
8. Uso de expresiones regulares para filtrado
Qué son las expresiones regulares y cómo se utilizan en SQL.
Aplicación de REGEXP en filtros avanzados.
Ejemplo de uso de expresiones regulares para patrones complejos.
9. Filtrado con operadores de conjunto (UNION)
Cómo usar operadores de conjunto (UNION, INTERSECT, EXCEPT) para combinar
filtros de datos.
Ejemplo de uso de UNION y cómo afecta al filtrado de datos.
Diferencia entre UNION y JOIN.
10. Optimización de consultas con filtros
Mejores prácticas y consideraciones de rendimiento al filtrar datos.
Uso de índices y otras optimizaciones para consultas con filtros complejos.
Ejemplo de cómo mejorar el rendimiento al filtrar grandes volúmenes de datos.
11. Filtrado avanzado con CTEs (Common Table Expressions)
Qué son las CTEs y cómo se utilizan para estructurar consultas complejas.
Filtrado de datos utilizando CTEs en lugar de subconsultas.
Ejemplo de uso de CTEs para filtrado avanzado.
12. Práctica avanzada de filtrado de datos
Desarrollo de consultas avanzadas combinando técnicas de filtrado y funciones.
Ejemplos prácticos de uso de filtros en situaciones reales de bases de datos.
Módulo 10: SQL Funciones de Agregación (8
lecciones)
1. Uso de SUM()
Qué es la función SUM() y cómo se usa para calcular sumas de columnas
numéricas.
Ejemplo práctico de uso de SUM() en una consulta.
2. Uso de AVG()
Qué es la función AVG() y cómo se usa para calcular promedios de columnas
numéricas.
Ejemplo práctico de uso de AVG() para obtener promedios.
3. Uso de COUNT()
Qué es la función COUNT() y cómo se usa para contar registros.
Ejemplo de uso de COUNT() con diferentes tipos de agrupaciones.
4. Uso de MIN()
Qué es la función MIN() y cómo se usa para obtener el valor mínimo de una
columna.
Ejemplo de uso de MIN() en consultas.
5. Uso de MAX()
Qué es la función MAX() y cómo se usa para obtener el valor máximo de una
columna.
Ejemplo de uso de MAX() en consultas.
6. Combinando funciones de agregación
Cómo combinar varias funciones de agregación en una sola consulta.
Ejemplos prácticos de combinaciones de `
7. Agrupación con GROUP BY
Qué es GROUP BY y cómo se usa para agrupar datos y aplicar funciones de
agregación.
Ejemplo de uso de GROUP BY con varias funciones de agregación.
8. Uso de HAVING para filtrar grupos
Qué es la cláusula HAVING y cómo se utiliza para filtrar resultados después de
aplicar funciones de agregación.
Ejemplo de uso de HAVING junto con GROUP BY para filtrar grupos específicos.
Módulo 11: SQL Intermedio (21 lecciones)
1. Introducción a JOIN
Qué es un JOIN y su utilidad en SQL.
Diferencias entre los tipos de JOIN.
Sintaxis básica de JOIN.
2. INNER JOIN
Explicación del INNER JOIN y cuándo se utiliza.
Sintaxis y ejemplos básicos de INNER JOIN.
Cómo funciona el filtrado de resultados al hacer un INNER JOIN.
3. LEFT JOIN (LEFT OUTER JOIN)
Qué es el LEFT JOIN y cómo se utiliza para obtener todos los registros de la
tabla izquierda y los que coinciden de la tabla derecha.
Sintaxis y ejemplos prácticos.
Diferencia entre INNER JOIN y LEFT JOIN.
4. RIGHT JOIN (RIGHT OUTER JOIN)
Qué es el RIGHT JOIN y cómo se utiliza para obtener todos los registros de la
tabla derecha y los que coinciden de la tabla izquierda.
Sintaxis y ejemplos prácticos.
Diferencia entre LEFT JOIN y RIGHT JOIN.
5. FULL JOIN (FULL OUTER JOIN)
Qué es el FULL JOIN y cómo se utiliza para obtener todos los registros de ambas
tablas.
Sintaxis y ejemplos prácticos.
Cuándo utilizar FULL JOIN en lugar de otros tipos de JOIN.
6. CROSS JOIN
Qué es el CROSS JOIN y cómo se usa para obtener el producto cartesiano de dos
tablas.
Ejemplos de cómo funciona el CROSS JOIN.
Cuándo evitar el uso de CROSS JOIN debido a sus posibles implicaciones de
rendimiento.
7. SELF JOIN
Qué es un SELF JOIN y cuándo se utiliza para unir una tabla consigo misma.
Sintaxis y ejemplos prácticos de SELF JOIN.
Casos en los que un SELF JOIN puede ser útil.
8. Subconsultas (Subqueries)
Qué es una subconsulta y cómo se utiliza en SQL.
Subconsultas en la cláusula WHERE.
Ejemplo de uso de subconsultas para filtrar resultados.
9. Subconsultas en SELECT
Uso de subconsultas en la cláusula SELECT para obtener resultados de una
consulta dentro de otra.
Sintaxis y ejemplos de subconsultas en SELECT.
10. Subconsultas en FROM
Qué son las subconsultas en la cláusula FROM y cómo se utilizan para crear tablas
derivadas.
Ejemplo de subconsulta en FROM para crear una vista temporal.
11. Subconsultas correlacionadas
Qué son las subconsultas correlacionadas y cómo se diferencian de las no
correlacionadas.
Sintaxis y ejemplos de subconsultas correlacionadas.
12. Uso de operadores con subconsultas
Uso de operadores como IN, ANY, ALL con subconsultas.
Ejemplos de filtrado con operadores combinados con subconsultas.
13. Creación de vistas (Views)
Qué son las vistas en SQL y su propósito.
Sintaxis para crear una vista utilizando CREATE VIEW.
Ejemplo de cómo crear y consultar una vista.
14. Actualizar y eliminar vistas
Qué sucede cuando intentamos modificar o eliminar registros en una vista.
Cómo actualizar una vista usando CREATE OR REPLACE VIEW.
Eliminar vistas con DROP VIEW.
15. Ventajas y desventajas de las vistas
Cuándo es útil utilizar vistas en lugar de consultas directas.
Limitaciones de las vistas y cómo afectan al rendimiento.
Buenas prácticas al trabajar con vistas.
16. Vistas complejas con múltiples tablas
Cómo crear vistas que incluyan varias tablas utilizando JOIN en la definición de la
vista.
Ejemplo de vista que involucra combinaciones de JOIN.
17. Indices en SQL
Qué son los índices en SQL y cómo mejoran el rendimiento de las consultas.
Sintaxis para crear y eliminar índices.
Ejemplo de creación de índices para optimizar consultas de búsqueda.
18. Uso de funciones de agregación con JOIN
Cómo aplicar funciones de agregación (COUNT(), SUM(), AVG(), etc.) a
resultados obtenidos por JOIN.
Ejemplos de funciones agregadas con JOIN.
19. Transacciones en SQL
Qué son las transacciones y cómo aseguran la integridad de los datos.
Comandos para controlar transacciones: BEGIN, COMMIT, ROLLBACK.
Ejemplos de uso de transacciones en SQL.
20. Bloqueo de registros
Qué es el bloqueo de registros en SQL y cómo afecta al acceso concurrente a los
datos.
Diferentes niveles de aislamiento de transacciones.
Cómo utilizar FOR UPDATE para bloquear registros.
21. Optimización de consultas intermedias
Mejores prácticas para optimizar consultas SQL más complejas.
Uso de índices, subconsultas y vistas para mejorar el rendimiento.
Ejemplo de optimización de consultas con JOIN y subconsultas.
1.
Módulo 12: Primeros Pasos con Pandas (34 lecciones)
1. Introducción a Pandas
2. Creación de DataFrames
3. Manejo de datos con Pandas
... (hasta 34 lecciones)
Módulo 13: Sentencias Condicionales en Python (15
lecciones)
1. Uso avanzado de if
Explicación del uso de la sentencia if en casos más complejos.
Anidación de sentencias if.
Ejemplos prácticos de uso avanzado de if en Python.
2. Sentencias anidadas
Qué son las sentencias anidadas y cómo se utilizan para hacer comparaciones
más complejas.
Sintaxis de sentencias if dentro de otras sentencias if, elif y else.
Ejemplo de sentencias anidadas con varios niveles de decisión.
3. Operadores lógicos en if
Uso de operadores lógicos como and, or y not en las sentencias condicionales.
Ejemplos de cómo combinar condiciones utilizando estos operadores.
4. Condicionales con valores booleanos
Explicación de cómo las expresiones booleanas pueden usarse directamente en
las sentencias if.
Ejemplo de condicionales que evalúan expresiones booleanas.
5. Condicionales con operadores de comparación
Uso de operadores de comparación como ==, !=, >, <, >=, <= en las sentencias
if.
Ejemplo de comparaciones complejas dentro de las condicionales.
6. Uso de elif para múltiples condiciones
Qué es elif y cómo se utiliza para evaluar múltiples condiciones sin necesidad
de anidar sentencias if.
Ejemplo práctico del uso de elif en situaciones con más de dos opciones.
7. Condicionales ternarios
Introducción a las expresiones condicionales de una sola línea (condicional
ternario).
Sintaxis del condicional ternario en Python: x if condition else y.
Ejemplo de uso y cuándo aplicar condicionales ternarios.
8. Sentencias if con operadores en cadena
Uso de operadores como in y not in para comprobar pertenencia de elementos
en listas, cadenas o conjuntos.
Ejemplo de uso de in y not in en sentencias condicionales.
9. Sentencias if con cadenas de texto
Uso de sentencias if para comparar cadenas de texto.
Ejemplo de comparaciones de cadenas de texto y cómo Python maneja la
comparación de cadenas.
10. Condicionales con listas y diccionarios
Cómo evaluar condiciones basadas en el contenido de listas, diccionarios y otros
tipos de datos compuestos.
Ejemplos de uso de condicionales con listas y diccionarios.
11. Condicionales con números negativos y cero
Cómo Python maneja los valores negativos y el cero en las condiciones if.
Ejemplos prácticos de condicionales con números negativos, cero y su
comportamiento en comparaciones.
12. Condicionales con cadenas vacías
Qué ocurre cuando se evalúan cadenas vacías dentro de una sentencia if.
Ejemplo de manejo de cadenas vacías y no vacías.
13. Sentencias condicionales con excepciones
Uso de las sentencias condicionales dentro de bloques try/except para
manejar excepciones específicas.
Ejemplo de cómo las condiciones pueden ayudar a manejar excepciones de
manera eficiente.
14. Condicionales con all() y any()
Uso de las funciones all() y any() dentro de condicionales para evaluar listas o
iterables.
Ejemplo de condicionales con all() y any() para validar múltiples condiciones a
la vez.
15. Condicionales con funciones y retornos
Uso de funciones dentro de las sentencias if para simplificar el código.
Ejemplo de cómo usar condicionales en la lógica de las funciones, devolviendo
valores basados en las condiciones.
Módulo 14: Tipos de Datos en Python (34 lecciones)
1. Introducción a los tipos de datos en Python
¿Qué son los tipos de datos y por qué son importantes en Python?
Tipos de datos más utilizados en Python.
2. Números en Python
Tipos de datos numéricos: int, float, complex.
Operaciones matemáticas básicas con números.
3. Cadenas de caracteres (str)
Definición y uso de cadenas en Python.
Concatenación y repetición de cadenas.
4. Operaciones con cadenas
Métodos básicos: upper(), lower(), replace(), strip(), etc.
Acceso a caracteres mediante índices y rebanado (slicing).
5. Tipos de datos booleanos (bool)
Uso de True y False en Python.
Conversión de otros tipos de datos a booleanos.
6. Listas en Python (list)
Definición y creación de listas.
Métodos comunes como append(), remove(), pop(), sort(), etc.
7. Indexación y rebanado en listas
Acceder a elementos individuales.
Extraer sublistas usando slicing.
8. Operaciones avanzadas con listas
Comprensiones de listas (list comprehensions).
Listas anidadas y acceso a sus elementos.
9. Tuplas en Python (tuple)
Definición y diferencias con las listas.
Creación y acceso a los elementos de una tupla.
10. Métodos y operaciones con tuplas
Métodos como count() y index().
Conversión entre listas y tuplas.
11. Conjuntos en Python (set)
Creación de conjuntos y eliminación de duplicados.
Operaciones de conjuntos: unión, intersección, diferencia.
12. Métodos avanzados con conjuntos
Métodos como add(), remove(), discard(), clear().
Uso de frozenset.
13. Diccionarios en Python (dict)
Definición y creación de diccionarios.
Acceso y modificación de valores en diccionarios.
14. Métodos avanzados con diccionarios
Métodos como keys(), values(), items(), get(), pop().
Diccionarios anidados y acceso a sus valores.
15. Conversión de tipos de datos
Convertir entre int, float, str, list, tuple, etc.
Ejemplos prácticos de conversión de tipos.
16. Manejo de None en Python
¿Qué es None y cómo se usa en Python?
Diferencias entre None, 0, False y "".
17. Tipos de datos mutables e inmutables
Diferencias entre mutabilidad e inmutabilidad.
Ejemplos de tipos de datos mutables e inmutables.
18. Operaciones con tipos de datos mixtos
Cómo Python maneja operaciones entre distintos tipos de datos.
Errores comunes y cómo evitarlos.
19. Operaciones con secuencias
Uso de operadores como in, not in, +, * con listas, tuplas y cadenas.
Iteración sobre secuencias con for.
20. Uso de enumerate() y zip()
Cómo recorrer listas y tuplas con enumerate().
Uso de zip() para combinar listas o tuplas.
21. Desempaquetado de valores
Cómo desempaquetar listas y tuplas en variables individuales.
Uso de *args y **kwargs en funciones.
22. Tipos de datos personalizados con class
Introducción a la creación de tipos de datos personalizados.
Creación de clases y objetos en Python.
23. Tipos de datos avanzados: deque, Counter, defaultdict
Uso de [Link] para manejo eficiente de listas.
Uso de Counter y defaultdict en análisis de datos.
24. Manejo de fechas y horas con datetime
Introducción a la librería datetime.
Cómo manipular fechas y horas en Python.
25. Expresiones regulares con re
Introducción a las expresiones regulares.
Uso de match(), search(), findall(), sub().
26. Serialización de datos con json
Cómo convertir datos de Python a formato JSON y viceversa.
Ejemplo práctico de almacenamiento y recuperación de datos con JSON.
27. Serialización con pickle
Introducción a pickle para guardar estructuras de datos en archivos binarios.
Ejemplo de uso con dump() y load().
28. Uso de namedtuple y dataclasses
Cómo definir estructuras de datos más eficientes con namedtuple.
Introducción a dataclasses en Python 3.7+.
29. Introducción a Bytes y Bytearray
Cómo manejar datos binarios con bytes y bytearray.
Conversión entre bytes y otros tipos de datos.
30. Iteradores e iterables en Python
Qué son los iteradores y cómo funcionan en Python.
Uso de iter() y next().
31. Generadores (yield) en Python
Diferencias entre funciones normales y generadores.
Ejemplo de uso de yield en generadores.
32. Diccionarios ordenados con OrderedDict
Diferencias entre dict y OrderedDict.
Ejemplo de ordenación y acceso a elementos en OrderedDict.
33. Uso de setdefault() en diccionarios
Cómo evitar KeyError usando setdefault().
Aplicaciones en la manipulación de diccionarios dinámicos.
34. Resumen y buenas prácticas
Resumen de los tipos de datos más importantes en Python.
Reglas y mejores prácticas para trabajar con distintos tipos de datos.
Módulo 15: Estructuras de Datos en Python (31
lecciones)
1. Introducción a las estructuras de datos
¿Qué son las estructuras de datos?
Importancia en la programación y optimización de código.
2. Pilas (Stacks)
Concepto de pila y su funcionamiento (LIFO: Last In, First Out).
Implementación de una pila con listas en Python.
3. Operaciones en pilas
Métodos principales: push(), pop(), peek(), is_empty().
Aplicaciones de pilas en la programación.
4. Implementación de una pila con deque
Uso del módulo [Link] para una pila más eficiente.
Comparación entre listas y deque.
5. Colas (Queues)
Concepto de cola y su funcionamiento (FIFO: First In, First Out).
Implementación de una cola con listas en Python.
6. Operaciones en colas
Métodos principales: enqueue(), dequeue(), is_empty().
Ejemplo práctico con colas en Python.
7. Implementación de una cola con deque
Uso de [Link] para mejorar el rendimiento.
Comparación entre listas y deque.
8. Colas de prioridad (PriorityQueue)
Introducción a las colas de prioridad.
Uso del módulo [Link].
9. Listas enlazadas (Linked Lists)
Diferencias entre listas normales y listas enlazadas.
Implementación de una lista enlazada simple en Python.
10. Operaciones en listas enlazadas
Inserción, eliminación y búsqueda de elementos.
Recorrido de una lista enlazada.
11. Listas doblemente enlazadas
Introducción y ventajas de las listas doblemente enlazadas.
Implementación de una lista doblemente enlazada.
12. Listas circulares
Diferencias entre listas normales y circulares.
Implementación de listas circulares en Python.
13. Tablas hash y diccionarios
Introducción a la función hash y colisiones.
Implementación de tablas hash en Python con diccionarios.
14. Implementación de una tabla hash personalizada
Creación de una tabla hash desde cero.
Manejo de colisiones con encadenamiento.
15. Árboles en Python
Introducción a estructuras de árbol.
Tipos de árboles más utilizados en programación.
16. Árbol binario de búsqueda (BST)
Concepto y propiedades de un BST.
Implementación de un BST en Python.
17. Operaciones en BST
Inserción, eliminación y búsqueda en un BST.
Recorridos de árbol: preorden, inorden y postorden.
18. Árboles balanceados (AVL y Red-Black Trees)
Introducción a los árboles balanceados.
Implementación básica de rotaciones en un AVL.
19. Introducción a grafos
Concepto de grafo y su representación.
Tipos de grafos: dirigidos y no dirigidos.
20. Implementación de un grafo en Python
Representación con listas de adyacencia.
Métodos básicos para agregar y eliminar nodos/aristas.
21. Algoritmos de recorrido en grafos
BFS (Búsqueda en Anchura) y DFS (Búsqueda en Profundidad).
Implementación de ambos algoritmos en Python.
22. Heaps y montículos (heapq)
Introducción a montículos (heaps).
Uso del módulo heapq para colas de prioridad.
23. Algoritmo de Dijkstra para rutas más cortas
Explicación del algoritmo de Dijkstra.
Implementación en Python.
24. Implementación de una estructura de datos personalizada
Creación de una estructura de datos combinando listas y diccionarios.
Ejemplo práctico de una estructura optimizada.
25. Manejo de estructuras de datos con dataclasses
Uso del módulo dataclasses para estructuras eficientes.
Ejemplo de implementación de un árbol con dataclasses.
26. Compresión de datos con [Link]
Introducción a Counter para conteo eficiente.
Aplicaciones en procesamiento de datos.
27. Uso de defaultdict para estructuras dinámicas
Creación de estructuras de datos flexibles con defaultdict.
Ejemplo con listas enlazadas y diccionarios.
28. Estructuras de datos en aplicaciones reales
Uso de estructuras de datos en juegos, bases de datos y redes.
Ejemplo práctico con análisis de datos.
29. Comparación de eficiencia entre estructuras
Análisis de la eficiencia de pilas, colas y listas enlazadas.
Elección de la mejor estructura para cada caso.
30. Buenas prácticas en estructuras de datos
Reglas para escribir código limpio y optimizado.
Evitar errores comunes al implementar estructuras de datos.
31. Proyecto final: Implementación de un sistema de tareas
Desarrollo de un sistema de tareas con colas y listas enlazadas.
Optimización con estructuras de datos avanzadas.
------------------------------------------------------------------------------------------------------------------
Contenido general
Curso Completo de Python y SQL
Descripción
Aprende Python desde cero y domina SQL para el análisis de datos con este curso
estructurado en módulos prácticos y progresivos.
Módulo 1: Introducción a Python (64 lecciones)
1. Historia y ventajas de Python
¿Por qué Python se ha vuelto tan popular?
Ventajas de Python sobre otros lenguajes de programación
2. Instalación y configuración de Python
Descargar e instalar Python
Verificación de instalación en diferentes sistemas operativos (Windows, macOS, Linux)
3. Uso del intérprete y ejecución de scripts
Qué es el intérprete de Python
Ejecutar código en la consola interactiva
Cómo ejecutar un script Python desde la terminal
4. Primeros pasos con Python
Estructura básica de un programa Python
Hola Mundo: Primer programa en Python
5. El intérprete interactivo de Python
Cómo usar el REPL (Read-Eval-Print Loop)
Ventajas de programar interactuando con el intérprete
6. Primeros comandos y funciones básicas
Uso de la función print()
Entrada de datos con input()
Comentarios en Python
7. Variables y asignación de valores
Introducción a las variables en Python
Asignación de valores y tipos de datos básicos
8. Tipos de datos en Python: Números
Números enteros (int)
Números flotantes (float)
Operaciones aritméticas
9. Tipos de datos en Python: Cadenas de texto
Qué es una cadena de texto (str)
Operaciones con cadenas de texto
10. Tipos de datos en Python: Booleanos
Introducción a los valores booleanos (True, False)
Uso de booleanos en condicionales
11. Tipos de datos en Python: Listas
Qué son las listas en Python
Operaciones básicas con listas (añadir, eliminar, acceder)
12. Tipos de datos en Python: Tuplas
Qué son las tuplas y cómo se diferencian de las listas
Acceso y manipulación de tuplas
13. Tipos de datos en Python: Diccionarios
Introducción a los diccionarios en Python
Operaciones básicas con diccionarios (acceso, inserción, eliminación)
14. Tipos de datos en Python: Conjuntos
Qué son los conjuntos en Python
Operaciones básicas con conjuntos
15. Tipos de datos en Python: None
¿Qué es None en Python?
Uso común de None en programación
16. Conversión entre tipos de datos
Cómo convertir entre diferentes tipos de datos en Python
Funciones de conversión como int(), float(), str()
17. Operadores en Python
Operadores aritméticos
Operadores de comparación
Operadores lógicos
18. Condicionales: if, elif, else
Sintaxis y funcionamiento
Uso práctico de las estructuras condicionales
19. Bucles for en Python
Introducción a los bucles for
Uso de for para recorrer listas y otros iterables
20. Bucles while en Python
Uso básico del bucle while
Ejemplos prácticos con while
21. Sentencias break, continue y else en bucles
Controlando el flujo de los bucles
Cómo salir de un bucle anticipadamente con break
22. Funciones en Python
Qué es una función en Python
Definición y llamada de funciones
23. Parámetros y argumentos en funciones
Diferencia entre parámetros y argumentos
Funciones con múltiples parámetros
24. Retorno de valores en funciones
Cómo devolver valores desde una función
Ejemplos prácticos con funciones que retornan resultados
25. Funciones de orden superior
Qué son las funciones de orden superior
Uso de funciones como map(), filter(), y reduce()
26. Manejo de excepciones en Python
Qué son las excepciones
Cómo manejar errores con try y except
27. Archivos en Python
Cómo leer y escribir archivos en Python
Ejemplo de lectura de un archivo de texto
28. Introducción a la depuración en Python
Qué es la depuración
Uso de pdb para depurar programas en Python
29. Estructura de directorios y módulos
Qué son los módulos en Python
Cómo importar y utilizar módulos
30. Introducción a las bibliotecas estándar de Python
Algunas bibliotecas útiles como os, math, datetime
Ejemplos prácticos con las bibliotecas estándar
31. Trabajando con fechas y horas
Uso de la biblioteca datetime
Cómo obtener la fecha y hora actuales
32. Introducción a la orientación a objetos en Python
Qué es la programación orientada a objetos (OOP)
Clases y objetos en Python
33. Creación de clases en Python
Cómo definir clases en Python
Creación de instancias de clase
34. Atributos y métodos de una clase
Qué son los atributos y métodos en una clase
Ejemplo de uso de atributos y métodos
35. Herencia en Python
Qué es la herencia en programación orientada a objetos
Cómo usar la herencia en Python
36. Encapsulamiento y polimorfismo en Python
Explicación de encapsulamiento y polimorfismo
Ejemplos prácticos en Python
37. Uso de self en clases
Qué es self y cómo se utiliza en las clases
Ejemplo de su aplicación
38. Listas por comprensión
Qué es una lista por comprensión
Sintaxis y ejemplos de listas por comprensión
39. Funciones lambda
Qué son las funciones lambda
Sintaxis y ejemplos prácticos
40. Introducción a la programación funcional en Python
Qué es la programación funcional
Uso de funciones como map(), filter(), reduce()
41. Módulos y paquetes en Python
Diferencia entre módulos y paquetes
Cómo organizar tu código en módulos
42. Introducción a las pruebas unitarias
Qué son las pruebas unitarias
Cómo escribir pruebas unitarias en Python con unittest
43. Cómo crear tu propio módulo en Python
Creación y organización de módulos personalizados
Importación y uso de módulos propios
44. Manejo de errores en Python
Manejo de excepciones específicas
Uso de finally para la limpieza de recursos
45. Uso de generadores en Python
Qué son los generadores
Cómo crear y utilizar generadores en Python
46. Introducción a las expresiones regulares
Qué son las expresiones regulares
Ejemplos básicos de uso de expresiones regulares en Python
47. Introducción a la manipulación de datos con pandas
Qué es pandas y para qué sirve
Instalación y primeros pasos con pandas
48. Creación y manipulación de DataFrames con pandas
Qué es un DataFrame
Cómo crear y manipular DataFrames
49. Importación de datos con pandas
Leer archivos CSV, Excel y bases de datos con pandas
Ejemplo práctico de carga de datos
50. Filtros y selecciones en pandas
Filtrar y seleccionar datos en un DataFrame
Uso de condiciones en pandas
51. Trabajar con datos faltantes en pandas
Cómo manejar datos faltantes (NaN) en un DataFrame
Métodos de limpieza de datos
52. Visualización de datos con matplotlib
Introducción a matplotlib para visualización de datos
Creación de gráficos simples
53. Introducción a numpy para operaciones numéricas
Qué es numpy y cómo ayuda en Python
Operaciones básicas con numpy
54. Manejo de cadenas de texto con re
Uso de la librería re para expresiones regulares
Buscar y manipular texto con re
55. Cómo trabajar con APIs en Python
Qué es una API
Cómo hacer solicitudes HTTP en Python usando requests
56. Uso de bases de datos con Python
Conexión a bases de datos con sqlite3
Realizar consultas a una base de datos
57. Integración de Python con otras tecnologías
Cómo integrar Python con herramientas y tecnologías populares
Ejemplos prácticos de integración
58. Optimización de código Python
Consejos para mejorar el rendimiento de tu código Python
Herramientas para medir el rendimiento
59. Automatización con Python
Qué es la automatización
Cómo usar Python para automatizar tareas repetitivas
60. Creación de interfaces gráficas con Python
Qué son las interfaces gráficas
Creación de interfaces con Tkinter
61. Programación de redes en Python
Introducción a la programación de redes
Ejemplos básicos de uso de sockets en Python
62. Desarrollo web con Python y Flask
Qué es Flask y cómo crear aplicaciones web simples
Primeros pasos en el desarrollo web con Python
63. Implementación de pruebas automatizadas
Introducción a las pruebas automatizadas en Python
Escribir pruebas y ejecutar con pytest
64. Repaso y proyecto final
Resumen de todos los conceptos aprendidos
Proyecto final integrando múltiples temas de Python
Módulo 2: Variables y Tipos (12 lecciones)
1. Introducción a variables en Python
2. Tipos de datos básicos
3. Conversión de tipos
4. Buenas prácticas en nombres de variables
... (continuar hasta completar 12 lecciones)
Módulo 3: Declaraciones Condicionales (11 lecciones)
1. Introducción a las estructuras de control
2. Uso de if, elif y else
3. Operadores lógicos y relacionales
... (hasta completar 11 lecciones)
Módulo 4: Otros Tipos de Datos (14 lecciones)
1. Listas en Python
2. Tuplas
3. Conjuntos
4. Diccionarios
... (hasta completar 14 lecciones)
Módulo 5: Python Loops y Funciones (20 lecciones)
1. Introducción a los bucles
2. Uso de for y while
3. Creación de funciones en Python
... (hasta 20 lecciones)
Módulo 6: Introducción a SQL (41 lecciones)
1. Qué es SQL y para qué sirve
2. Instalación de un gestor de bases de datos
3. Primeros comandos en SQL
... (hasta 41 lecciones)
Módulo 7: Recuperando Datos en SQL (10 lecciones)
1. Introducción a SELECT
2. Uso de WHERE
3. Filtrado básico de datos
... (hasta 10 lecciones)
Módulo 8: Ordenando Datos Recuperados en SQL (11
lecciones)
1. Uso de ORDER BY
2. Orden ascendente y descendente
... (hasta 11 lecciones)
Módulo 9: Filtrando Datos en SQL (12 lecciones)
1. Uso de LIKE y IN
2. Filtrado avanzado
... (hasta 12 lecciones)
Módulo 10: SQL Funciones de Agregación (8 lecciones)
1. Uso de SUM(), AVG(), COUNT()
2. Agrupación con GROUP BY
... (hasta 8 lecciones)
Módulo 11: SQL Intermedio (21 lecciones)
1. Uso de JOIN
2. Subconsultas
3. Creación de vistas
... (hasta 21 lecciones)
Módulo 12: Primeros Pasos con Pandas (34 lecciones)
1. Introducción a Pandas
2. Creación de DataFrames
3. Manejo de datos con Pandas
... (hasta 34 lecciones)
Módulo 13: Sentencias Condicionales en Python (15
lecciones)
1. Uso avanzado de if
2. Sentencias anidadas
... (hasta 15 lecciones)
Módulo 14: Tipos de Datos en Python (34 lecciones)
1. Números en Python
2. Cadenas de caracteres
... (hasta 34 lecciones)
Módulo 15: Estructuras de Datos en Python (31
lecciones)
1. Pilas y colas
2. Listas enlazadas
... (hasta 31 lecciones)
Este esquema te ayudará a visualizar cómo se estructura el curso y cómo puedes
desarrollarlo en Hotmart. ¿Quieres que también te ayude con los textos para cada lección?
😊