Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porEduardo Redondo Piñeiro Modificado hace 8 años
1
U2 Tipos de datos, referenciación y errores 1
2
Datos problema simple enteroreal carácter booleano Ingeniero = Oreja+catalejo modelo ordenador solución Subprogramación procedimiento asignación/ referencia barajar complejidad Llamada procedimiento Proceso while for Do while hacer if c: bloque1 [ else: bloque2] n bucles 0 o 1 alternativas 1 o n 0 o n iterativo 1 n conocido recursivo n desconocido case gestión excepciones función 2 Disponible en todos los lenguajes Frecuente en otros lenguajes y no disponible en Python Disponible en Python, no frecuente en otros lenguajes compuesto arreglo Lista/tupla Estructura tuplaNombre /record/clase fichero cadena
3
Datos problema compuesto arreglo Lista/tupla Estructura tuplaNombre /record/clase fichero cadena Ingeniero = Oreja+catalejo modelo ordenador solución Subprogramación procedimiento asignación/ referencia barajar complejidad Llamada procedimiento Proceso while for Do while hacer if c: bloque1 [ else: bloque2] n bucles 0 o 1 alternativas 1 o n 0 o n iterativo 1 n conocido recursivo n desconocido case gestión excepciones función 3 simple enteroreal carácter booleano
4
¿Cómo almacena la información el ordenador? CU ALU RAM PI PA bit Se almacena en: Secuencia de bits De tamaño concreto CODIGO Dominio NO INFINITO Enteros: complementario a 2 Reales: IEEE 754 Char en Python UTF8=16 bits 0 0 0 0 0 0 1 1 1 1 0 6 1 1 1 7 1 0 1 5 1 0 0 4 0 1 0 2 0 1 1 3 Naturales 4
5
Tipo de datos simple {dominio} Objeto dato definido sobre un dominio, y sus operaciones tipoobjetodominiooperaciones mes7={1,2,3,4….12}siguiente, anterior, número_días diaSemanamartes{lunes,…domingo}siguiente, anterior, ¿laborable? sueldo1275,43salarioMinimo<=s<=80.000+,-,*,%....¿cobrado?... ComponenteColor1450<=componenteColor<=255+,-,maximizar, anular… {dominio} Tipo de datos compuesto Conjunto de objetos dato, potencialmente de distinto tipo con sus operaciones Ej: fecha, aula, color(RGB) Cada elemento conserva sus operaciones 5
6
Tipos básicos en el ordenador 6 Datos compuestosimple enteroreal carácter booleano Función type Operaciones Promoción implicita Cambio explícito de tipo int, float, string Dominio: 100/3.0; 1.e+16+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1 Operadores de comparación Concatenación de operaciones 2+3+4 ; 2<3<5 cadena
7
7 Tipos básicos: Precedencia numéricos PrecedenciaOperaciónResultado 1 -xCambio de signo 1 +xOperador identidad (no hace nada) 2 x + ySuma x e y 2 x - yResta de x y 3 x * yMultiplica x por y 3 x / yDivisión real 3 x // yDivisión entera 3 x % yResto de la división entera de x/y 4 x ** yx elevado a y3*2**3+4=28 5 (Expresión)Paréntesis: fuerza el orden ejecución(2+3)*5=25 2+3+5=10 ; 2+3*5= ? OJO! 6/2*3 != 6/2/3
8
8 Tipos básicos: Precedencia booleanos PrecedenciaOperaciónNombreResultado 1x or yDisyunciónTrue solo si alguno de los operandos es True 2x and yConjunciónTrue solo si ambos operandos son true 3not xNegaciónTrue si x era False y viceversa Evaluación perezosa: V or cualquierCosa /F and cualquierCosa
9
Acercamiento al humano: 9 Hardware Lenguaje Máquina Lenguaje Ensamblador Lenguajes procedimentales C, Fortran, COBOL Lenguajes Orientados a objetos Java,C++,Python Lenguajes declarativos Haskell, ML, Prolog Razonamiento humano ??? Ya desde ensamblador: a) nombre simbólico a las posiciones de memoria variable+constante literal b) Nombre simbólico s las macros (secuencia de instrucciones) subprogramación identificadores
10
Asignación versus Referenciación otros lenguajes Python 10 2 1 2 1 a b a =b 2 1 a a =2 b=1 a =2 b=1 a =b +1 2 1 2 1 a =b 1 Se ha perdido a =b +1 2 1 a b b Asignación produce una copia son posiciones independientes Referenciación es un pseudónimo son la misma posición Pero… parece que llegamos a lo mismo.
11
Implicaciones: a)Piensa en un “dato compuesto”, por ejemplo, y que se pueda modificar uno de sus componentes sin re- asignar/re-referenciar el “dato compuesto” b b = [1,2,3,4] 1234 b a =b a 1234 a [1]=8 b a 1834 b = [1,2,3,4] 12341234 12341234 a =b 12341234 12341234 18341834 a [1]=8 Asignación : son posiciones independientes no afecta a b Referenciación: son 2 nombres para la misma posición b[1]=8 efecto lateral 11 Los tipos de datos compuestos, para los que Python da servicio de modificar elementos individuales, sin re-referenciar el dato completo, les llama mutables. Los tipos que sólo pueden cambiar su valor con referenciación los llama inmutables Asignación versus Referenciación otros lenguajes Python
12
12 Implicaciones: b) intercambiar los valores de las variables 2 1 a b 2 1 b a a,b=b,a ¿algoritmo? Referenciación: muy fácil Asignación: Escribe el algoritmo, piénsalo con vasos Asignación versus Referenciación otros lenguajes Python
13
Expresión Definiciones por intensión/extensión 13
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.