2. Introducción al lenguaje Python

Contenidos

  1. Datos: Tipos Básicos y Valores. (Objetos: Clases Básicas y Atributos.)
  2. Variables y Asignación.
  3. Algunas Instrucciones Básicas.
  4. Operadores y Expresiones.
  5. Asignación a si-mismo.
  6. Ejercicios.

2.1 Datos: Valores y Tipos Básicos

Tal como vimos al comienzo del capítulo anterior, una de las cosas básicas que haremos en un programa computacional será la manipulación de datos. Pero, ¿qué es lo que entendemos por datos?

Un dato es cualquier número entero o real que utilizamos en un programa. Cualquier símbolo alfa-numérico entre comillas, por ejemplo 'hola' o '123@gmail', también es un dato. Los datos entre comillas se conocen como strings o cadenas de texto. (Nota: en Python podemos usar comillas dobles o comillas simples para referirnos a los strings.) Veremos más adelante en este libro que podemos construir datos más complejos a partir de los datos básicos.

Los datos más básicos que utilizaremos para operaciones matemáticas serán los números enteros y reales. Cualquier número de esta naturaleza será un dato. Por ejemplo, el número 13 es un dato de tipo entero (en Python se dice que es de tipo int) y su valor es 13. El número 3.1416 es un dato de tipo real (en Python se dice que es de tipo float) y su valor es 3.1416.

En lenguajes orientados a objetos, como es el caso de Python, a los datos también se les llama objetos, el tipo se conoce como clase y el valor como atributo. En consecuencia, también nos podemos referir al número 13 como un objeto de clase int con atributo 13.

El dato ‘hola’ es de tipo string (en Python se dice que es de tipo str) y su valor es ‘hola’. También podemos decir que el objeto ‘hola’ es de clase str y su atributo es ‘hola’. Prueba escribiendo en tu editor interactivo de Python un objeto o dato cualquiera. Cuando presionas la tecla return, el intérprete de Python devuelve el mismo valor ingresado. Por ejemplo:

>>> 3.14
3.14

Prueba ahora escribiendo type(3.14) en el editor interactivo de Python. El intérprete de Python te responde que el tipo o clase del dato (objeto) entre paréntesis es float:

>>> type(3.14)
<class 'float'>

Veremos más adelante que type es una función pre-definida de Python que retorna el tipo/clase del dato/objeto que está entre paréntesis. Puedes usarlo con cualquier dato.

Además de las tipos/clases int, float y str, existe en Python otra clase básica llamada bool. Este es un dato Booleano (de la lógica matemática) que permitirá escribir expresiones lógicas que pueden ser verdaderas o falsas. Solo existen dos valores o atributos posibles para los datos (objetos) Booleanos: True y False. (Nota: Python distingue entre mayúsculas y minúsculas y estos valores Booleanos deben tener la primera letra en mayúscula.) En el próximo capítulo trabajaremos con expresiones lógicas para controlar el flujo (los caminos alternativos a seguir) de un programa.

En la figura 2.1 se muestran algunos ejemplos de datos (objetos) de los distintos tipos (clases) básicos que hemos visto.

Figura 2.1
Figura 2.1. Tipos (clases) básicos de datos (objetos) en Python.

En el lenguaje Python los números enteros (tipo int) pueden ser positivos o negativos y el rango de los valores aceptables depende de la capacidad de memoria disponible en el computador. No es aceptable poner separadores de miles con puntos o comas. Si lo haces, Python va a entender algo distinto a un número entero. Tampoco es válido poner ceros a la izquierda de un número entero.

Los números reales (tipo float) pueden ser positivos o negativos con un punto separando la parte entera de la parte decimal (notación inglesa). La cantidad de decimales aceptables también dependerá de la arquitectura del computador. En el caso de los reales, se pueden poner ceros a la izquierda de la parte entera.

Los números complejos (tipo complex) en Python tienen dos atributos: una parte real y una parte imaginaria. Ambas partes pueden ser enteras o reales, identificándose la parte imaginaria con una “j”. En la figura 2.1 se observa que un dato complejo se escribe con la parte real, un signo de suma y la parte imaginaria terminando en “j”.

Prueba ahora escribiendo distintos datos/objetos en el editor de Python para ver cómo reacciona.

2.2 Variables y Asignación

