Inicio › Herramientas para desarrolladores › Formateador de Python

Formateador de Python

Pega código Python desordenado y obtén código limpio y con formato coherente en el estilo que usan Black y Ruff: espacios y comillas normalizados, dos líneas en blanco alrededor de las funciones y clases de nivel superior, y líneas largas divididas en los corchetes. Elige la longitud de línea, el estilo de comillas y la indentación.

Última actualización:

Publicidad
Publicidad

Cómo usar Formateador de Python

  1. Pega tu código Python en el cuadro de la izquierda, sube un archivo .py o haz clic en Ejemplo.
  2. Elige las opciones: longitud de línea (88 es el valor predeterminado de Black y Ruff), estilo de comillas y ancho de indentación.
  3. Consulta el resultado a la derecha; se actualiza mientras escribes y la línea de estado muestra cuántas líneas cambiaron.
  4. Corrige los errores de sintaxis si el formateador informa de alguno, como un corchete o una cadena sin cerrar.
  5. Copia o descarga el código formateado como archivo .py.

Qué cambia el formateador

AntesDespuésRegla
x=1+2*yx = 1 + 2 * yEspacios alrededor de la asignación y los operadores binarios
f(a , b ,c)f(a, b, c)Sin espacio antes de una coma, uno después
def f(a = 1, *args, b : int=2)def f(a=1, *args, b: int = 2)Sin espacios alrededor de los valores predeterminados de palabras clave, salvo si están anotados
x ** 2, f(x)**2x**2, f(x) ** 2El operador de potencia solo se pega a operandos simples
ham[lower+offset:upper]ham[lower + offset : upper]Los dos puntos de los slices actúan como operadores cuando un operando es complejo
'text', u'x', 0XFF, 1E5"text", "x", 0xFF, 1e5Comillas preferidas y prefijos y números normalizados
if x: return yif x: / return y en su propia líneaUna sentencia por línea
x = 1 # notex = 1 # noteDos espacios antes de un comentario en línea, uno después de #
class A():class A:Se eliminan los paréntesis redundantes

Cómo se dividen las líneas largas

Cuando una línea supera el límite, el formateador intenta primero dividirla en el último corchete de apertura: el contenido pasa a su propia línea indentada y el corchete de cierre vuelve a la indentación original. Si el contenido sigue sin caber, se divide en el delimitador de mayor prioridad: primero las comas (un elemento por línea, añadiendo una coma final), luego las cláusulas de comprensión, las expresiones condicionales, and/or, las comparaciones y los operadores aritméticos, con cada operador al inicio de una nueva línea. Los lados derechos largos de las asignaciones y las sentencias return se envuelven en paréntesis para no necesitar barras invertidas.

result = load_config("settings.env", defaults={"mode": "production", "debug": "false"}, strict=True)

# becomes (line length 88)
result = load_config(
    "settings.env", defaults={"mode": "production", "debug": "false"}, strict=True
)

Usar el mismo estilo en tu proyecto

  • Instala un formateador con pip install black o pip install ruff y ejecuta black . o ruff format . en la carpeta de tu proyecto.
  • Define la longitud de línea una sola vez en pyproject.toml: [tool.black] line-length = 100 o [tool.ruff] line-length = 100.
  • Usa quote-style = "single" en [tool.ruff.format] si tu equipo prefiere comillas simples; Black solo admite comillas dobles (o dejarlas sin cambios con --skip-string-normalization).
  • Añade el formateador a un hook de pre-commit o a la función de formatear al guardar de tu editor para que el código se mantenga coherente sin esfuerzo manual.

Preguntas frecuentes

¿Qué estilo usa este formateador de Python?

Sigue el estilo de código de Black, que también implementa el formateador de Ruff: indentación de 4 espacios, comillas dobles, espacios alrededor de los operadores y después de las comas, dos líneas en blanco alrededor de las funciones y clases de nivel superior, y líneas ajustadas a 88 caracteres dividiéndolas dentro de los corchetes. El código formateado aquí coincide con lo que producirían black o ruff format en la gran mayoría de los casos.

¿Qué diferencia hay entre Black y Ruff format?

Black es el formateador de Python original y con opiniones firmes, escrito en Python. Ruff es un linter y formateador mucho más rápido escrito en Rust, cuyo formateador está diseñado para reemplazar directamente a Black y produce una salida casi idéntica. Esta página ejecuta Ruff compilado a WebAssembly cuando puede cargarlo y, si no, un formateador integrado en JavaScript que aplica las mismas reglas.

¿Qué es una coma final mágica?

Si una colección o una lista de argumentos termina en coma, como en foo(a, b,), Black y Ruff la mantienen desplegada con un elemento por línea aunque quepa en una sola. Así puedes elegir el diseño vertical para listas que cambian a menudo. Desmarca la opción para contraer esas listas cuando quepan.

¿Formatear cambia lo que hace mi código?

No. Los formateadores solo cambian los espacios, los saltos de línea, los paréntesis redundantes, los caracteres de comillas y las mayúsculas de los prefijos numéricos, así que el árbol sintáctico del programa no cambia. Black lo verifica comparando el AST antes y después de formatear, y el motor integrado de aquí se probó de la misma forma con la biblioteca estándar de Python.

¿Por qué no se divide una línea larga?

Las líneas solo se dividen en corchetes, operadores y comas. Una cadena larga, un comentario largo o un nombre largo no se pueden partir sin cambiar el código, así que el formateador los deja como están. Divide tú las cadenas largas con concatenación implícita entre paréntesis.

¿Cumple con PEP 8?

La salida sigue PEP 8 en indentación, espacios y líneas en blanco. La longitud de línea predeterminada de Black es 88 en lugar de los 79 de PEP 8; elige 79 en las opciones si tu proyecto lo requiere.

¿Se sube mi código?

No. El formateo se ejecuta por completo en tu navegador, con el módulo WebAssembly de Ruff o con el motor integrado, así que el código privado nunca sale de tu dispositivo.

¿Se prueban todas las herramientas de FreeToolCabin para comprobar su calidad y precisión?

Sí. Cada herramienta del sitio pasa pruebas automáticas en navegadores reales para comprobar que el resultado es correcto y que no hay errores. Si encuentras un fallo o tienes una sugerencia, escríbenos a [email protected] y lo revisaremos.

Herramientas relacionadas

Ver todas las de Formateadores y validadores de código →