Tutorial de Python - Variables y tipos de datos

Jinku Hu 3 enero 2023
  1. Variable en Python
  2. Tipo de datos de Python
Tutorial de Python - Variables y tipos de datos

En esta sección, aprenderás sobre variables y tipos de datos en la programación en Python.

Variable en Python

Una variable es una ubicación de memoria que tiene un nombre y un valor (algunos datos).

Las variables tienen nombres únicos para que las ubicaciones de memoria puedan ser diferenciadas. Tienen las mismas reglas de denominación a seguir que las de los identificadores. Compruebe reglas de denominación de identificadores.

En Python, no es necesario declarar una variable (especificando el tipo de datos) antes de usar esa variable. Si quieres crear una variable, sólo tienes que escribir un nombre válido para la variable y asignarle algún valor mediante el operador de asignación. El tipo de datos de la variable se definirá internamente de acuerdo con el tipo de valor que le asignes.

Asignación de variables

Un operador de asignación = se utiliza para asignar un valor a una variable. Puede asignar cualquier tipo de valor a una variable. El tipo de datos de la variable se definirá internamente.

El siguiente código demuestra cómo un operador de asignación puede ser usado para asignar valores de diferentes tipos de datos:

x = 3
y = 4.124
z = "Python"

Aquí tienes variables int, float y string.

Asignaciones múltiples

También se pueden asignar valores a múltiples variables en una sola sentencia Python. Esto se denomina asignaciones múltiples. Considera el código de abajo:

x, y, z = 2, 4.124, "Python"

Aquí 2 es asignado a x, 4.124 es asignado a y y la cadena Python es asignada a z.

Si quieres asignar el mismo valor a diferentes variables, puedes escribir:

x = y = z = "Blue"

Ahora las tres variables son iguales.

Advertencia
No es una buena práctica asignar una lista a dos variables como la anterior. Ambas/todas apuntan a la misma ubicación de memoria, por lo tanto, si el valor es modificado por una variable, todas las demás también se modifican de forma imperceptible. Podrías encontrarte con algún comportamiento extraño si no eres consciente de ello.

Tipo de datos de Python

Cada vez que se asigna un valor a una variable, también se especifica el tipo de datos de la variable. Python es una programación orientada a objetos, y todo en Python es un objeto porque Python no tiene tipos primitivos o desboxeados.

En Python, los tipos de datos de las variables son en realidad clases de qué variables son las instancias (objetos).

Los siguientes son algunos de los tipos de datos en Python:

Números

Los números como los enteros, los de punto flotante y los complejos son números Python. En Python, los números enteros son representados por int, las coma float por float y los números complejos por complejo de clase.

La función type() incorporada puede utilizarse para comprobar el tipo de datos de una variable o a qué clase pertenece una variable.

La función isinstance() se utiliza para verificar si el objeto es una instancia de la clase específica o una subclase de la misma. Su primer argumento es el propio objeto y el segundo es el tipo de datos con el que se va a comparar.

x = 3
print("type of", x, "is", type(x))
x = 3.23
print("type of", x, "is", type(x))
x = 3 + 3j
print("is", x, "a complex number:", isinstance(x, complex))
type of 3 is <class 'int'>
type of 3.23 is <class 'float'>
is (3+3j) a complex number: True

Lista

Una lista es una secuencia ordenada de elementos de (diferentes) tipos de datos. Una lista puede ser creada en Python usando corchetes [] y dentro de los corchetes tiene elementos de la lista que están separados por comas.

x = [2, 4.5, "blue"]

Para acceder al miembro de la lista puede utilizar el operador de acceso a índices que en Python se conoce como operador de rebanado []. La indexación de los elementos de la lista comienza desde 0. Considere el siguiente ejemplo:

x = [2, 4, 6, 8, 10]
print("x[0] =", x[0])  # displays the first element
print(
    "x[0:2] =", x[0:2]
)  # displays first two elements of list that is at location 0 and 1
print("x[2:] =", x[2:])  # displays elements from location 2 (third element)
x[0] = 2
x[0:2] = [2, 4]
x[2:] = [6, 8, 10]

