Tipos de variables en Python: Entendiendo y usando tipos de datos
Las variables no son más que ubicaciones de memoria reservadas para almacenar valores. Esto significa que cuando creas una variable, reservas espacio en memoria.
Basado en el tipo de dato de una variable, el intérprete asigna memoria y decide qué se puede almacenar en la memoria reservada. Por lo tanto, asignando diferentes tipos de datos a variables, puedes almacenar enteros, decimales o caracteres.
Asignación de valores a variables
Las variables de Python no necesitan declaración explícita para reservar espacio en memoria. La declaración ocurre automáticamente cuando asignas un valor a una variable. El signo igual (=) se usa para asignar valores.
El operando a la izquierda del operador = es el nombre de la variable y el operando a la derecha es el valor almacenado. Por ejemplo:
Demo en vivo#!/usr/bin/python contador = 100 # Asignación de entero millas = 1000.0 # Punto flotante nombre = "Juan" # Cadena print contador print millas print nombre
Aquí, 100, 1000.0 y "Juan" son los valores asignados a contador, millas y nombre respectivamente. Esto produce:
100 1000.0 Juan
Asignación múltiple
Python permite asignar un solo valor a varias variables simultáneamente. Por ejemplo:
a = b = c = 1
Aquí, se crea un objeto entero con valor 1, y las tres variables apuntan a la misma ubicación de memoria. También puedes asignar múltiples objetos a múltiples variables:
a, b, c = 1, 2, "juan"
Aquí, dos objetos enteros con valores 1 y 2 se asignan a a y b respectivamente, y un objeto cadena con valor "juan" se asigna a c.
Tipos de datos estándar
Los datos almacenados en memoria pueden ser de muchos tipos. Python tiene cinco tipos de datos estándar:
- Números
- Cadena (String)
- Lista (List)
- Tupla (Tuple)
- Diccionario (Dictionary)
Números en Python
Los tipos de dato numérico almacenan valores numéricos. Los objetos numéricos se crean cuando asignas un valor. Por ejemplo:
var1 = 1 var2 = 10
Puedes eliminar la referencia a un objeto numérico usando la instrucción del. La sintaxis es:
del var1[,var2[,var3[....,varN]]]]
Puedes eliminar un solo objeto o múltiples objetos. Por ejemplo:
del var del var_a, var_b
Python soporta cuatro tipos numéricos diferentes:
- int (enteros con signo) - Números enteros positivos o negativos sin punto decimal.
- long (enteros largos) - Enteros de tamaño ilimitado, escritos como enteros seguidos de L mayúscula o minúscula.
- float (valores reales de punto flotante) - Números reales con punto decimal. También notación científica (2.5e2 = 250).
- complex (números complejos) - Forma a + bJ, donde a y b son floats y J representa la raíz cuadrada de -1.
Ejemplos
Ejemplos de números:
| int | long | float | complex |
|---|---|---|---|
| 10 | 51924361L | 0.0 | 3.14j |
| 100 | -0x19323L | 15.20 | 45.j |
| -786 | 0122L | -21.9 | 9.322e-36j |
| 080 | 0xDEFABCECBDAECBFBAEL | 32.3+e18 | .876j |
| -0490 | 535633629843L | -90. | -.6545+0J |
| -0x260 | -052318172735L | -32.54e100 | 3e+26J |
| 0x69 | -4721885298529L | 70.2-E12 | 4.53e-7j |
Python permite usar l minúscula con long, pero se recomienda usar solo L mayúscula para evitar confusión con el número 1. Python muestra enteros largos con L mayúscula.
Un número complejo consiste en un par ordenado de números reales de punto flotante denotados por a + bj, donde a es la parte real y b la parte imaginaria.
Cadenas en Python
Las cadenas en Python son un conjunto contiguo de caracteres representados entre comillas. Python permite comillas simples o dobles. Subconjuntos de cadenas se obtienen con el operador de rebanado ([ ] y [:]) con índices desde 0 al inicio y -1 al final.
El signo más (+) es el operador de concatenación y el asterisco (*) es el operador de repetición. Por ejemplo:
Demo en vivo#!/usr/bin/python cadena = '¡Hola Mundo!' print cadena # Imprime cadena completa print cadena[0] # Primer carácter print cadena[2:5] # Caracteres 3ro a 5to print cadena[2:] # Desde 3er carácter print cadena * 2 # Dos veces la cadena print cadena + "PRUEBA" # Concatenación
Resultado:
¡Hola Mundo! H la la Mundo! ¡Hola Mundo!¡Hola Mundo! ¡Hola Mundo!PRUEBA
Listas en Python
Las listas son el tipo de dato compuesto más versátil. Contienen elementos separados por comas entre corchetes []. A diferencia de arrays en C, los elementos de una lista pueden ser de diferentes tipos.
Los valores se acceden con el operador de rebanado ([ ] y [:]) con índices desde 0. El + concatena y * repite. Por ejemplo:
#!/usr/bin/python lista = ['abcd', 786, 2.23, 'juan', 70.2] listapequeña = [123, 'juan'] print lista print lista[0] print lista[1:3] print lista[2:] print listapequeña * 2 print lista + listapequeña
Resultado:
['abcd', 786, 2.23, 'juan', 70.2] abcd [786, 2.23] [2.23, 'juan', 70.2] [123, 'juan', 123, 'juan'] ['abcd', 786, 2.23, 'juan', 70.2, 123, 'juan']
Tuplas en Python
Una tupla es otro tipo de dato secuencia similar a la lista. Consiste en valores separados por comas, pero encerrados entre paréntesis.
Diferencias principales: las listas usan corchetes [] y sus elementos y tamaño pueden cambiar; las tuplas usan paréntesis () y no pueden actualizarse. Las tuplas son listas de solo lectura. Por ejemplo:
Demo en vivo#!/usr/bin/python
tupla = ('abcd', 786, 2.23, 'juan', 70.2)
tuplapequeña = (123, 'juan')
print tupla
print tupla[0]
print tupla[1:3]
print tupla[2:]
print tuplapequeña * 2
print tupla + tuplapequeña
Resultado:
('abcd', 786, 2.23, 'juan', 70.2)
abcd
(786, 2.23)
(2.23, 'juan', 70.2)
(123, 'juan', 123, 'juan')
('abcd', 786, 2.23, 'juan', 70.2, 123, 'juan')
El siguiente código es inválido con tupla, porque intentamos actualizar una tupla, lo cual no está permitido. Con listas sí es válido:
#!/usr/bin/python
tupla = ('abcd', 786, 2.23, 'juan', 70.2)
lista = ['abcd', 786, 2.23, 'juan', 70.2]
tupla[2] = 1000 # Sintaxis inválida con tupla
lista[2] = 1000 # Sintaxis válida con lista
Diccionario en Python
Los diccionarios de Python son tipo tabla hash. Funcionan como arrays asociativos o hashes en Perl y consisten en pares clave-valor. Una clave puede ser casi cualquier tipo Python, pero usualmente son números o cadenas. Los valores pueden ser cualquier objeto Python arbitrario.
Los diccionarios se encierran entre llaves { } y los valores se acceden con corchetes []. Por ejemplo:
Demo en vivo#!/usr/bin/python
dic = {}
dic['uno'] = "Esto es uno"
dic[2] = "Esto es dos"
dicpequeño = {'nombre': 'juan', 'codigo': 6734, 'depto': 'ventas'}
print dic['uno']
print dic[2]
print dicpequeño
print dicpequeño.keys()
print dicpequeño.values()
Resultado:
Esto es uno
Esto es dos
{'depto': 'ventas', 'codigo': 6734, 'nombre': 'juan'}
['depto', 'codigo', 'nombre']
['ventas', 6734, 'juan']
Los diccionarios no tienen concepto de orden entre elementos. Es incorrecto decir que están "fuera de orden"; simplemente no están ordenados.
Conversión de tipos de datos
A veces necesitas realizar conversiones entre tipos integrados. Para convertir, simplemente usa el nombre del tipo como función.
Hay varias funciones integradas para conversión entre tipos. Estas funciones devuelven un nuevo objeto representando el valor convertido.
| Nº | Función y descripción |
|---|---|
| 1 | int(x [,base]) - Convierte x a entero. base especifica la base si x es cadena. |
| 2 | long(x [,base]) - Convierte x a entero largo. base especifica la base si x es cadena. |
| 3 | float(x) - Convierte x a número de punto flotante. |
| 4 | complex(real [,imag]) - Crea número complejo. |
| 5 | str(x) - Convierte objeto x a representación de cadena. |
| 6 | repr(x) - Convierte objeto x a cadena de expresión. |
| 7 | eval(str) - Evalúa una cadena y devuelve un objeto. |
| 8 | tuple(s) - Convierte s a tupla. |
| 9 | list(s) - Convierte s a lista. |
| 10 | set(s) - Convierte s a conjunto. |
| 11 | dict(d) - Crea diccionario. d debe ser secuencia de tuplas (clave,valor). |
| 12 | frozenset(s) - Convierte s a conjunto inmutable. |
| 13 | chr(x) - Convierte entero a carácter. |
| 14 | unichr(x) - Convierte entero a carácter Unicode. |
| 15 | ord(x) - Convierte carácter a su valor entero. |
| 16 | hex(x) - Convierte entero a cadena hexadecimal. |
| 17 | oct(x) - Convierte entero a cadena octal. |
python
- Domine variables y tipos de datos primitivos en C#: Guía completa
- Dominando Variables, Literales y Constantes en C++: Guía Completa
- Variables, constantes y literales en C: guía completa
- Entendiendo las clases de almacenamiento en C: ámbito, vida y rendimiento
- Variables y tipos de datos en C++: Guía experta sobre int, double, char, string, bool
- Variables, constantes y literales en Python – Guía completa
- Dominando tipos de datos en Python: Guía práctica
- Dominando operadores en Python: Guía completa
- Entendiendo variables globales, locales y nonlocal en Python
- Dominando la palabra clave global en Python: Cómo y cuándo usarla
- Dominando Diccionarios en Python: Creación, Manipulación y Técnicas Avanzadas