En el capítulo anterior vimos que los datos u objetos deben estar en memoria principal (RAM) para poder ser procesados por nuestro programa. Cuando escribimos un dato en el editor de Python este es ingresado en algún lugar la memoria RAM. Veamos en el siguiente ejemplo (figura 2.2) que podemos escribir datos en el editor de Python (y por consiguiente en la RAM) y hacer operaciones aritméticas entre ellos como si Python fuera una simple calculadora.

En este ejemplo, queremos calcular el perímetro y área de un círculo de radio 1.298373. Sabemos que se calculan como 2πr y πr² respectivamente. En la figura 2.2 podemos ver como realizamos estas operaciones en Python. El símbolo * (asterisco) indica al intérprete que se debe ejecutar una multiplicación entre los números, tal como en una calculadora. El símbolo ** indica que se debe realizar una operación de exponenciación.

Figura 2.2
Figura 2.2. Uso de Python como una calculadora.

Cuando presionamos la tecla return, el intérprete de Python realiza las operaciones que le hemos indicado y nos entrega un resultado, tal como muestra la figura 2.2. Pruébalo ahora en tu editor de Python. (Veremos un poco más adelante más operaciones matemáticas que reconoce el intérprete de Python.) En la figura 2.3 podemos observar lo que ocurre en la memoria RAM cuando ejecutamos estas dos instrucciones.

Figura 2.3
Figura 2.3. Datos del ejemplo anterior en la Memoria RAM.

Esta “calculadora” de Python funciona bien, pero es muy latoso tener que escribir varias veces los mismos datos. Para evitar esta repetición (que nos podría generar más de algún error involuntario) Python (y cualquier otro lenguaje de programación) nos permite definir variables que le da un nombre a la celda de la memoria RAM donde está el dato que queremos reutilizar. Para el ejemplo anterior podemos hacer lo que se muestra en la figura 2.4. En este caso hemos definido dos variables, llamadas pi y r, las cuales le dan un nombre a las celdas RAM donde ponemos los datos que queremos reutilizar.

Figura 2.4
Figura 2.4. Uso de variables para calcular algunos datos.

Para crear variables en Python (y muchos otros lenguajes) utilizamos la instrucción:

nombre = dato

Donde nombre es cualquier palabra (o letra) que nosotros queramos inventar. Podría ser pepito, Juanita, j, N, k12, Pi314, etc. La única regla es que comience con una letra en minúscula o mayúscula. (Cuidado que para Python una mayúscula es distinta de una minúscula.) Puede tener números, pero no se pueden usar símbolos tales como: @, #, ", ', /, \ , ?, ¡, etc. Tampoco se pueden utilizar palabras reservadas tales como: str, int, float, complex, True, False, etc. (En el transcurso de este libro iremos viendo muchas más palabras reservadas que Python interpreta en forma muy especial.)

El símbolo = no es la igualdad matemática, sino que se refiere a la instrucción de asignación. Esta instrucción le indica a Python que la celda RAM donde se pone el dato (que está a la derecha de la asignación) se llamará con el nombre a la izquierda de la asignación (definido por el programador, es decir, tú). Podemos observar entonces, que una variable es una elegante forma para referirnos (apuntar o llamar) a una celda que contiene un dato en la RAM. Esto se ilustra en la figura 2.5.

Figura 2.5
Figura 2.5. Las variables apuntan (se refieren) a una celda en la RAM.

Entonces, volviendo al código descrito en la Figura 2.4, la primera instrucción es la asignación pi = 3.14159265359 e indica al procesador que se cree el dato 3.14159265359 en algún lugar de memoria RAM que se llamará pi (o tendrá como alias el nombre pi). Así, cuando utilicemos la variable pi, esta nos llevará al dato que está en ese lugar.

Asimismo, la segunda instrucción es la asignación r = 1.298373 e indica al procesador que se cree el dato 1.298373 en algún lugar de memoria RAM que se llamará r (también podemos decir que tendrá como alias el nombre r). Así, cuando utilicemos la variable r, esta nos llevará al dato que está en ese lugar.

Dentro del mismo programa podemos cambiar el dato en una celda RAM, simplemente haciendo una nueva asignación a la misma variable. Por ejemplo, podríamos calcular el perímetro y área de otro círculo, “asignándole” a la variable r otro valor (por ejemplo, con la asignación r = 12.6). Pero igual tenemos que escribir nuevamente las instrucciones para hacer el cálculo del perímetro y área del nuevo círculo.

