mi茅rcoles, 5 de marzo de 2025

馃憠 Ejercicios Pr谩cticos con Bases de Datos SQLite en Python

Ya aprendimos a crear, insertar y consultar datos en bases de datos SQLite en Python. Ahora es momento de poner en pr谩ctica lo aprendido con ejercicios explicados paso a paso.

Hoy resolveremos ejercicios sobre:
✔️ Conectar y crear una base de datos SQLite
✔️ Insertar m煤ltiples registros en una tabla
✔️ Consultar, actualizar y eliminar datos
✔️ Ejemplo pr谩ctico con una base de datos de productos

馃搶 Cada ejercicio incluye el c贸digo, explicaci贸n y prueba de salida.


1️⃣ Ejercicio: Crear una Base de Datos SQLite y una Tabla

馃搷 Objetivo: Crear una base de datos llamada tienda.db y una tabla productos.

馃敼 C贸digo:

import sqlite3 conexion = sqlite3.connect("tienda.db") cursor = conexion.cursor() cursor.execute(""" CREATE TABLE IF NOT EXISTS productos ( id INTEGER PRIMARY KEY AUTOINCREMENT, nombre TEXT, precio REAL, stock INTEGER ) """) conexion.commit() conexion.close() print("Base de datos y tabla creadas exitosamente.")

Este c贸digo crea una base de datos SQLite con una tabla productos.

馃搶 Salida esperada:

Base de datos y tabla creadas exitosamente.

2️⃣ Ejercicio: Insertar Productos en la Base de Datos

馃搷 Objetivo: Insertar varios productos en la tabla productos.

馃敼 C贸digo:

conexion = sqlite3.connect("tienda.db") cursor = conexion.cursor() productos = [ ("Laptop", 1200.50, 10), ("Mouse", 25.99, 50), ("Teclado", 45.75, 30), ("Monitor", 300.00, 15) ] cursor.executemany("INSERT INTO productos (nombre, precio, stock) VALUES (?, ?, ?)", productos) conexion.commit() conexion.close() print("Productos agregados correctamente.")

馃搶 Salida esperada:

Productos agregados correctamente.

Este c贸digo inserta m煤ltiples registros en la tabla de productos.


3️⃣ Ejercicio: Consultar los Productos Disponibles

馃搷 Objetivo: Obtener todos los productos almacenados en la base de datos.

馃敼 C贸digo:

conexion = sqlite3.connect("tienda.db") cursor = conexion.cursor() cursor.execute("SELECT * FROM productos") productos = cursor.fetchall() for producto in productos: print(producto) conexion.close()

馃搶 Salida esperada:

(1, 'Laptop', 1200.5, 10) (2, 'Mouse', 25.99, 50) (3, 'Teclado', 45.75, 30) (4, 'Monitor', 300.0, 15)

Ideal para visualizar los datos almacenados en SQLite.


4️⃣ Ejercicio: Actualizar el Stock de un Producto

馃搷 Objetivo: Modificar la cantidad de stock de un producto en la base de datos.

馃敼 C贸digo:

conexion = sqlite3.connect("tienda.db") cursor = conexion.cursor() cursor.execute("UPDATE productos SET stock = ? WHERE nombre = ?", (20, "Laptop")) conexion.commit() conexion.close() print("Stock actualizado correctamente.")

馃搶 Salida esperada:

Stock actualizado correctamente.

Permite actualizar datos en la base de datos.


5️⃣ Ejercicio: Eliminar un Producto de la Base de Datos

馃搷 Objetivo: Borrar un producto de la base de datos SQLite.

馃敼 C贸digo:

conexion = sqlite3.connect("tienda.db") cursor = conexion.cursor() cursor.execute("DELETE FROM productos WHERE nombre = ?", ("Mouse",)) conexion.commit() conexion.close() print("Producto eliminado correctamente.")

馃搶 Salida esperada:

Producto eliminado correctamente.

脷til para eliminar registros innecesarios.


馃殌 Conclusi贸n

✅ Hoy hemos resuelto ejercicios con bases de datos SQLite en Python.
✅ Estos ejercicios permiten gestionar informaci贸n almacenada en una base de datos.
✅ Practica modificando el c贸digo para entenderlo mejor.

