Читать книгу El gran libro de Python - Marco Buttu - Страница 43
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:
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':
Estas son expresiones. Veamos el fragmento de código obtenido a partir de su combinación mediante la palabra clave in:
Así, 'p' in 'python' también es una expresión. Veamos el fragmento de código if 'p':
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:
así como el resto de fragmentos de código en el interior de esta línea. Vayamos a la segunda línea:
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:
La siguiente sintaxis define una expresión condicional:
Esta es su forma general:
y devuelve expresión 1 si la expresión test se valora como True; si no, devuelve expresión 2:
A diferencia de otros lenguajes, en Python la asignación no es una expresión:
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.