Apuntes sobre Python

La indentación no es estilo: es sintaxis.

Anexo: PEP 8, la guía de estilo de Python

PEP 8 es el documento oficial que recoge las convenciones de estilo para escribir código Python. No son reglas del lenguaje (Python ejecutará tu código aunque las ignores) sino acuerdos de la comunidad para que el código sea legible y coherente. La idea de fondo es simple: el código se lee muchas más veces de las que se escribe.

Nota: PEP son las siglas de Python Enhancement Proposal, documentos que proponen mejoras al lenguaje o a su ecosistema. El PEP 8 fue escrito por Guido van Rossum, el creador de Python.

Indentación

Python usa la indentación para delimitar bloques de código, así que no es opcional. PEP 8 establece 4 espacios por nivel de indentación. No tabuladores, no 2 espacios: 4 espacios.

# correcto
def saludar(nombre):
    print("hola", nombre)

# incorrecto (2 espacios)
def saludar(nombre):
  print("hola", nombre)

Longitud de línea

Las líneas no deberían superar los 79 caracteres. Para líneas largas, Python permite partir la expresión dentro de paréntesis, corchetes o llaves:

resultado = (primer_valor
             + segundo_valor
             + tercer_valor)

Nombres de variables y funciones

Se usa snake_case: todo en minúsculas, palabras separadas por guión bajo. Para constantes, todo en mayúsculas.

nombre_completo = "Ana García"   # variable: snake_case
def calcular_media(valores):     # función: snake_case
    pass

MAX_INTENTOS = 3                 # constante: MAYÚSCULAS

Las clases usan CamelCase (cada palabra empieza en mayúscula, sin separadores):

class UsuarioRegistrado:
    pass

Espacios alrededor de operadores

Un espacio a cada lado de los operadores de asignación y comparación. Sin espacios entre el nombre de la función y el paréntesis, ni dentro de los paréntesis:

# correcto
x = 5
resultado = x + 1
print(resultado)

# incorrecto
x=5
resultado=x+1
print( resultado )

En los argumentos con valor por defecto, sin espacios alrededor del =:

# correcto
def conectar(host, puerto=8080):
    pass

# incorrecto
def conectar(host, puerto = 8080):
    pass

Líneas en blanco

Dos líneas en blanco antes y después de una definición de función o clase en el nivel superior. Una línea en blanco entre métodos dentro de una clase:

def primera_funcion():
    pass


def segunda_funcion():
    pass

Imports

Los imports van al principio del archivo, cada uno en su propia línea, agrupados en este orden: módulos de la biblioteca estándar, módulos de terceros, módulos propios del proyecto.

# correcto
import os
import sys

import requests

import mi_modulo

# incorrecto
import os, sys

Comentarios

Los comentarios deben explicar el por qué, no el qué: el código ya dice qué hace. Empiezan con # seguido de un espacio, y van en la misma línea o en la línea anterior al código que comentan:

# correcto: explica la razón
intentos = 3  # límite impuesto por la API externa

# inútil: repite lo que ya dice el código
x = x + 1  # suma 1 a x

Comillas

Python acepta comillas simples y dobles indistintamente. PEP 8 no impone una preferencia, pero sí pide coherencia: elige una y úsala siempre. La excepción es cuando la cadena contiene el tipo de comilla que usas habitualmente, en cuyo caso usas el otro tipo para evitar el escape.

Verificar tu código

No tienes que memorizar PEP 8. Existen herramientas que analizan tu código y señalan las desviaciones:

  • pycodestyle: comprueba el estilo e informa de las infracciones.
  • flake8: combina comprobación de estilo y detección de errores.
  • black: formatea el código automáticamente según PEP 8. No avisa, corrige directamente.

La mayoría de editores modernos, incluido VS Code, pueden integrar estas herramientas y subrayar los problemas en tiempo real.

TOP