StudyToCert

PCEP / Lecciones · English

PCEP – Certified Entry-Level Python Programmer PCEP-30-02

Lógica y estructura de Python: palabras clave, instrucciones, indentación y comentarios

Un programa de Python es una secuencia de instrucciones (statements) que el intérprete ejecuta de arriba hacia abajo. Normalmente cada instrucción va en su propia línea. Puedes poner varias instrucciones cortas en una línea separadas por punto y coma, y puedes continuar una instrucción larga en varias líneas dentro de paréntesis, corchetes o llaves, o con una barra invertida al final de la línea, pero el estilo simple de una instrucción por línea es el que deberías escribir.

Las palabras clave (keywords) son palabras reservadas con un significado fijo en el lenguaje, como if, else, elif, while, for, in, def, return, pass, break, continue, import, global, try, except, and, or, not, is, None, True y False. No puedes usar una palabra clave como nombre de variable o de función; for = 3 es un error de sintaxis. Las palabras clave distinguen entre mayúsculas y minúsculas: True es una palabra clave, pero true es un nombre común (y aquí no definido). Puedes ver la lista completa con import keyword seguido de print(keyword.kwlist).

La indentación es parte de la sintaxis de Python, no solo una cuestión de estilo. Una instrucción compuesta como if, while, for, def o try termina su línea de encabezado con dos puntos, y las líneas que le pertenecen (su bloque o suite) deben estar más indentadas que el encabezado. El bloque termina cuando la indentación vuelve al nivel anterior. Todas las líneas de un bloque deben usar la misma indentación. PEP 8, la guía de estilo de Python, recomienda cuatro espacios por nivel. Mezclar tabulaciones y espacios de forma inconsistente provoca TabError, y un nivel incorrecto provoca IndentationError, que es un tipo de SyntaxError.

x = 7
if x > 5:
    print("big")      # dentro del bloque if
    print("still in")
print("always runs")  # de vuelta en el nivel exterior

Los comentarios empiezan con # y llegan hasta el final de la línea. El intérprete los ignora por completo, así que son para los lectores humanos: explica por qué el código hace algo, no qué hace cada línea obvia. Un # dentro de un literal de cadena es solo un carácter, no un comentario. Python no tiene una sintaxis especial para comentarios de varias líneas; o pones # en cada línea o, por convención, usas una cadena con comillas triples, que en realidad es un literal de cadena que se evalúa y se descarta (y, cuando es la primera instrucción de una función o módulo, se convierte en su docstring).

La indentación inesperada importa en el examen. Si una línea está indentada sin un encabezado previo con dos puntos, obtienes IndentationError: unexpected indent. Si después de los dos puntos de un encabezado no hay nada indentado, obtienes IndentationError: expected an indented block. Ese segundo caso es exactamente la razón por la que existe la palabra clave pass.

Términos clave

Keyword (palabra clave)
Una palabra reservada con significado fijo, como if, for o def, que no puede usarse como identificador.
Block (bloque, suite)
El grupo de instrucciones indentadas que pertenece a una línea de encabezado que termina en dos puntos.
Comment (comentario)
Texto después de # hasta el final de la línea, que el intérprete ignora.
IndentationError
La subclase de SyntaxError que se lanza cuando la indentación falta, es inesperada o es inconsistente.
Ejemplo real

Un estudiante escribe un bucle cuya segunda línea del cuerpo está indentada con tres espacios en lugar de cuatro. Python informa un IndentationError (unindent does not match any outer indentation level) antes de ejecutar nada. Volver a indentar ambas líneas con cuatro espacios hace que el programa funcione.

Consejo para el examen: Recuerda que True, False y None son palabras clave con mayúscula inicial; true en minúsculas es solo un nombre no definido. Recuerda también que un # dentro de comillas no es un comentario.

Comprueba lo que sabes

¿Qué pasa si escribes if x > 3: y la siguiente línea no está indentada?

Python lanza IndentationError: expected an indented block, porque el encabezado de una instrucción compuesta debe ir seguido de un bloque indentado.

¿Puedes llamar pass a una variable?

No. pass es una palabra clave, así que pass = 1 es un SyntaxError.

¿Qué imprime print("a # b")?

a # b. El # es parte de la cadena, no un comentario.

Estudia PCEP gratis
Plan semana a semana con lecciones, cuestionarios, simulaciones de examen y práctica, en español.
Abrir el plan de estudio