馃搶 Pr贸ximo post: C贸mo conectar SQLite con una aplicaci贸n web en Python.

馃搨 Descarga los ejercicios en mi GitHub: github.com/josecodetech

馃帴 Aprende con mis videos en YouTube: https://www.youtube.com/@josecodetech

馃挰 ¿Qu茅 tipo de datos te gustar铆a gestionar en SQLite? Com茅ntamelo.



lunes, 3 de marzo de 2025

馃憠 Bases de Datos en Python con SQLite: C贸mo Almacenar y Consultar Datos

Cuando trabajamos con datos en Python, los archivos TXT, CSV o JSON pueden ser 煤tiles, pero no siempre son la mejor opci贸n. Para almacenar informaci贸n de forma estructurada y eficiente, utilizamos bases de datos.

Hoy aprender谩s:
✔️ ¿Qu茅 es SQLite y por qu茅 usarlo en Python?
✔️ Crear y conectar una base de datos SQLite
✔️ Crear, insertar y consultar datos en una tabla
✔️ Actualizar y eliminar registros
✔️ Ejemplo pr谩ctico paso a paso

馃搶 Al final del post, podr谩s manejar bases de datos en Python como un profesional.


1️⃣ ¿Qu茅 es SQLite y por qu茅 usarlo en Python?

SQLite es un gestor de bases de datos ligero, integrado en Python, que permite almacenar datos en un archivo .db sin necesidad de un servidor.

馃搶 Ventajas de SQLite:
✅ No necesita configuraci贸n extra, ya viene con Python.
✅ Almacena datos en un solo archivo .db.
✅ Soporta SQL para manejar datos de forma eficiente.
✅ Es ideal para peque帽as aplicaciones y pruebas.

Para usar SQLite en Python, solo necesitamos importar sqlite3.


2️⃣ Crear y Conectar una Base de Datos SQLite

El primer paso es crear o conectar una base de datos SQLite.

馃搶 C贸digo para conectar o crear una base de datos:

import sqlite3 conexion = sqlite3.connect("mi_base_de_datos.db") # Crea o abre el archivo de la BD cursor = conexion.cursor() # Permite ejecutar comandos SQL print("Base de datos conectada correctamente.") conexion.close() # Cierra la conexi贸n

馃搶 Explicaci贸n:
sqlite3.connect("mi_base_de_datos.db") → Crea un archivo de base de datos si no existe.
cursor = conexion.cursor() → Permite ejecutar consultas SQL.
conexion.close() → Cierra la conexi贸n cuando terminamos.


3️⃣ Crear una Tabla en SQLite

Para guardar datos en la base de datos, necesitamos crear una tabla.

馃搶 Ejemplo: Crear una tabla usuarios en la base de datos:

import sqlite3 conexion = sqlite3.connect("mi_base_de_datos.db") cursor = conexion.cursor() cursor.execute(""" CREATE TABLE IF NOT EXISTS usuarios ( id INTEGER PRIMARY KEY AUTOINCREMENT, nombre TEXT, edad INTEGER, email TEXT ) """) conexion.commit() # Guarda los cambios conexion.close() print("Tabla creada exitosamente.")

馃搶 Explicaci贸n:
CREATE TABLE IF NOT EXISTS usuarios → Crea la tabla si no existe.
id INTEGER PRIMARY KEY AUTOINCREMENT → Identificador 煤nico que se incrementa autom谩ticamente.
nombre TEXT → Almacena texto.
edad INTEGER → Almacena n煤meros enteros.
email TEXT → Almacena correos electr贸nicos.
commit() → Guarda los cambios en la base de datos.


4️⃣ Insertar Datos en una Base de Datos SQLite

Ahora que tenemos la tabla, podemos insertar registros.

馃搶 Ejemplo: Insertar un usuario en la base de datos:

conexion = sqlite3.connect("mi_base_de_datos.db") cursor = conexion.cursor() cursor.execute("INSERT INTO usuarios (nombre, edad, email) VALUES (?, ?, ?)", ("Jos茅", 25, "jose@example.com")) conexion.commit() conexion.close() print("Usuario agregado exitosamente.")

馃搶 Explicaci贸n:
INSERT INTO usuarios (...) VALUES (?, ?, ?) → Inserta datos en la tabla.
✅ Los signos ? evitan ataques SQL Injection.
conexion.commit() → Guarda los cambios.

