Se denomina dato a cualquier objeto manipulable por la computadora. Un dato puede ser un carácter leı́do de un teclado, información almacenada en un disco, un número que se encuentra en la memoria central, etc. Los distintos tipos de datos se representan en diferentes formas: por ejemplo, no se almacena internamente de la misma manera un número entero que un caracter. Aunque los lenguajes de alto nivel permiten en alguna medida ignorar la representación interna de los datos, es preciso conocer algunos conceptos mı́nimos. A nivel de máquina todos los datos se representan utilizando una secuencia finita de bits. La definición de un tipo de dato incluye la definición del conjunto de valores permitidos y las operaciones que se pueden llevar a cabo sobre estos valores. Cuando se utiliza un dato en un programa es preciso que esté determinado su tipo para que el compilador o interpretador sepa cómo debe tratarlo y almacenarlo. Dependiendo del lenguaje puede o no ser preciso declarar expresamente en el programa el tipo de cada dato. No todos los tipos de datos existen en todos los lenguajes de programación. Hay lenguajes más ricos que otros en este sentido [Datos y variables, 2009].
Los tipos de datos básicos, denominados elementales (o primitivas) son:
# Números enteros (int) (2 or 4 bytes)
-6, 22, -4
(-6, 22, -4)
# Números reales (float) (parte entera - parte decimal) (4 bytes)
0.009, -31.423, 3.0
# Lógicos (bool) (1 bit)
True, False
# Caracteres (char --> ASCII) (1 byte)
'h', '!', 'A'
Tipos de datos construidos a partir de datos elementales:
# Números complejos (complex)
2+3j, -3J
Python trae soporte por defecto para los números complejos, dónde la parte imaginaria va a estar representada por la letra j o J en lugar de utilizar la i como en la notación matemática.
# Cadena de caracteres (string)(str)
'Esto es una cadena de caracteres', "123ABC"
Se puede recuperar resultados pasados usando _
# Para acceder al último resultado
_
# Resultado de la línea [2]
_2
Un operador es un símbolo que indica que debe ser llevada a cabo una operación especificada, sobre un cierto número de operandos. Si abrimos una consola de Python, podríamos utilizarla como calculadora (siempre entre datos del mismo tipo):
# Exponenciación (doble asterisco)
10**6, 10**-6
# Los enteros son virtualmente ilimitados
x = 9 ** 1000
print(x)
# Suma
12 + 123, 5.67 + 0.42
# Resta
123 - 12, 2.13 - 12
# Multiplicación
123 * -12, 34 * 65
# División
10/2
Al dividir números enteros, el resultado es siempre decimal, aunque sea un número entero. Cuando Python escribe un número decimal, lo escribe siempre con parte decimal, aunque sea nula.
Nota: al realizar operaciones con decimales, los resultados pueden presentar errores de redondeo.
Nota: hay soporte completo de punto flotante; operadores con operando mezclados convertirá los enteros a punto flotante:
# Resto
10%3
1
10/3
3.3333333333333335
Las reglas de prioridad de operaciones son las mismas que en álgebra:
Nota: Utilizar paréntesis para modificar la prioridad.
Características de Python respecto al uso de variables:
Nota: en Python todo es un objeto del tipo string, con atributos y métodos, en la mayoría de los casos.
Por otra parte, no es necesario inicializar las variables, aunque en algunos casos inicializar y establecer posiciones de memoria previamente puede mejorar el rendimiento de nuestro código.
Las instrucciones de asignación sirven para etiquetar los objetos en Python. La sintaxis más habitual de una operación de asignación es:
a = 1
Aquí, el número entero 1 (que, como todo en Python, es un objeto) tiene una etiqueta llamada a. Si reasignamos la etiqueta a, simplemente la movemos a otro objeto.
a = 2
Ahora la etiqueta está atada al objeto 2 (que también es un número entero). El objeto original (el número 1) ya no tiene la etiqueta a. Puede que todavía exista, pero no podemos acceder a él a través de esta etiqueta. (Cuando un objeto no tiene más referencias o etiquetas, es eliminado).
s = "soy un string"
s = 78
Con estos ejemplos ejemplificamos que el valor del objeto no cambió durante la vida del objeto. Por lo contrario, se creó otro objeto.
v = s
Python indexa comenzando en 0, no en 1 como en MATLAB, por ejemplo. De todas formas su sintaxis es muy parecida. Se presenta un ejemplo con string, pero como se mostrará más adelante lo mismo se aplica a otras estructura de datos.
x = "Monty Python"
x[0]
x[-12]
len(x)
A continuación se presenta algunas de las funciones útiles, que vienen integradas en Python (sin necesidad de importar ningún módulo), que pueden ser utilizadas con la mayoría de los datos. Estas funciones son pertenecientes a la librería estandar de Python.
# Devuelve la longitud de una secuencia o colección
len([1,2,3,4,6])
# Imprime expresiones
print("introducción informal a Python 3")
# Función para ingresos de datos
input()
# Funciones de casting
int(10)
float(10)
str(10)
# Un ejemplo de aplicación
x = 9 ** 10
print(x)
len(str(x))
Este documento se destribuye con una licencia Atribución CompartirIgual 4.0 Internacional de Creative Commons.
© 2020. Infiniem Labs Acústica. infiniemlab.dsp@gmail.com (CC BY-SA 4.0))