Python para Principiantes: De Cero a Tu Primera Aplicación Real
Lo Que Dominarás en Este Tutorial
- Master foundational syntax: control flow, truthy/falsy evaluation, and string formatting.
- Understand mutable vs. immutable types (lists, tuples, dicts, sets).
- Write modular, reusable functions with type annotations and docstrings.
1. Pythonic Syntax and Type Annotations
Python emphasizes readability. Modern Python 3.12+ makes extensive use of type hinting to improve IDE autocomplete and eliminate runtime type errors.
from typing import List
def calculate_discount(prices: List[float], discount_rate: float = 0.10) -> float:
if not 0 <= discount_rate <= 1:
raise ValueError("Discount rate must be between 0.0 and 1.0")
subtotal = sum(prices)
return round(subtotal * (1 - discount_rate), 2)
Evaluación Rápida: Pon a Prueba tus Conocimientos
Preguntas Frecuentes
Profundizando: los fundamentos de Python en la práctica
Los fundamentos de esta guía se vuelven potentes cuando se combinan sobre trabajo real. Un pequeño script de automatización, por ejemplo, lo usa todo a la vez: diccionarios para guardar la configuración, listas para recoger resultados, funciones con anotaciones de tipos y docstrings para que el siguiente lector —que a menudo eres tú en el futuro— pueda reutilizarlas con seguridad, y comprobaciones de valores verdaderos o falsos que mantienen los condicionales cortos y legibles. El Python moderno, 3.12 en adelante, premia este estilo porque las anotaciones alimentan el autocompletado de tu IDE y permiten que herramientas como MyPy detecten errores de tipos antes de que el código se ejecute siquiera. Quien interioriza pronto la distinción entre mutable e inmutable deja además de perder tardes enteras con toda una categoría de errores, en la que una función modifica silenciosamente una lista que quien la llamaba todavía necesitaba.
Errores comunes
- Tratar listas y tuplas como intercambiables. Las listas son mutables y las tuplas no: modificar una tupla lanza un error, y mutar una lista compartida dentro de una función sorprende a todo el que conserva una referencia a ella.
- Saltarse los entornos virtuales. Instalar los paquetes de cada proyecto en el Python del sistema garantiza conflictos de dependencias tarde o temprano; un entorno aislado por proyecto los evita por completo.
- Ignorar las anotaciones de tipos hasta producción. El código sin tipos empuja los errores al momento de ejecutar, donde los descubren los usuarios. Las anotaciones según PEP 484/585 dejan que MyPy y tu IDE atrapen esos mismos fallos mientras escribes.
- Escribir funciones sin docstrings ni pensando en reutilizar. Los scripts improvisados que enredan toda la lógica en un solo bloque no se pueden probar ni reutilizar; las funciones pequeñas y documentadas se convierten en una biblioteca personal que crece con el tiempo.
Preguntas frecuentes
¿Cuál es la diferencia entre una lista y una tupla?
La mutabilidad. Una lista puede cambiarse tras crearla —añadir, quitar o reemplazar elementos—, mientras que una tupla es inmutable una vez definida. Usa listas para colecciones que evolucionan y tuplas para registros fijos cuyo contenido no debería cambiar por accidente.
¿Cuándo debería empezar a usar anotaciones de tipos?
Desde tus primerísimas funciones. Anotar parámetros y tipos de retorno, como en el ejemplo de descuento de esta guía, mejora el autocompletado del IDE al instante y permite que verificadores estáticos como MyPy detecten tipos incompatibles antes de que ejecutes el programa.
¿Qué debería construir al terminar esta guía?
Proyectos pequeños y completos que ejerciten los fundamentos en conjunto: un script que lea datos en listas y diccionarios, los procese con funciones documentadas y anotadas, e imprima resultados con formato. Esa combinación —estructuras de datos, flujo de control y funciones modulares— es la base sobre la que se construye cualquier tema avanzado. Terminar un proyecto pequeño de principio a fin te enseñará más que leer tres capítulos más de teoría.