馃搶 Para insertar m煤ltiples registros:

datos = [ ("Ana", 30, "ana@example.com"), ("Carlos", 28, "carlos@example.com"), ("Laura", 22, "laura@example.com") ] cursor.executemany("INSERT INTO usuarios (nombre, edad, email) VALUES (?, ?, ?)", datos) conexion.commit() print("Usuarios agregados.")

Ideal para insertar muchos datos al mismo tiempo.


5️⃣ Consultar Datos en SQLite

馃搶 Ejemplo: Leer y mostrar todos los usuarios de la base de datos:

conexion = sqlite3.connect("mi_base_de_datos.db") cursor = conexion.cursor() cursor.execute("SELECT * FROM usuarios") usuarios = cursor.fetchall() for usuario in usuarios: print(usuario) conexion.close()

馃搶 Salida esperada:

(1, 'Jos茅', 25, 'jose@example.com') (2, 'Ana', 30, 'ana@example.com') (3, 'Carlos', 28, 'carlos@example.com')

fetchall() recupera todos los registros.
✅ El resultado es una lista de tuplas con los datos.

馃搶 Para buscar un usuario espec铆fico:

cursor.execute("SELECT * FROM usuarios WHERE nombre = ?", ("Carlos",)) usuario = cursor.fetchone() print(usuario)

fetchone() devuelve un solo resultado.


6️⃣ Actualizar y Eliminar Datos en SQLite

馃搶 Ejemplo: Actualizar la edad de un usuario:

cursor.execute("UPDATE usuarios SET edad = ? WHERE nombre = ?", (26, "Jos茅")) conexion.commit() print("Edad actualizada.")

馃搶 Ejemplo: Eliminar un usuario:

cursor.execute("DELETE FROM usuarios WHERE nombre = ?", ("Ana",)) conexion.commit() print("Usuario eliminado.")

Siempre usa commit() despu茅s de UPDATE o DELETE.


馃殌 Conclusi贸n

SQLite permite almacenar datos de forma estructurada en Python.
Podemos crear, insertar, actualizar y eliminar registros usando SQL.
Ideal para proyectos peque帽os y medianos sin necesidad de un servidor externo.

馃搶 Pr贸ximo post: Ejercicios pr谩cticos con bases de datos SQLite en Python.

馃搨 C贸digo disponible en mi GitHub: github.com/josecodetech

馃帴 Aprende con mis videos en YouTube: https://www.youtube.com/@josecodetech

馃挰 ¿Ya has trabajado con bases de datos en Python? ¿Cu谩l ha sido tu experiencia? Com茅ntamelo.



domingo, 2 de marzo de 2025

馃憠 Ejercicios Pr谩cticos de Python: Manejo de Archivos y Datos

Despu茅s de aprender c贸mo leer, escribir y modificar archivos en Python, es hora de practicar con ejercicios reales y 煤tiles.

Hoy resolveremos ejercicios sobre:
✔️ Leer y escribir archivos de texto (.txt)
✔️ Leer y escribir archivos CSV
✔️ Trabajar con JSON para almacenar datos estructurados
✔️ Ejemplo pr谩ctico explicado paso a paso

馃搶 Cada ejercicio incluye c贸digo, explicaci贸n y prueba de salida.


1️⃣ Ejercicio: Contar las Palabras en un Archivo de Texto

馃搷 Objetivo: Leer un archivo de texto y contar cu谩ntas palabras tiene.

馃敼 C贸digo:

def contar_palabras(nombre_archivo): try: with open(nombre_archivo, "r") as archivo: contenido = archivo.read() palabras = contenido.split() print(f"El archivo tiene {len(palabras)} palabras.") except FileNotFoundError: print("❌ Error: El archivo no existe.") # Prueba la funci贸n contar_palabras("archivo.txt")

馃搶 Salida esperada (si el archivo tiene texto):

El archivo tiene 56 palabras.

Se usa split() para dividir el texto en palabras.
try-except evita que el programa se bloquee si el archivo no existe.


2️⃣ Ejercicio: Guardar una Lista en un Archivo CSV

馃搷 Objetivo: Escribir una lista de datos en un archivo CSV y luego leerlo.

