ToolActToolAct

Herramienta de Formato Python

Entrada Python
Salida
Líneas: 1Caracteres: 0Bytes: 0
Líneas: 1Caracteres: 0

¿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

  1. Pega o escribe código Python en el cuadro de entrada izquierdo
  2. Selecciona el tamaño de indentación (2 espacios, 4 espacios o Tab)
  3. Haz clic en 'Formatear' para embellecer el código o en 'Minimizar' para comprimirlo
  4. Visualiza los resultados a la derecha (con resaltado de sintaxis)
  5. Haz clic en 'Copiar' para copiar al portapapeles

Descripción de opciones

Tamaño de indentaciónElige entre 2 espacios, 4 espacios o Tab. PEP 8 recomienda 4 espacios.
FormatearEmbellece el código con la indentación y los saltos de línea correctos
MinimizarElimina espacios en blanco y comentarios para reducir el tamaño del archivo

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

Limpiar código Python pegado preservando strings y comentariosUsa el formateador cuando un fragmento tiene indentación desigual, líneas en blanco de más o espacios copiados de un chat, wiki o issue. Protege strings entre comillas, bloques de triple comilla y comentarios antes de normalizar la indentación, de modo que el texto de documentación y las notas en línea no se reescriban accidentalmente. La salida es el tipo de fragmento que se puede insertar en un README o respuesta de Stack Overflow sin desencadenar un reformateo.
Detectar errores simples de brackets y strings antes de compartir códigoLa herramienta valida paréntesis, corchetes, llaves y strings de triple comilla sin cerrar antes de producir la salida. No es un intérprete Python completo ni un reemplazo de Black, pero detecta errores estructurales obvios en ejemplos pequeños, lecciones y respuestas de soporte. Combina el formateador con un linter real en CI para capturar problemas de lógica que un formateador no puede ver.
Alternar entre salida legible y fragmentos compactos de una líneaElige 2 espacios, 4 espacios o tabulaciones para la salida formateada, o minifica el código en una forma compacta separada por punto y coma para demos cortas e incrustaciones. El resultado puede copiarse o descargarse como .py formateado o .py minificado según el modo seleccionado. La forma minificada es conveniente para incrustar en one-liners de shell o firmas cortas de correo.
Auditar f-strings y docstrings de triple comillaPasa f-strings anidados, muestras de regex y docstrings de triple comilla con bloques de código incrustados por el formateador para verificar que las llaves y comillas permanezcan equilibradas. La indentación inesperada dentro de los docstrings generalmente significa que el origen tenía una triple comilla sin cerrar antes. Vuelve a verificar el original cuidadosamente cuando el formateador reporta un error de análisis en un fragmento que parece correcto a simple vista.
Comparar Black 88 columnas vs PEP 8 79 columnas y autopep8/yapf/blackLa salida aquí usa un ancho de línea configurable en lugar de un estilo de proyecto fijo; el objetivo más amplio de 88 columnas que favorece Black da un resultado más compacto, mientras que el valor predeterminado de 79 columnas de PEP 8 es lo que autopep8 y la mayoría de editores usan por defecto. Black es opinado y no configurable, yapf es estilo Google y ajustable, y autopep8 solo corrige violaciones de PEP 8 sin reestructurar el código. Usa esta herramienta en el navegador para una limpieza rápida, luego ejecuta Black o Ruff en CI para mantener el proyecto consistente con el estilo que el equipo haya estandarizado.

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 - b

Formatear 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.