Curso de Python
Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors

Cambiando tipos de variables

Convertir variables de un tipo a otro se denomina casting. En Python podemos comprobar el tipo de una variable mediante la función type(), o bien mediante la función isInstance(), como se muestra a continuación

In

a = 2.0

b = 2

print(type(a))

print(type(b))

Out

<class 'float'>

<class 'int'>

In

print(isinstance(a, float))

print(isinstance(a, int))

print(isinstance(b, float))

print(isinstance(b, int))

Out

True

False

False

True

Podemos cambiar el tipo de variable mediante las funciones int()float()complex()str(), como se aprecia a continuación

In

print(int(18.6))

print(float(1))

print(complex(2))

print(str(256))

print(int('1234'))

Out

18

1.0

(2+0j)

256

1234

Pero como todos los cambios anteriores se ejecutan inmediatamente, los datos no se almacenan en ninguna variable, por lo que después no podemos comprobar si el cambio de tipo fue el correcto con la función type(). Vamos a hacerlo un poco mejor:

In

cadena_texto = "12345"

print("Cadena original: ")

print(cadena_texto)

print("Tipo: ")

print(type(cadena_texto))

Out

Cadena original: 

12345

Tipo:

<class 'str'>

In

cadena_num = int(cadena_texto)

print("Cadena con tipo modificado: ")

print(cadena_num)

print("Tipo: ")

print(type(cadena_num))

Out

Cadena con tipo modificado: 

12345

Tipo:

<class 'int'>

Si intentamos realizar un casting de una variable del tipo texto (string) a un entero, solo funcionará si la cadena de caracteres, en su interior, contiene caracteres que se pueden transformar a números, en el momento en el que existan caracteres del tipo letra, nos dará error:

In

cadena_texto = "123abc"

cadena_num = int(cadena_texto)

Out

ValueError: invalid literal for int() with base 10: '123abc'

Otras funciones que nos pueden ayudar bastante en la conversión y manejo de números son:

  • round(), que nos permite redondear un número a su entero más cercano.
  • max(), que nos devolverá el número mayor de una secuencia de números pasada como parámetro.
  • min(), que nos devolverá el número menor de una secuencia de números pasada como parámetro.

Veamos uno ejemplos:

In

print(round(18.6))

print(max(1, 5, 9, 7))

print(min(-1, 1, 0))

Out

19

8

-1