Es importante notar que cuando termina la ejecución de tu programa (cuando cierras el editor de Python), los datos y las variables que apuntan a las celdas RAM se borran y se pierden. Solo están disponibles durante la ejecución del programa. Veremos en algunos capítulos más adelante que podemos guardar permanentemente los datos en memoria secundaria (disco duro) mediante instrucciones de manipulación de archivos.

2.3 Algunas Instrucciones Básicas

Además de la instrucción de asignación que acabamos de ver, podemos ahora definir unas pocas instrucciones básicas adicionales que nos permitirán construir nuestro primero programa Python. En la figura 2.6 se muestras algunas instrucciones que estaremos utilizando muy a menudo en este curso. Pruébalas tú mismo en el editor de Python.

Figura 2.6
Figura 2.6. Algunas instrucciones básicas en Python.

Nota: Veremos más adelante que todas las instrucciones en la figura 2.6 se conocen como funciones pre-definas de Python. Adicionalmente, el símbolo # se utiliza para indicar un comentario que Python no intenta interpretar o ejecutar; simplemente lo ignora. El comentario comienza con el :code`#` y termina con el salto de línea. Veamos ahora algunos ejemplos para tus primeros programas de Python que puedes probar en este libro interactivo.

Ejemplo 2.1

Haz un programa que imprima en consola “Hello World!” (Esto es un clásico de cada vez que aprendes un nuevo lenguaje de programación).

Ejemplo 2.2

Haz un programa que pida un número al usuario, e imprima en pantalla el mensaje “Ingresaste el número x”, donde x es el valor del número ingresado.

2.4 Operadores y Expresiones

Al igual que en otros lenguajes de programación, en Python se utilizan operadores para realizar operaciones aritméticas con datos numéricos. Los operadores se representan con símbolos similares a los que se utilizan en una calculadora. En la figura 2.7 se muestran los operadores aritméticos que reconoce Python.

Figura 2.7
Figura 2.7. Operadores aritméticos en Python.

En los ejemplos de la figura 2.7, cada instrucción asigna a una variable r el resultado de la operación aritmética. Estas instrucciones se conocen como expresiones aritméticas que utilizan operadores con datos u operandos.

En la división / el resultado que se obtiene es siempre un número real (float), mientras que en la división entera // el resultado es solo la parte entera. Prueba en qué casos de la división entera el resultado es un entero o un real.

El operador % (módulo) entrega el resto de la división entera entre dos operandos. En el ejemplo de la figura 2.7, el resto de 7 dividido por 2 es 1. Prueba en qué casos el resultado del operador módulo es un entero o un real.

Ejemplo 2.3

Haz un programa que pida dos números al usuario e imprima en pantalla el valor de la suma de los numeros.

Ejemplo 2.4

Haz un programa que pida un número que representa una temperatura en Celsius. Imprime el valor de la misma temperatura en Fahrenheit.

Ejemplo 2.5

Haz un programa que pida al usuario un número que representa el radio de un círculo e imprima su área y su perímetro.

2.5 Asignación a Si Mismo

En programación es muy frecuente hacer cambios en una variable, haciendo incrementos o decrementos del valor que tiene almacenado. Por ejemplo, si tenemos el dato 34 en la variable i, podríamos hacer la asignación i = i +1 para incrementar en uno su valor, resultando en 35 el valor en i. En este ejemplo, Python primero ejecuta la expresión aritmética, esto es 34 + 1, y luego asigna el resultado a la misma variable i. Python tiene una forma corta de hacer esto, con la instrucción i += 1.

Ejemplo 2.6

Haz un programa que pida al usuario un número entero e imprime el sucesor de ese número.

2.6 Ejercicios

A continuación, te proponemos varios ejercicios para que los resuelvas en tu libro interactivo.

Ejercicio 2.1

Haz un programa que pida dos números al usuario e imprima su resta, su multiplicación y su división

Ejercicio 2.2

Haga un programa que reciba el valor del lado de un cuadrado y calcule su área y perímetro.

Ejercicio 2.3

Haga un programa que pida tres numeros y se imprima su promedio.

Ejercicio 2.4

Haga un programa que reciba el radio de una esfera e imprima en pantalla su volumen.

Ejercicio 2.5

Haz un programa que reciba tres valores a, b y c que representen a la ecuación ax + b = c. Imprime en pantalla el valor de x.

Next Section - 3. Control de Flujo: Condicionales