El gran libro de Python. Marco Buttu. Читать онлайн. Newlib. NEWLIB.NET

Автор: Marco Buttu
Издательство: Bookwire
Серия:
Жанр произведения: Математика
Год издания: 0
isbn: 9788426729057
Скачать книгу
hacer una cosa bien no significa hacerla perfectamente. La perfección en el mundo real no existe, por lo que, según la frase la practicidad vence a la pureza, debemos hacer las cosas bastante bien, como sugiere también Alex Martelli en su charla titulada Good enough is good enough: http://pyvideo.org/video/1738/good-enough-is-good-enough.

      Si miramos un archivo contenedor del código Python, veremos que, como cualquier archivo de texto, está formado por una serie de líneas, que llamaremos líneas físicas. Las líneas físicas no tienen ningún significado para el intérprete Python, sino que sirven sencillamente para organizar visualmente el código de manera legible. Por ejemplo, el archivo myfile.py contiene dos líneas físicas:

image

      El significado obtenido por el intérprete son las líneas lógicas. Una línea lógica corresponde normalmente a una línea física, y es posible subdividir una línea física en más de una línea lógica, separándolas con un punto y coma. Por ejemplo, el siguiente archivo myfile.py contiene tres líneas físicas y seis líneas lógicas:

image

      Probablemente en pocas ocasiones se verán más líneas lógicas en la misma línea física, puesto que es un pésimo estilo de programación, según aconseja de manera apropiada la PEP-0008.

      También es posible repartir una línea lógica en varias líneas físicas. Esto puede verse a menudo, y puede hacerse tanto con la barra invertida, como en el ejemplo siguiente:

image

      como mediante paréntesis:

image

      y también separando en varias líneas físicas una lista, una tupla, un conjunto o un diccionario:

image

      El texto contenido en el interior de una línea lógica pertenece a una de estas categorías: comentarios, literales, operadores, palabras clave, etiquetas y delimitadores. Consideremos, por ejemplo, el archivo siguiente:

image

      Se estructura en cuatro líneas lógicas. En la primera, hay dos etiquetas, x e input, un literal de tipo cadena, que empieza y acaba con comillas simples, y tres delimitadores (los dos paréntesis y el signo igual). En la segunda línea hay tres etiquetas (num, int y x), tres delimitadores (los dos paréntesis y el signo igual) y un comentario (el texto que empieza con un símbolo de almohadilla y termina con la línea física). En la tercera hay dos etiquetas (result y num), un operador (/), un literal de tipo entero (10), un delimitador (el signo igual) y tres palabras clave: if, else y None. Por último, en la cuarta línea hay dos etiquetas (print y result) y dos delimitadores (los paréntesis).

      El componente del intérprete que se ocupa de efectuar el análisis lexical del código se denomina parser.

      Los comentarios

      Como hemos visto, los comentarios sirven principalmente para documentar el código con el fin de facilitar su lectura. Se trata de fragmentos de texto que empiezan con el símbolo de almohadilla y terminan con el final de la línea física. Cuando el intérprete encuentra un comentario, no ejecuta ninguna acción:

image image

      Sin embargo, en ocasiones los comentarios son analizados por el parser por tener un significado especial, como en el caso del comentario sobre la codificación del código fuente, que hemos visto en la sección Ejecución del código Python a partir de un archivo.

      Literales

      Las instancias de los tipos de datos básicos se distinguen fácilmente unas de otras, además de por el tipo, también por el valor. Estos objetos son el corazón del lenguaje y representan los elementos clave de todos los programas Python. Para facilitar tanto la lectura como la escritura de los programas, se ha decidido asociar a estas instancias representaciones textuales de inmediata comprensión, que permitan determinar de manera única tanto el tipo como el valor del objeto al cual se refieren. Estas representaciones textuales se denominan literales.

      Por ejemplo, un literal de cadena de texto es código delimitado por comillas simples, comillas, triples comillas simples o triples comillas. Cuando el programa se ejecuta, Python crea a partir del literal un objeto de tipo str, es decir, una estructura de datos que se carga en la memoria de nuestro ordenador y que representa la cadena de caracteres:

image

      Una secuencia de dígitos decimales, separados del resto del código por uno o más espacios, representa un literal entero, a partir del cual Python crea un objeto del tipo int:

image

      Para el resto de instancias de los tipos de datos básicos ocurre de forma similar:

image image

      La definición de literal nos ha permitido proporcionar otras informaciones útiles para comprender el significado de objeto. Python crea los objetos cuando el programa se está ejecutando, en el momento en que encuentra fragmentos de código a los cuales sabe que debe hacer corresponder estructuras de datos almacenados, representativas de dicho código. Por ejemplo, a partir de un simple fragmento de código, como el literal 'python', se crea en la memoria del ordenador una compleja estructura de datos, que no solo contiene los caracteres de la cadena de texto, sino también muchas otras informaciones, como el tipo de estructura de los datos:

image

      Gracias a estas informaciones Python comprende cuáles son las acciones que puede llevar a cabo con estos datos:

image

      Acabaremos diciendo que (obviamente) no es posible realizar asignaciones a literales:

image

      Operadores

      Los operadores son símbolos a los cuales Python asocia un significado que depende del tipo de sus operandos. Por ejemplo, el símbolo + es un operador. Cuando sus operandos son números, Python los suma, cuando son secuencias, los concatena y cuando no sabe cómo actuar, genera un error:

image

      Otros ejemplos de operadores son los siguientes:

image

      A lo largo de este libro explicaremos el significado de los distintos operadores.

      Palabras clave

      Como podemos intuir, las palabras clave (en inglés,