Herramienta de Formato Python
¿Qué es el formateo Python?
El formateador Python reorganiza código Python con indentación, saltos de línea y estructura legible. En Python la indentación forma parte de la sintaxis, por lo que código mal pegado o con formatos mezclados puede ser más que feo: puede cambiar comportamiento o provocar errores. La herramienta ayuda con scripts, fragmentos de notebooks, código generado, ejemplos de aprendizaje, revisiones y pequeños refactors, haciendo más claros funciones, clases, imports, listas, diccionarios y expresiones anidadas. El formateo no corrige bugs de lógica, errores de tipos, dependencias faltantes, problemas de entorno ni mal uso de APIs. En proyectos reales debe alinearse con Black, Ruff, isort o reglas del equipo.
Cómo usar
Cómo usarlo
- Pega o escribe código Python en el cuadro de entrada izquierdo
- Selecciona el tamaño de indentación (2 espacios, 4 espacios o Tab)
- Haz clic en 'Formatear' para embellecer el código o en 'Minimizar' para comprimirlo
- Visualiza los resultados a la derecha (con resaltado de sintaxis)
- Haz clic en 'Copiar' para copiar al portapapeles
Descripción de opciones
Consejos de Python
- Python es sensible a la indentación, así que revisa los bloques de control formateados antes de volver a copiar el resultado en un proyecto.
- El formateo no ejecuta verificaciones de tipo, importaciones ni pruebas. Usa tus herramientas habituales de Python para validar el comportamiento y las dependencias.
Casos de uso
Principio técnico
Python es uno de los pocos lenguajes principales que usa indentación en lugar de llaves para definir bloques de código. Las sentencias consecutivas con la misma indentación pertenecen al mismo bloque; un espacio más o menos y la semántica cambia. Este diseño hace que la estructura visual del código coincida con su lógica, pero requiere que el formateador identifique los niveles lógicos con precisión. El formateador primero escanea el código con el módulo tokenize o un lexer personalizado, tratando el espacio en blanco inicial de cada línea como información de indentación. Las sentencias dentro de paréntesis (redondos, cuadrados o llaves) pueden abarcar múltiples líneas, en cuyo caso la indentación viene determinada por la profundidad de los paréntesis y no por el espacio en blanco inicial. El espacio en blanco dentro de literales de cadena (triple comilla, comilla simple) no debe modificarse, de lo contrario el valor de la cadena cambia. PEP 8 es la guía de estilo oficial de Python, que especifica indentación de 4 espacios, una longitud máxima de línea de 79 caracteres, espacios alrededor de operadores, imports agrupados y convenciones de nomenclatura. Black es el ejemplo destacado de la escuela de formateadores sin configuración: fuerza cadenas entre comillas dobles, comas finales y una longitud de línea de 88 caracteres, con reglas estrictas y no configurables. yapf está más cerca del estilo Google y es configurable.
- Semántica de indentación: Python usa el espacio en blanco inicial para determinar los bloques de código; la misma indentación significa el mismo bloque, un cambio de indentación cambia el ámbito
- Reglas de PEP 8: indentación de 4 espacios, ancho de línea de 79 caracteres, espacios alrededor de operadores, CapWords para nombres de clases, snake_case para nombres de funciones
- Saltos de línea con paréntesis: las sentencias dentro de paréntesis (redondos, cuadrados, llaves) pueden dividirse en varias líneas, y la indentación viene determinada por la profundidad de los paréntesis y no por el espacio en blanco inicial
- Límites de cadenas: el espacio en blanco dentro de cadenas de triple comilla y docstrings no debe modificarse, de lo contrario se rompe el contenido del literal
- Estilo Black: cero configuración, no personalizable, fuerza comillas dobles, comas finales, 88 caracteres por línea, idéntico en todo el proyecto
- Anotaciones de tipo: introducidas en PEP 484; el formateador preserva el espaciado adecuado alrededor de -> tipos de retorno y parámetros : anotaciones de tipo
Ejemplos
Formatear definiciones de funciones
Entrada: def add(a,b):
return a+b
def subtract(a,b):
return a-b
Salida:
def add(a, b):
return a + b
def subtract(a, b):
return a - bFormatear list comprehensions
Entrada: result=[x*x for x in range(10) if x%2==0]
result2={k:v for k,v in items if v>0}
Salida:
result = [x * x for x in range(10) if x % 2 == 0]
result2 = {k: v for k, v in items if v > 0}Formatear una definición de clase
Entrada: class User:
def __init__(self,name,email):
self.name=name
self.email=email
def __repr__(self):
return f"User({self.name})"
Salida:
class User:
def __init__(self, name, email):
self.name = name
self.email = email
def __repr__(self):
return f"User({self.name})"Preguntas frecuentes
¿Qué estilo de Python usa?
La mayoría de las versiones usan por defecto las convenciones PEP 8, normalmente vía Black: ancho de línea de 88 columnas, cadenas con comillas dobles y sin punto y coma al final. Black es opinado: elimina la mayoría de los ajustes para dar un estilo consistente en todo el proyecto. autopep8 y yapf tienen más opciones si necesitas flexibilidad.
¿La sangría afecta al formateador?
Sí: en Python la sangría define la estructura de los bloques. El formateador respeta los límites de bloque existentes; si la entrada mezcla tabulaciones y espacios o tiene niveles de sangría incorrectos, el análisis falla antes de formatear.
¿Arreglará el orden de los imports?
Black, autopep8 y yapf solo manejan el espacio en blanco. Para ordenar y agrupar imports, usa isort (o ruff --fix). Algunas páginas combinan ambos; revisa la configuración para saber qué se aplica realmente.
¿Se admiten anotaciones de tipo?
Sí, en los analizadores modernos. Las anotaciones de tipo en firmas de funciones, variables y atributos de clase (PEP 526, 484, 612) se formatean correctamente. La sintaxis muy nueva (sintaxis genérica de PEP 695 en 3.12+) requiere un analizador reciente; las versiones más antiguas pueden tropezar.
¿Se sube mi código?
No. El formateo se ejecuta en tu navegador con una implementación en JavaScript del AST de Python. El código pegado no se transmite.
¿El resultado coincidirá con el black de mi CI?
Casi, pero no siempre será idéntico. Distintas versiones de Black pueden formatear de forma ligeramente diferente (Black actualiza sus reglas con regularidad). Para coherencia con CI, ejecuta la misma versión de Black en local y en CI; trata esta página como una comprobación visual rápida.
¿Por qué parte las líneas largas en varias?
PEP 8 y Black apuntan a ≤88 caracteres por línea. Las expresiones largas, las llamadas a funciones con muchos argumentos y las cadenas de llamadas a métodos se reparten en varias líneas para mejorar la legibilidad. Ajusta la opción de ancho de línea si tu equipo usa 100 o 120.