Los elementos de la lista en Python pueden ser cambiados (actualizados, borrados, añadidos). En otras palabras, la lista en Python es mutable.

Nota
Las listas son mutables.

Tupla

La tupla es también una lista ordenada de artículos igual que la lista. La única diferencia entre una tupla y una lista es que el elemento de la tupla es inmutable.

Se puede definir una tupla en Python utilizando paréntesis y los elementos se separan con comas:

x = (3, "pink", 3 + 8j)
print("x[0] =", x[0])
print("x[0:2] =", x[0:2])
x[0] = 4  # Error because tuples are immutable
x[0] = 3
x[0:2] = (3, 'pink')
TypeError: 'tuple' object does not support item assignment
Nota
Las tuplas son inmutables.

Cadena

Una cadena es una secuencia de caracteres. Se puede crear un string utilizando comillas simples o dobles. También se puede crear un string de varias líneas utilizando comillas triples.

x = "String of characters"
x = """Multiline
string"""

Para acceder a los caracteres del string se utiliza un operador de corte.

x = "Python Programming"
print("x[0] =", x[0])
print("x[4:15] =", x[4:15])
x[4] = "l"  # Error because strings are immutable
x[0] = P
x[4:15] = on Programm
TypeError: 'str' object does not support item assignment
Nota
Las cadenas de caracteres también son inmutables.

Conjunto

El conjunto contiene elementos únicos y es una lista de elementos no ordenada. Un conjunto en Python puede crearse utilizando llaves {} y los elementos están separados por comas.

x = {3, 5, 7, 2, 4, 5}
print(x)  # prints the set variable
print(type(x))  # checking type of x
{2, 3, 4, 5, 7}
<class 'set'>
Nota
Los conjuntos son mutables.

Diccionario

El diccionario es un tipo de datos nativo de Python cuyos elementos son pares clave-valor. Un diccionario contiene elementos no ordenados. Un dato o valor del diccionario puede ser recuperado si se conoce la clave.

Se puede crear un diccionario utilizando llaves {} con cada elemento que sea un par que contenga clave y valor.

Las claves y los valores en el diccionario de Python pueden ser de cualquier tipo.

Considere el ejemplo siguiente:

x = {1: "blue", "key": "pink"}
print(type(x))
print("x[1] = ", x[1])  # using key to retrive value
print("x['key'] =", x["key"])  # using key to retrive value
<class 'dict'>
x[1] =  blue
x['key'] = pink
Nota
El diccionario es mutable.

Conversión de tipos

Las variables Python pueden ser convertidas en otros tipos, por ejemplo, puedes convertir el tipo de datos int en el tipo de datos float. Para la conversión de tipos puede usar funciones de conversión como int(), float(), str(), etc.

x = 8
print("Value of x = ", int(x))
print("Value of x = ", float(x))
Value of x =  8
Value of x =  8.0

Si desea convertir el valor float en el valor int entonces la parte decimal será truncada.

y = 3.4
print("Converting float to int:", int(y))
Converting float to int: 3

Si desea convertir el tipo de datos string a otro tipo, debe proporcionar valores compatibles, de lo contrario obtendrá un ValueError:

print("Converting string to float:", float("33.9"))
print("Converting string to float:", float("text"))
Converting string to float: 33.9
Traceback (most recent call last):
  File "<pyshell#12>", line 1, in <module>
    float('a')
ValueError: could not convert string to float: text

Puede convertir una secuencia en otra, por ejemplo, set a tuple o una string a list y así sucesivamente usando funciones como list, set, tuple, etc.

print(set([4, 5, 6]))
print(tuple({8, 9, 10}))
print(list("Python"))
{4, 5, 6}
(8, 9, 10)
["P", "y", "t", "h", "o", "n"]
Autor: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook