Datos Estructurados
Cadenas. Listas. Matrices.
Hasta ahora: los tipos de datos Enteros (int). Punto flotante (float). Cadenas (str). Booleanos (verdadero o falso) Ahora agregamos: Sucesión de elementos.
Ejemplos: Hola Juan Pérez 45.55 Operadores: Concatenación (+): >>> Juan + + Pérez Juan Pérez >>> nombre= Juan >>> apellido= Pérez >>> nombre_completo=nombre+ +apellido Autoincremento (+=): >>> nombre_completo= Juan >>> nombre_completo+= Pérez >>> nombre_completo Juan Pérez Repetición (*): >>> SI *5 SISISISISI Formateado (%): >>> print Perímetro %2.4f % 55.124512 55.1245 U6 Datos Estructurados Informática III - ISM -
Funciones: Conversión a entero: >>>int( 5 ) 5 Conversión a flotante: >>>float( 5.5 ) 5.5 Conversión a cadena: >>> str(44) 44 Convertir a Código ASCII >>> ord( a ) 97 Convertir de ASCII a carácter: >>> chr(97) a Métodos: Convertir a mayúsculas: >>> juan.upper() JUAN Convertir a minúscula: >>> JUAN.lower() juan Convertir a título: >>> juan m. pérez.title() Juan M. Pérez
Caracteres especiales: Carácter de escape o «contrabarra» (\) (alt+92): >>> a= una linea\notra linea >>> print a una linea otra linea
Caracteres especiales: Ejemplos: >>> print uno\tdos\ttres uno dos tres >>> print a\\b a\b >>> print Francia \ 98 Francia 98
Indexado de cadenas Ejemplo de uso: U6 Datos Estructurados Informática III - ISM -
Longitud de cadena Se puede obtener el largo de una cadena utilizando la función len(cadena), que devuelve un número entero con la longitud de la cadena. U6 Datos Estructurados Informática III - ISM - Aclaración: «len» es el apócope de «length» que en inglés significa «longitud»
Recorrer una cadena Por carácter Por índice
Extraer subcadena: El operador corchete [] también permite extraer parte de la cadena. Para ello utiliza el «operador de corte» o sea, los dos puntos «:». La sintaxis para obtener una subcadena es la siguiente: >>> cadena[i:j] Donde i es el número de la posición del primer carácter que queremos extraer y j es la posición +1 del último carácter que deseamos extraer.
Extraer subcadena U6 Datos Estructurados Informática III - ISM -
Extraer subcadena Otras formas: >>> cadena[:] Hola, mundo. >>> cadena[0:len(cadena)] Hola, mundo. >>> cadena[6:] mundo. >>> cadena[6:len(cadena)] mundo. >>> cadena[:4] Hola, >>> cadena[0:4] Hola,
Secuencias de todo tipo de variables Valores entre corchetes [] y separados por coma. Ejemplos: >>> numeros = [1,2,3] >>> nombres = [ Mario, Jorge, María ] >>> expresiones = [1/6, 5+5, 1] >>> lista_vacia = [] Acceso: >>> numeros[0] 1 >>> nombres [-2] Jorge >>> expresiones [len(expresiones)-1] 1 >>> lista_vacia []
Operadores (muy similar a Cadenas) Concatenación (+) Repetición (*) Sublista ([i:j]) Concatenación Repetición Sublista
Operadores de comparación Igualdad (==) Desigualdad (!=)
Recorrer una lista Por elemento Por índice
Agregar elementos a listas >>> append(elemento) ventaja, es mejor que concatenar con (+ o +=)
Editar elementos de una lista Eliminar elemento de una lista
De Cadena a Lista función split De Lista a Cadena función join
Pertenencia de un elemento a una lista Se necesita buscar un elemento dentro de una lista, para ello se ingresa el mismo y se recorre la lista hasta encontrarlo por comparación: U6 Datos Estructurados Informática III - ISM -
Pertenencia de un elemento a una lista Por qué este código no funciona? U6 Datos Estructurados Informática III - ISM -
Listas como vectores matemáticos Si los elementos de una lista son números reales, podemos imitar el comportamiento y las operaciones de los vectores matemáticos en el espacio R N. Por ejemplo, para R 3: v = v x v y vz, para v x. v x y v x R v = [vx,vy,vz] U6 Datos Estructurados Informática III - ISM -
Listas como vectores matemáticos Suma de vectores. v + w = v x v y vz + w x w y w z = v x + w x v y + w y v z + w z v = [vx,vy,vz] w = [wx,wy,wz] suma = [vx+wx,vy+wy, vz+wz] U6 Datos Estructurados Informática III - ISM -
Listas como vectores matemáticos Suma de vectores en RN: v + w = v 1 v 2 v 3 + w 1 w 2 w 3 = v 1 + w 1 v 2 + w 2 v 3 + w 3 Necesitaremos usar bucles para completar y sumar los vectores: N = int(raw_input( Ingrese cantidad de componentes )) v = [] #vectores vacíos, se completan dentro del bucle w = [] for i in range(n): #Completo vector v: valor = float(raw_input( Ingrese %dº valor para vector v %i+1)) v.append(valor) for i in range(n): #Completo vector w: valor = float(raw_input( Ingrese %dº valor para vector w %i+1)) w.append(valor) for i in range(n): #sumo entre elementos correspondientes valor = v[i] + w[i] #o sea v[0]+w[0], v[1]+w[1],, v[n-1]+w[n-1] suma.append(valor) U6 Datos Estructurados Informática III - ISM -
Listas como vectores matemáticos + Producto interno: esta operación entre dos vectores genera un número escalar (R N R) v 1 w 1 v w = v 2 v 3 w 2 w 3 = v 1 w 1 + v 2 w 2 + + v n w n N = int(raw_input( Ingrese cantidad de componentes )) v = [] #vectores vacíos, se completan dentro del bucle w = [] for i in range(n): #Completo vector v: valor = float(raw_input( Ingrese %dº valor para vector v %i+1)) v.append(valor) for i in range(n): #Completo vector w: valor = float(raw_input( Ingrese %dº valor para vector w %i+1)) w.append(valor) suma = 0.0 #ya que es una sumatoria, necesitamos inicializar el acumulador for i in range(n): #sumo entre elementos correspondientes valor = v[i] * w[i] #o sea v[0]*w[0], v[1]*w[1],, v[n-1]*w[n-1] suma+=valor #agregamos el valor a la suma total U6 Datos Estructurados Informática III - ISM - print Producto interno de los vectores: %2.2f %suma
Disposición de valores en filas y columnas >>> M =[[1,2,3],[2,12,6],[1,0,-3],[0,-1,0]] >>> M[1] [2, 12, 6] #acceso a fila >>> M[1][0] 2 #acceso a elemento
Definición: Ejemplo: matríz de 2x2 con valores nulos >>> M=[[0,0],[0,0]] Cuando necesitamos mayor cantidad de valores: >>> M=[0]*3 [0,0,0] >>> M=[M]*3 [ [0,0,0], [0,0,0], [0,0,0] ] >>> M[0][0]=1 [[1,0,0],[1,0,0],[1,0,0] CUIDADO! Definición correcta: U6 Datos Estructurados Informática III - ISM -
Tamaño: Función: len() Cantidad de filas Cantidad de columnas
Suma (y resta) de matrices:
Producto de matrices: