Biblioteca Online : ¡La Suscripción ENI por 9,90 € el primer mes!, con el código PRIMER9. Pulse aquí
¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
  1. Libros
  2. Python y Raspberry Pi
  3. Introducción a Python
Extrait - Python y Raspberry Pi Aprenda a desarrollar en su nano-ordenador
Extractos del libro
Python y Raspberry Pi Aprenda a desarrollar en su nano-ordenador Volver a la página de compra del libro

Introducción a Python

Hello World

Python se convierte en el lenguaje preferido que se enseña en las universidades y escuelas de informática, porque se parece mucho al pseudo-código, es decir, un medio formal de describir una función sin tener que hacer referencia a un lenguaje de programación en particular. La sintaxis del lenguaje es muy fácil de abordar y, con el objetivo de familiarizar al lector con esta sintaxis, es momento de empezar por el tradicional programa Hello world. Todos los programas que aparecen entre paréntesis y en cursiva están disponibles desde la página Información. A continuación se muestra el primero de una larga serie (Capitulo_2/hello.py):


#!/usr/bin/env python3  
hello = 'Hello world!'  
print(hello)
 

La primera línea del archivo es lo que se llama, en la jerga UNIX, un shebang. Este carácter #! indica dos cosas al sistema operativo: que este script es ejecutable y que, para ejecutar el código que se encuentra debajo de la primera línea, el sistema operativo debe utilizar el compilador indicado al final de la línea, python3.

La segunda línea asigna la cadena de caracteres Hello world! a la variable hello. Evidentemente es posible asignar otros elementos además de cadenas de caracteres, precisamente esto es lo que forma parte de la siguiente sección. Para terminar, la función print muestra aquí la variable...

Los tipos básicos: int, float, str y bool

1. Los enteros

Python no es un lenguaje de programación fuertemente tipado, como lo pueden ser otros lenguajes de programación como Java o C++. Sin embargo, los tipos básicos incorporados al lenguaje son muy completos. Python 3 incluye la noción de entero (int), entero en coma flotante (float) y cadena de caracteres (str).

El tipo int es el más extendido. Incluye el conjunto de todos los enteros que se pueden asignar a una variable en función de una arquitectura dada. Por ejemplo, en una arquitectura de 32 bits, una variable podrá contener un entero comprendido entre -2ˆ31 y 2ˆ31 - 1 (es decir, un número comprendido entre -2.147.483.648 y 2.147.483.647). Para sobrepasar este límite de almacenamiento, normalmente se utiliza el tipo long. Sin embargo, la PEP 237 indica que a partir de Python 3 todos los números se consideran como enteros de tipo int. Los números de tipo long ya no existen. En las versiones de Python 2.x, el tipo long tampoco se debería utilizar cuando se trata de manipular números muy grandes. No nos entretendremos en este tipo, pero sepa que existe.

¿Qué implica esto para el programador? La conversión es transparente y la mayor parte de las veces no tiene que preocuparse por saber si manipula un int o un long; Python se encarga de esto por usted:


>>> type(2 ** 500)  
<class 'int'>  
>>> type(2 ** -500)  
<class 'float'>  
>>> type(2 ** 500000)  
<class 'int'>
 

Otro aspecto importante en lo que respecta a los enteros: es posible asignar un entero a una variable utilizando tres sintaxis o bases:

  • la base decimal: la más conocida, el entero debe empezar por una cifra comprendida entre 1 y 9.

  • la base octal: el entero debe empezar por la cifra 0 acompañada de la letra o seguida de una cifra comprendida entre 1 y 7.

  • la base hexadecimal: el entero debe empezar por 0x, seguido por una cifra comprendida entre 0 y 9 o bien por una letra comprendida entre A y F.

Estas tres sintaxis se explican ampliamente en la PEP 3127. A continuación se muestran algunos ejemplos:


>>> a = 12345  
>>> print(a)  
12345  
>>> a = 0o10  
>>> print(a)  
8  
>>>...

Las estructuras de datos: list, dict, tuple

Durante la elaboración de un programa, uno de los problemas es saber cómo organizar los datos del mismo en ”compartimentos”, llamados habitualmente estructuras de datos. Las estructuras de datos implementadas en Python son muy sencillas y completas: puede guardar sus datos en una list, una tuple (el equivalente de una list con la propiedad de ser inmutable), un dict (normalmente llamado diccionario o tabla asociativa) y, para terminar, un set, que de hecho es un conjunto matemático.

1. Las listas

Una lista es una secuencia de objetos, cuya indexación empieza a partir de 0 y se hace de izquierda a derecha. El tamaño de una lista es dinámico: una lista puede crecer o decrecer a demanda, cuando el programa lo necesite. Para crear una lista, el uso de la sintaxis con corchetes [ ] es aconsejable, incluso también es posible llamar a la función list():


>>> l = list([1, 2, 3])  
>>> l  
[1, 2, 3]  
>>> l = [4, 5, 6]  
>>> l  
[4, 5, 6]
 

Python no es un lenguaje fuertemente tipado, por lo tanto es posible que una lista contenga cualquier tipo de elemento como enteros, cadenas de caracteres así como otras listas, incluso una referencia a sí misma. En resumen, es posible añadir cualquier tipo de objeto en una lista:


>>> l = [1, 2, 'a', 'b', list(), dict()]   
>>> l  
[1, 2, 'a', 'b'...

Instrucciones, condiciones y bucles

¿Qué es una instrucción? Detrás de este nombre se esconden las palabras clave más frecuentemente utilizadas durante el desarrollo de un programa, que hacen que la programación sea posible: ¿Es esta variable igual a 2?, ¿esta cadena de caracteres está vacía?, ¿cómo recorrer los elementos de esta lista?

Antes de continuar, un punto capital que no se descuida al escribir los ejemplos de esta sección y que es válido para el resto del libro: la indentación del código.

Es inevitable en Python y forma parte integrante de él. Un programa cuyo código no esté correctamente indentado, se considera inválido. Inicialmente, esto puede parecer alarmante pero indentar correctamente su código se debe convertir en algo habitual. Cuando escribe un bloque de código que empieza por una estructura de control (if, for, while), IDLE indenta y espacia automáticamente el código la mayor parte del tiempo, para satisfacer las exigencias del compilador Python.

1. La condición if

Empecemos por la instrucción más sencilla y frecuente: la instrucción si o if. En IDLE, pulse New - New File y escriba el siguiente código:


 1 #!/usr/bin/env python3  
 2 var = 1  
 3   
 4 if var == 1:  
 5     print("var es igual a 1")
 

Ejecute el código. Se debe mostrar en la consola IDLE el mensaje var es igual a 1. Por lo tanto, la instrucción if permite preguntar sobre una condición, verificarla y ejecutar el bloque de código que se encuentra debajo de ella en caso necesario. Guarde el código en la carpeta Capitulo_2 y llame al archivo if.py.

2. La condición else

Instrucción adicional a la instrucción si: la instrucción si-no o else. Nuevo ejemplo:


 1 #!/usr/bin/env python3  
 2 var = 2  
 3   ...

Los operadores

Como sucede en otros lenguajes de programación, Python permite comparar valores entre ellos por medio de operadores. Es muy raro tener que recurrir a todos los operadores del lenguaje durante la escritura de un programa. Sin embargo, a continuación se muestra lo que ofrece el lenguaje. Pero preste atención: Python sobrecarga ciertos operadores en función del tipo de dato manipulado.

1. Operadores aritméticos

  • +: cuando se utiliza con enteros o enteros en coma flotante, suma y devuelve el resultado de la operación. Esta operador también se puede utilizar con otros tipos, tales como las cadenas de caracteres:


>>> a = 'Hola.'  
>>> b = '¿Cómo estás?'  
>>> a + ' ' + b  
'Hola. ¿Cómo estás?'
 

También es posible utilizarlo con, al menos, dos listas. En este caso, el operador + fusiona el contenido de las listas, es decir, se crea una nueva lista, el contenido de las listas se agrega y se devuelve la nueva lista:


>>> a = [1, 2, 3]    
>>> b = [4, 5, 6]   
>>> c = [7, 8, 9]  
>>> a + b + c  
[1, 2, 3, 4, 5, 6, 7, 8, 9]
 
  • -: cuando se utiliza con enteros o enteros en coma flotante, sustrae y devuelve el resultado de la operación. Este operador también se puede utilizar con la estructura de datos set, con el objetivo de obtener la diferencia entre dos sets. Gracias a esta operación, compara, elimina las repeticiones encontradas en las dos estructuras de datos y devuelve el contenido del primer set, eliminando las repeticiones:


>>> a = set([1, 2, 3, 3])   
>>> b = set([3, 3, 4, 5])   
>>> a  
{1, 2, 3}  
>>> b  
{3, 4, 5}  
>>> a - b  
{1, 2}
 
  • *: cuando se utiliza con enteros o enteros en coma flotante, multiplica y devuelve el resultado de la operación. También se puede utilizar con una cadena de caracteres. En este caso, la cadena de caracteres se repite X veces, siendo X el valor del entero:


>>> '¡Hola!'...

Conclusión

Este capítulo es un resumen de las estructuras de datos más habituales en Python. Se utiliza la algorítmica para explicar las principales palabras clave del lenguaje.