El manual de reglas más pequeño posible
Python tiene fama de legible, y la mayor parte de eso se reduce a lo pocas reglas de sintaxis que realmente tiene el lenguaje. Las que importan caben en una sola página:
- Una instrucción por línea.
- La indentación define la estructura — sin llaves, sin palabra clave
end. - Las mayúsculas importan.
nameyNameson distintas. :abre un bloque; las líneas siguientes indentadas debajo son el cuerpo del bloque.#inicia un comentario.
Esencialmente eso es todo. Todo lo demás son variables, funciones y costumbres de la librería estándar, que irás cogiendo sobre la marcha. Vamos a repasar esas cinco reglas con suficiente contexto para que dejen de parecer reglas y empiecen a parecer la forma natural del lenguaje.
Una instrucción por línea
Una instrucción es una orden completa — "imprime esto", "suma estos", "asigna aquello". En Python, cada instrucción va en su propia línea:
Tres instrucciones, tres líneas. No necesitas punto y coma al final, y la mayoría del código Python no los usa. (Técnicamente puedes poner dos instrucciones en una línea con punto y coma, pero se considera mal estilo. No lo hagas.)
Si una línea realmente necesita ser larga, puedes partirla en un punto natural dentro de paréntesis, corchetes o llaves — Python no se quejará:
O, menos común, termina una línea con una barra invertida para continuarla. Prefiere el truco de los paréntesis cuando puedas — es lo que usan la mayoría de los código bases.
La indentación es estructural
Aquí está la parte que hace tropezar a los novatos. En Python, el espacio en blanco al principio de una línea es significativo. Le dice a Python qué líneas pertenecen al mismo bloque.
Mira un if simple:
Las dos líneas después de if hour < 12: están indentadas con cuatro espacios. Python lee esa indentación como "estas dos líneas son el cuerpo del if". El último print está de vuelta al margen, así que Python lo ve como fuera del if.
Si quitas la indentación, el if se rompe. Si indentas un espacio de más, el if se rompe. Python es estricto aquí porque la indentación es la estructura — no hay { ni end que la respalden.
Unas cuantas reglas que siguen de esto:
- Elige cuatro espacios por nivel de indentación y mantente con ello. Esa es la convención PEP 8 y lo que todo editor pone por defecto para archivos
.py. - No mezcles tabs y espacios. Python 3 rechazará un archivo que use ambos. Los editores modernos convierten tabs a espacios automáticamente al guardar; asegúrate de que el tuyo está configurado así.
- Los errores de indentación pasarán. Cuando pasen, el mensaje de error te dice el número de línea. Ve a comprobar que el espacio en blanco inicial de esa línea es el mismo que el de sus hermanas.
Los dos puntos abren un bloque
Cada construcción que crea un bloque anidado — if, else, for, while, def, class, with, try — termina su línea de encabezado con dos puntos. Las líneas siguientes, indentadas, forman el cuerpo del bloque:
Dos cosas a fijarse: los dos puntos al final del encabezado y la indentación de cuatro espacios en las líneas del cuerpo. Si olvidas los dos puntos, Python te dirá algo como SyntaxError: expected ':'. Ese error es inequívoco — arregla la puntuación que falta y listo.
Sensibilidad a mayúsculas
Python trata Name, name y NAME como tres cosas enteramente distintas. Esto aplica a:
- Tus propias variables y funciones.
- Incorporados como
print,len,True,False,None. - Nombres de módulos y atributos.
Esto normalmente solo te muerde cuando accidentalmente pones algo en mayúscula. True es el valor booleano verdadero; true es una variable indefinida que lanza NameError. Print(...) no es la función print — es un typo.
Si un error dice "name 'X' is not defined" y juras que lo definiste, comprueba las mayúsculas primero. Está mal nueve de cada diez veces.
Comentarios con #
Cualquier cosa después de # en una línea es un comentario — Python la ignora por completo. Los comentarios son para notas a futuros lectores (incluido tu yo futuro):
Python no tiene sintaxis de comentario multilínea. Si necesitas varias líneas, usa varias líneas con #. (A veces verás strings con triple comilla usados como pseudocomentarios — eso es una cosa aparte llamada docstring, y la cubriremos cuando hablemos de funciones.)
Palabras reservadas
Unas cuantas palabras están prohibidas como nombres de variable porque Python las usa: if, else, for, while, def, class, return, import, from, as, pass, break, continue, True, False, None, and, or, not, in, is, lambda, try, except, finally, raise, with, yield, global, nonlocal, async, await. No necesitas memorizar esta lista. Si intentas usar una, Python se quejará inmediatamente.
Sabes lo suficiente para leer cualquier archivo Python
Cada regla que acabas de leer aplica a cada archivo Python — un script de dos líneas y un proyecto de cien mil líneas por igual. El resto del lenguaje se construye sobre estas cinco ideas. Si un archivo parece confuso, el arreglo casi siempre es prestar atención a la indentación primero. La indentación te dice lo que hace el código, incluso antes de leer lo que dicen las líneas.
Lo siguiente: comentarios, con un poco más de profundidad — más docstrings, que es cómo Python gestiona la documentación de funciones y módulos.
Preguntas frecuentes
¿Por qué le importa a Python la indentación?
Python usa la indentación para saber qué líneas pertenecen al mismo bloque. Donde otros lenguajes agrupan el código entre llaves { }, Python usa espacios en blanco iniciales consistentes. Es menos ruido visual, pero significa que no puedes ser descuidado con el espaciado.
¿Cuántos espacios debería indentar en Python?
Cuatro espacios por nivel es el estándar de la comunidad (PEP 8). La mayoría de editores insertan cuatro espacios cuando pulsas Tab en un archivo Python. El número exacto importa menos que ser consistente — mezclar indentaciones de dos y cuatro espacios en el mismo bloque es un error común.
¿Python distingue entre mayúsculas y minúsculas?
Sí. Name, name y NAME son tres variables distintas. Los nombres incorporados como print y True deben escribirse exactamente como se muestra — True funciona, true lanza un error.