Sentencias incompletas¶
En principio, cada sentencia se escribe en línea aparte:
| Primero.py | |
|---|---|
1 2 3 4 | |
Pero... ¿que pasa si tenemos una sentencia muy larga?
print ( 1512+33*20 , 1512-33*20 , 1512*33*20 , 1512/33*20 )
En principio, sería preferible escribir cuatro sentencias print(). Pero
esto añade un salto de línea tras cada ejecución de print(). Supongamos que
queremos mostrar los resultados en la misma línea de la pantalla.
La posible solución es escribir la llamada a print() con los cuatro
argumentos. Nos gustaría poder escribir:
print ( 1512+33*20 ,
1512-33*20 ,
1512*33*20 ,
1512/33*20
)
... lo cual es más claro. Pero ¿podemos tener una sentencia que ocupa varias lineas en el texto del programa?
La primera línea es una sentencia incompleta. Y el resto de líneas, si las analizamos por separado, no son sentencias válidas. El intérprete de Python debería mostrar un error al intentar ejecutar la primera línea, porque falta el paréntesis de cierre.
Pero, en las reglas de sintaxis de Python,
se hace una excepción. Todo paréntesis de apertura (
debe tener su correspondiente de cierre ), y hasta no encontrarlo,
el intérprete tomará el texto de las siguientes líneas como parte de la
sentencia, hasta encontrar el paréntesis de cierre.
Por lo tanto, lo siguiente es válido:
| Primero.py | |
|---|---|
1 2 3 4 5 6 7 8 9 | |
Esta regla de sintaxis se aplica:
- para los paréntesis
( ) - para los corchetes
[ ] - para las llaves
{ }
El uso de corchetes y llaves lo veremos más adelante.
Existe un mecanismo adicional en el lenguaje Python. Si el último carácter de un línea del programa es una barra invertida:
print (\
15+3)
el intérprete ignorará ese carácter especial y el salto de línea que viene a continuación, con lo que antes de ejecutarse, la sentencia se convierte en:
print (15+3)
Este es un mecanismo anticuado y poco popular entre los programadores Python, ya que tiene tres inconvenientes:
- la barra
\"ensucia" el texto del programa y lo hace más ilegible - si, por descuido, hay un espacio en blanco al final de la línea,
el carácter
\deja de ser el último, y el mecanismo no funciona. -
es incompatible con el uso de comentarios:
print (\ # línea incompleta 15+3)porque el carácter
\ya no es el último. Y si lo ponemos al final, formará parte de los comentarios y será ignorado.