Tipos de variables
curso-python 2020-07-28 21:00:00
Las variables además de un contenido tienen también un tipo, esto es, el tipo de datos que almacenan. Entre los tipos más básicos encontramos las variables de tipo cadena (se las conoce así ya que hacen referencia a una cadena de texto, o mas comunmente se las conoce como string en inglés).
Vamos un ejemplo práctico, escribamos el siguiente código
mi_variable = "Daniel"
tipo_de_variable = type(mi_variable)
print(tipo_de_variable)
Vemos que en la primeras dos líneas de código definimos dos variables (nota que entre las palabras que identifican a las variables se ingresó un guión bajo para separarlas y facilitar su lectura, ya que no es posible definir una variable con un espacio en blanco en su identificador). En la primera línea asigna el valor a mi_variable, luego la segunda linea almacena en tipo_de_variable lo que devuelve type(), es decir, en nuestro caso como pasamos como argumento nuestra la variable ingresada por el usuario, devolverá el tipo de variable asignado.
Finalmente con print imprimimos tipo_de_variable para ver que nos devuelve, en nuestro caso sera:
<class 'str'>
Seguramente estabas esperando que dijese "cadena" o "string" tal vez, que ocurrió? Pues bien es que para python es precisamente lo que nos muestra, el texto 'str' no es mas que la abreviación de string. Pero entonces que significa eso de "class"? Se trata de que para python las tipos de variables son en sí una "clase", y nos está diciendo en si que esa variable es de una clase string (ya veremos más adelante el tema de clases).
Cambiemos ahora la asignación del valor en la primera linea para que quede así:
mi_variable =30
Si ejecutamos el programa nos devolverá
<class 'int'>
De forma similar al ejemplo anterior, el valor 'int' nos dice de que tipo es, en este caso es de la clase "int", que es la abrevación de "intenger", clase destinada a los números enteros. Y qué tal si ingresamos lo siguiente:
mi_variable = 12.5
En ese caso nos devolverá
<class 'float'>
En este caso python lo identifica como float, lo que significa de "coma flotante" (esto sucede porque el valor numérico tienen decimales)
Llegado a este punto podríamos preguntarnos cual es la verdadera utilidad de todo esto?, pues bien, el tipo de datos es algo básico para python (y otros lenguajes de programación). Supongamos que vamos a hacer una suma de dos valores con el siguiente ejemplo:
valor1 = 10
valor2 = 3
resultado = valor1 + valor2
print(resultado)
Analicemos el código, en primer lugar definimos una variable valor1 a la cual le asignamos 10, luego definimos otra variable valor2 y le asignamos 3. En la tercera línea definimos la variable resultado, y le asignamos el resultado de valor1 + valor2. Por último mostramos en pantalla el valor de resultado, el cual obviamente será 13.
Sin en el mismo ejemplo cambiamos una de las variables, y le asignamos un valor de cadena como sigue
valor1 = "10"
entonces al ejecutar nuestro programa nos dará error, ya que estamos intentando sumar un string (cadena de texto) con un integer (numero entero). Nota que aunque el valor es 10 el hecho que éste se encierre entre comillas hace que python lo interprete como un string.
Ese es solo un simple ejemplo de cómo influyen los tipos de variables, su importancia la veras a lo largo de este curso de python.
Si bien nuestro ejemplo hemos inducido el error, ten en cuenta que muchas veces necesitarás obligar un cambio de tipo de variable, en nuestro ejemplo podríamos usar la función int() para convertir un string en integer, y evitar así el error anterior.
valor1 = "10"
valor2 = 3
resultado = int(valor1) + valor2
print(resultado)
En este otro ejemplo puedes ver como hacemos uso de varias transformaciones y vemos de los resultados en pantalla
valor = "10"
print(type(valor))
valor = int(valor)
print(type(valor))
valor = str(valor)
print(type(valor))
Podrás ver que a la variable valor le asignamos "10", mostramos en pantalla su tipo, luego la transformamos en integer, mostramos su tipo, y por ultimo la volvemos a tranforma en string (con la funcion str()) y volvemos a mostrar su tipo.
Nota un detalle en estos códigos y es que hemos insertado las funciones type() dentro las funciones print(), como
print(type(valor))
Esta es una característica que puedes hacer uso cuando la creas necesaria, y es la posibilidad de insertar funciones dentro de otra funciones, y funciona ejecutando la función "interior" para luego ejecutar la función "externa", en nuestro ejemplo primero se ejecuta type(valor), y lo que esta función devuelve lo toma el print(), que es el encargado de mostrar en pantalla.
Esto podríamos hacerlo de esta otra forma con una variable previa para almacenar el tipo devuelto:
valor = "10"
tipo_de_variable = type(valor)
print(tipo_de_variable)
pero como vez con nuestra codificación en lugar de 3 líneas escribimos solo 2, de hecho podríamos haber logrado la misma funcionalidad con una sola línea:
print(type("10"))
Como verás encontrarás muchas veces más de un camino de lograr tu objetivo, la experiencia te dirá que es lo más conveniente según el caso. Si bien en el ejemplo anterior se escribió 1 sola línea, podría argumentarse que con 3 líneas se entienden mejor los códigos al leerlo... nuevamente, la decisión de cómo escribir los códigos por tu decisión.