sábado, 7 de junio de 2025

🧪 Python Nivel 1 – Parte 10: Ejercicio Integrador – Gestor de Tareas

 🎯 Objetivo:

Crear un programa realista que permita al usuario:

  • Añadir tareas

  • Marcar tareas como completadas

  • Ver tareas pendientes y completadas

  • Guardar y recuperar tareas desde un archivo .json


📝 Enunciado del proyecto: Gestor de tareas

Escribe un programa que permita al usuario gestionar sus tareas del día. Las tareas se deben guardar en un archivo llamado tareas.json para que no se pierdan al cerrar el programa.


✅ Características:

  1. Menú principal con opciones:

    • Añadir nueva tarea

    • Ver tareas pendientes

    • Marcar tarea como completada

    • Ver tareas completadas

    • Salir

  2. Uso de funciones para cada acción

  3. Datos estructurados con listas y diccionarios

  4. Lectura y escritura en archivo .json para guardar todo


💻 Código completo del proyecto


import json import os archivo = "tareas.json" # Cargar tareas si existe el archivo def cargar_tareas(): if os.path.exists(archivo): with open(archivo, "r", encoding="utf-8") as f: return json.load(f) else: return {"pendientes": [], "completadas": []} # Guardar tareas en archivo def guardar_tareas(tareas): with open(archivo, "w", encoding="utf-8") as f: json.dump(tareas, f, indent=4) # Mostrar tareas def mostrar_tareas(lista, titulo): print(f"\n📋 {titulo}:") if lista: for i, tarea in enumerate(lista, start=1): print(f"{i}. {tarea}") else: print("No hay tareas.") # Menú principal def menu(): tareas = cargar_tareas() while True: print("\n--- MENÚ ---") print("1. Añadir tarea") print("2. Ver pendientes") print("3. Marcar como completada") print("4. Ver completadas") print("5. Salir") opcion = input("Elige una opción: ") if opcion == "1": nueva = input("Escribe la nueva tarea: ") tareas["pendientes"].append(nueva) guardar_tareas(tareas) elif opcion == "2": mostrar_tareas(tareas["pendientes"], "Tareas pendientes") elif opcion == "3": mostrar_tareas(tareas["pendientes"], "Tareas pendientes") if tareas["pendientes"]: try: num = int(input("Número de tarea completada: ")) - 1 completada = tareas["pendientes"].pop(num) tareas["completadas"].append(completada) guardar_tareas(tareas) except (ValueError, IndexError): print("❌ Entrada inválida.") elif opcion == "4": mostrar_tareas(tareas["completadas"], "Tareas completadas") elif opcion == "5": print("✅ Programa cerrado. ¡Hasta pronto!") break else: print("❌ Opción no válida.") # Ejecutar menú menu()

🧠 ¿Qué se repasa aquí?

✔️ Estructuras condicionales y bucles
✔️ Listas, diccionarios y funciones
✔️ Lectura/escritura de archivos .json
✔️ Validación de entrada del usuario
✔️ Organización y reutilización de código


🚀 Próximo paso:

Con este proyecto cierras el Nivel 1 de Python y estás listo para pasar a conceptos intermedios como:

  • clases y objetos

  • librerías externas

  • proyectos web o visuales


📂 Código disponible en GitHub:
github.com/josecodetech

Video tutorial : https://youtu.be/CSeYb1WS7QE



domingo, 1 de junio de 2025

🧪 Python Nivel 1 – Parte 9: Leer y Escribir Archivos .csv y .json

Trabajar con archivos .txt es útil, pero cuando se trata de datos más organizados y estructurados, los formatos .csv y .json son esenciales. En esta entrega aprenderás a leer y escribir ambos formatos para que tu código sea capaz de interactuar con hojas de cálculo, configuraciones, bases de datos o APIs.


🔹 ¿Por qué usar .csv y .json?

.csv es ideal para datos tabulares (tipo Excel o bases de datos simples).
.json es perfecto para estructuras jerárquicas, como diccionarios o listas de objetos.
✅ Ambos son formatos estándar en análisis de datos, automatización y desarrollo web.


📁 Parte 1: Archivos .csv en Python

Escribir en un archivo .csv


