Marco Buttu

El gran libro de Python


Скачать книгу

sys.platform, decimos que platform es una etiqueta calificada, o también que platform está calificada mediante sys.

      Si se desea profundizar en el argumento del análisis lexical del código Python, es aconsejable leer la siguiente página del sitio oficial: http://docs.python.org/3/reference/lexical_analysis.html.

      Un programa Python se compone de módulos, que contienen en su interior instrucciones, las cuales procesan expresiones. En esta sección, describiremos estos tres elementos.

      Las expresiones

      Hemos dicho que los objetos están generados por el código en ejecución. Tratamos de reducir el campo, individualizando los fragmentos de código que originan la creación de los objetos, o que simplemente se refieren a ellos. Estas partes de código se denominan expresiones. Esta es su definición: una expresión es un fragmento de código contenido en una línea lógica, que cuando el programa se está ejecutando se refiere a un objeto o bien lo genera.

      Vamos a intentar entender, mediante ejemplos prácticos, cómo identificar las expresiones. Para ello, consideremos un código ejecutado correctamente, como el siguiente:

image

      Reducimos el campo diciendo que las expresiones se encuentran a la derecha del signo igual y quedan encerradas en el interior de las líneas lógicas. Para descubrir si un fragmento de código es una expresión, podemos extrapolarlo de la línea lógica y asignarlo a una etiqueta. Si la asignación no genera ningún error, entonces el fragmento de código es una expresión; si no, no lo es.

      En el proceso de extrapolación del código de la línea lógica, las etiquetas no pueden ser separadas de los paréntesis. Por lo tanto, print('python') no puede ser separada en las partes print y ('python'), y mylist[2] no puede ser dividida en mylist y [2]. Partimos de las cadenas 'p' y 'python':

image

      Estas son expresiones. Veamos el fragmento de código obtenido a partir de su combinación mediante la palabra clave in:

image

      Así, 'p' in 'python' también es una expresión. Veamos el fragmento de código if 'p':

image

      Hemos obtenido un error, lo que significa que if 'p' no es una expresión. Ni la línea lógica por completo es una expresión:

image

      así como el resto de fragmentos de código en el interior de esta línea. Vayamos a la segunda línea:

image

      También print y ('python') son expresiones, pero, como ya hemos dicho, una etiqueta no puede ser separada de los paréntesis que la siguen, por lo cual print('python') es una única expresión y no la combinación de print y ('python'), las cuales, tomadas por separado, tienen su significado atómico:

image

      La siguiente sintaxis define una expresión condicional:

image

      Esta es su forma general:

image

      y devuelve expresión 1 si la expresión test se valora como True; si no, devuelve expresión 2:

image

      A diferencia de otros lenguajes, en Python la asignación no es una expresión:

image

      El hecho de que la asignación no sea una expresión permite evitar que en una prueba de comparación (por ejemplo, a == b) la omisión de un carácter genere un peligroso error lógico (a = b). Encontramos los motivos de esta y otras opciones de diseño en la página http://docs.python.org/3/faq/design.html.

      Para más información y detalles acerca de las expresiones y su clasificación, podemos consultar la documentación en el sitio oficial: http://docs.python.org/3/reference/expressions.html.

      Las instrucciones

      En Python, el código que define una línea lógica por completo se denomina instrucción simple (simple statement), mientras que un bloque de código compuesto por instrucciones simples se denomina instrucción compuesta (compound statement). Las instrucciones compuestas se carácterizan por el uso del delimitador dos puntos, el cual indica el inicio del bloque de código de la instrucción. La unión de las instrucciones simples y de las compuestas constituye el conjunto de las instrucciones de Python.

      Las instrucciones tienen un nombre, que procede del de las palabras clave utilizadas en su interior. Por ejemplo, las instrucciones siguientes se denominan instrucción simple import e instrucción compuesta for:

image

      En el transcurso del libro veremos cómo utilizar todas las instrucciones; en esta sección nos limitaremos a estudiar las que nos interesan para los objetivos de este capítulo.

      Instrucciones simples

      Según la definición anterior, una línea lógica constituida por una expresión es una instrucción simple. Este, evidentemente, es el único caso en que una instrucción es también una expresión. El resultado de esta instrucción no puede ser guardado; por este motivo, una expresión se utiliza como instrucción solo en dos casos. El primero es cuando se utiliza el modo interactivo, puesto que, aunque el resultado de la expresión no sea guardado, este se escribe en la salida estándar y se puede comprobar visualmente:

image

      La otra situación es la de las llamadas funciones y métodos que no devuelven explícitamente un objeto, puesto que en estos casos interesa solo que se ejecuten las acciones y no se obtiene ningún resultado que guardar:

image

      El resto de las instrucciones simples no son expresiones y, por tanto, no pueden ser asignadas a una etiqueta. Veamos una parte a continuación.

      La asignación

      La asignación es una instrucción simple que asigna el objeto generado por la expresión a la derecha del signo = a la etiqueta situada a la izquierda del mismo signo:

image

      Es posible asignar el mismo objeto a distintas etiquetas en una única instrucción:

image

      y esta resulta equivalente a las secuencias de las asignaciones individuales:

image

      También