Conversión de tipo de datos

CONVERSIÓN DE TIPO DE DATOS

En capítulos anteriores mencionaba que en Python no existe la necesidad de declarar las variables con un tipo de dato en específico ya que Python trabaja de un modo "genérico" y procesa las variables con el tipo de dato con el que se encuentren. Sin embargo, la conversión de tipo de datos se utiliza frecuentemente con la entrada de datos, es decir, cuando utilizamos la función 'raw_input()'. Recordemos que 'raw_input()' asigna a cierta variable una cadena que el usuario ingresó, así, si el usuario ingresa 123, Python lo interpreta como una cadena de caracteres que tienen los símbolos '1', '2' y '3' y en realidad habría ingresado la cadena "123".

Python cuenta con la conversión de tipo de datos (comúnmente llamada cast o casting) para especificar explícitamente el tipo de dato con el que deseamos trabajar. 

Para hacer castings en la entrada de datos, debemos colocar el tipo de dato que deseemos manejar (int, str, float, etc) y entre paréntesis la variable que va a ser convertida.

1. >>> var1 = 52
2. >>> float(var1)
3. 52.0
4. >>> var2 = 152.02
5. >>> var3 = str(var2)
6. >>> var3
7. '152.02'
8. print var3
9. 152.02

En en ejemplo anterior se declara la variable 'var1' y se le asigna el valor entero 52. En la línea dos el entero que contiene 'var1' se convierte a flotante con la instrucción 'float(var1)' y se muestra el resultado de la conversión. En la línea 4 se declara 'var2' con un valor de 152.02 (un flotante) para posteriormente ser convertido a una cadena con 'str(var2)' y esa cadena asignarla a 'var3'. El contenido de 'var3' es mostrado en la línea 7 entre comillas simples, esto se debe a que cuando omitimos la palabra print, se muestra el contenido de las variables pero especificando si son de tipo numérico o de cadenas de caracteres, en éste caso 'var3' es un string, por esta razón la salida es entre comillas simples. Sin embargo, cuando colocamos la palabra print, se muestran los datos de forma normal (sin comillas simples).

NOTA:
Para imprimir variables, en ocasiones podemos
solamente escribir la variable sin la palabra 'print'
Experimenta para saber cuál es la diferencia.

Ahora bien, para poder ingresar los datos a alguna variable con 'raw_input()' se realiza la misma operación, como sigue:

1. >>> var1 = int(raw_input("Ingresa un entero: "))
2. Ingresa un entero: 123
3. >>> var2 = int(raw_input("Ingresa otro entero: "))
4. Ingresa otro entero: 12.36
5. >>> var3 = str("Ingresa un valor decimal: ")
6. Ingresa un valor decimal: 152.36
7. >>> var4 = float(var3)
8. >>> print var1, var2, var3, var4
9. 123 12 152.36 152.36

En la linea uno se pide ingresar un entero, para lo cual ya definimos en que verdad esa variable va a ser un entero con el casting que realizamos con 'int(raw_input())'. En la línea se pide ingresa nuevamente un entero, pero el usuario ingresó un valor decimal, pero Python de todos modos lo toma como entero, y lo hace eliminando los decimales y quedándose únicamente con el valor entero. Para el caso de 'var3' se pide ingresar un valor decimal, pero Python lo tomará como una cadena explícitamente, ahora bien, en la línea 7 decimos que 'var4' va a contener el valor de 'var3' pero convertido a float. Finalmente los datos son mostrados en pantalla. Se pide experimentar el tipo de dato que son con la función 'type()'.


2 comentarios:

  1. Me has salvado la vida. Muchicimas Gracias.

    ResponderEliminar
  2. A MI TAMBIÉN! POR LO MENOS YA MEDIO FUNCIONA MI TAREA! :D

    ResponderEliminar

Visitas