import csv datos = [ ["Nombre", "Edad"], ["Ana", 25], ["Luis", 30], ["Pedro", 22] ] with open("personas.csv", "w", newline="", encoding="utf-8") as archivo: writer = csv.writer(archivo) writer.writerows(datos)

🧠 Aprendiste:

  • Crear un archivo .csv desde listas.

  • Usar writerows() para guardar múltiples filas.


Leer un archivo .csv


import csv with open("personas.csv", "r", encoding="utf-8") as archivo: lector = csv.reader(archivo) for fila in lector: print(fila)

🧠 Aprendiste:

  • Leer archivo línea a línea.

  • Procesar cada fila como una lista de valores.


📁 Parte 2: Archivos .json en Python

Escribir en un archivo .json


import json usuario = { "nombre": "Carlos", "edad": 28, "lenguajes": ["Python", "JavaScript"] } with open("usuario.json", "w", encoding="utf-8") as archivo: json.dump(usuario, archivo, indent=4)

🧠 Aprendiste:

  • Guardar diccionarios como .json.

  • Formatear con indent para mayor legibilidad.


Leer un archivo .json


import json with open("usuario.json", "r", encoding="utf-8") as archivo: datos = json.load(archivo) print(datos["nombre"]) print(datos["lenguajes"])

🧠 Aprendiste:

  • Convertir .json a diccionarios.

  • Acceder a claves fácilmente como en Python puro.


🆚 ¿Cuándo usar .csv o .json?

NecesidadFormato ideal
Datos tabulados (tipo tabla).csv
Configuraciones o estructuras.json
Comunicación entre servicios.json
Reportes automáticos.csv

🚀 Resumen de esta lección

✔️ Leer y escribir archivos .csv
✔️ Leer y escribir archivos .json
✔️ Convertir estructuras de datos entre Python y disco
✔️ Trabajar con datos en formatos modernos


📂 Código completo disponible en:
github.com/josecodetech

🎥 Video práctico en YouTube:
https://youtu.be/A0G4GD4pnfc

💬 ¿Ya habías trabajado con .csv o .json? ¿Cuál usarías para un sistema de usuarios?

domingo, 25 de mayo de 2025

🧪 Python Nivel 1 – Parte 8: Leer y Escribir Archivos .txt

En esta entrega aprenderás a trabajar con ficheros de texto en Python. Sabrás cómo crear, leer y escribir archivos con código limpio y seguro usando la instrucción with.


✅ ¿Para qué sirven los archivos .txt?

✔️ Para guardar datos que persisten
✔️ Para importar o exportar información
✔️ Para automatizar tareas repetitivas
✔️ Para crear sistemas que interactúan con el usuario


Ejercicio 29: Escribir texto en un archivo


with open("saludo.txt", "w", encoding="utf-8") as archivo: archivo.write("Hola, mundo!")

🧠 Aprendiste: abrir un archivo en modo escritura ("w"), escribir contenido y cerrarlo automáticamente.


Ejercicio 30: Leer el contenido de un archivo


with open("saludo.txt", "r", encoding="utf-8") as archivo: contenido = archivo.read() print(contenido)

🧠 Aprendiste: cómo leer archivos completos con .read() y visualizar su contenido.


Ejercicio 31: Escribir varias líneas en un archivo


lineas = ["Primera línea\n", "Segunda línea\n", "Tercera línea\n"] with open("notas.txt", "w", encoding="utf-8") as archivo: archivo.writelines(lineas)

🧠 Aprendiste: cómo guardar listas de texto directamente en el archivo.


Ejercicio 32: Leer línea por línea de un archivo


with open("notas.txt", "r", encoding="utf-8") as archivo: for linea in archivo: print(linea.strip())

🧠 Aprendiste: cómo recorrer archivos línea a línea y eliminar saltos con .strip().


🚀 ¿Qué aprendiste hoy?

✔️ A crear y abrir archivos .txt
✔️ A escribir y leer texto de forma controlada
✔️ A automatizar la lectura y escritura
✔️ A trabajar con ficheros sin complicaciones


📂 Código completo disponible en:
github.com/josecodetech

🎥 Video paso a paso en YouTube:
https://www.youtube.com/@josecodetech

💬 ¿Ya sabías escribir archivos desde Python? ¿Qué datos te gustaría guardar?