馃敼 C贸digo:

import csv datos = [ ["Nombre", "Edad", "Ciudad"], ["Jos茅", 25, "Madrid"], ["Ana", 30, "Barcelona"], ["Carlos", 22, "Sevilla"] ] # Guardar datos en CSV with open("datos.csv", "w", newline="") as archivo: escritor = csv.writer(archivo) escritor.writerows(datos) # Leer el archivo CSV with open("datos.csv", "r") as archivo: lector = csv.reader(archivo) for fila in lector: print(fila)

馃搶 Salida esperada:

['Nombre', 'Edad', 'Ciudad'] ['Jos茅', '25', 'Madrid'] ['Ana', '30', 'Barcelona'] ['Carlos', '22', 'Sevilla']

Ideal para trabajar con datos tabulares en Python.


3️⃣ Ejercicio: Guardar y Leer Datos en un Archivo JSON

馃搷 Objetivo: Guardar informaci贸n de usuarios en un archivo JSON y luego leerla.

馃敼 C贸digo:

import json usuarios = [ {"nombre": "Jos茅", "edad": 25, "ciudad": "Madrid"}, {"nombre": "Ana", "edad": 30, "ciudad": "Barcelona"}, {"nombre": "Carlos", "edad": 22, "ciudad": "Sevilla"} ] # Guardar en JSON with open("usuarios.json", "w") as archivo: json.dump(usuarios, archivo, indent=4) # Leer el JSON with open("usuarios.json", "r") as archivo: datos = json.load(archivo) print(datos)

馃搶 Salida esperada:

[ {"nombre": "Jos茅", "edad": 25, "ciudad": "Madrid"}, {"nombre": "Ana", "edad": 30, "ciudad": "Barcelona"}, {"nombre": "Carlos", "edad": 22, "ciudad": "Sevilla"} ]

JSON es ideal para trabajar con datos estructurados en Python.


4️⃣ Ejercicio: Buscar una Palabra en un Archivo

馃搷 Objetivo: Leer un archivo de texto y contar cu谩ntas veces aparece una palabra espec铆fica.

馃敼 C贸digo:

def contar_ocurrencias(nombre_archivo, palabra): try: with open(nombre_archivo, "r") as archivo: contenido = archivo.read() cantidad = contenido.lower().count(palabra.lower()) print(f"La palabra '{palabra}' aparece {cantidad} veces en el archivo.") except FileNotFoundError: print("❌ Error: El archivo no existe.") # Prueba la funci贸n contar_ocurrencias("archivo.txt", "Python")

馃搶 Salida esperada:

La palabra 'Python' aparece 3 veces en el archivo.

count() cuenta la cantidad de veces que aparece una palabra en el texto.


5️⃣ Ejercicio: Registrar y Leer Notas de Estudiantes

馃搷 Objetivo: Escribir y leer registros de estudiantes en un archivo de texto.

馃敼 C贸digo:

def guardar_estudiante(nombre, nota): with open("estudiantes.txt", "a") as archivo: archivo.write(f"{nombre}, {nota}\n") def leer_estudiantes(): try: with open("estudiantes.txt", "r") as archivo: for linea in archivo: print(linea.strip()) except FileNotFoundError: print("❌ Error: El archivo no existe.") # Agregar estudiantes guardar_estudiante("Carlos", 8.5) guardar_estudiante("Ana", 9.0) # Leer los datos leer_estudiantes()

馃搶 Salida esperada:

Carlos, 8.5 Ana, 9.0

Ejemplo 煤til para registrar datos y consultarlos despu茅s.


馃殌 Conclusi贸n

✅ Hoy hemos resuelto ejercicios con manejo de archivos en Python.
✅ Estos ejercicios ayudan a leer, escribir y manipular datos de forma eficiente.
✅ Practica modificando el c贸digo para entenderlo mejor.

馃搶 Pr贸ximo post: M谩s ejercicios avanzados con bases de datos en Python (SQLite).

馃搨 Descarga los ejercicios en mi GitHub: github.com/josecodetech

馃帴 Aprende con mis videos en YouTube: [Tu canal aqu铆]

馃挰 ¿Qu茅 tipo de archivos sueles manejar en Python? Cu茅ntamelo en los comentarios.