Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porConsuelo Villalba Giménez Modificado hace 8 años
1
Curso de Python Clase 2 Dpto. Telemática CUJAE Curso 2003-2004
2
Objetivo : Dpto. Telemática CUJAE Curso 2003-2004 1.Introducirnos en los tipos de datos incorporados.
3
Tipos de Datos Dpto. Telemática CUJAE Curso 2003-2004 En Python existen aproximadamente dos docenas de tipos de datos, agrupados en categorías. En este curso veremos los tipos de datos más comunes según los vayamos necesitando. En la siguiente tabla se muestran los que estudiaremos en la clase de hoy.
4
Tipos de Datos Dpto. Telemática CUJAE Curso 2003-2004 CategoríaNombreDescripción NuméricosIntTypeEntero LongType Entero de cualquier tamaño. FloatType Número en punto flotante. ComplexType Número complejo
5
Tipos de Datos Dpto. Telemática CUJAE Curso 2003-2004 CategoríaNombreDescripción SecuéncialesListTypeLista StringType Número complejo TupleTypeTupla MapeadoDictTypeDiccionario
6
Tipos de Datos Dpto. Telemática CUJAE Curso 2003-2004 Sobre los tipos de datos numéricos ya hablamos en la clase 1. En la siguiente tabla se muestran algunos operadores que no se explicaron a profundidad en la actividad anterior.
7
Tipos de Datos Dpto. Telemática CUJAE Curso 2003-2004 Operador y ejemploDescripción x / yDivisión x % yMódulo (x mod y ) -x-xMenos unitario +x+xMás unitario
8
Tipos de Datos Dpto. Telemática CUJAE Curso 2003-2004 Para los enteros el operador de división (/) trunca el resultado a un entero y el operador módulo retorna el resto de la división. Para números en punto flotante y números complejos el operador módulo retorna también el módulo de la división de “x” entre “y” (x / y) el cual es “x – int(x/y)*y” y “x– int((x/y).real)*y” respectivamente. Notar que la función “int()” devuelve la parte entera del número que se le pasa como parámetro.
9
Tipos de Datos Dpto. Telemática CUJAE Curso 2003-2004 Programa ejemplo: 17 / 3 5 / 2 5 % 2.3 6 % (8-9j) 6 % (1-7j)
10
Tipos de Datos Dpto. Telemática CUJAE Curso 2003-2004 Los siguientes operadores son utilizados en operaciones con bits. Solo son aplicados a enteros y a enteros largos. En las operaciones de desplazamiento de bits, Python asume que los números enteros están representados en binario, en complemento a dos y que el bit del signo en los enteros largos esta infinitamente alejado hacia la izquierda.
11
Tipos de Datos Dpto. Telemática CUJAE Curso 2003-2004 Operador y ejemploDescripción x << y Desp. a la izquierda x >> y Desp. a la derecha x & y Bitwise and x | y Bitwise or ~x~x~x~x Bitwise de negación x ^ y Bitwise xor (or exclusivo)
12
Tipos de Datos Dpto. Telemática CUJAE Curso 2003-2004 Programa de ejemplo: a = 1; b = 1L; a | 3; a > 1 a << 31; a << 32; b << 32 ~a
13
Tipos de Datos Dpto. Telemática CUJAE Curso 2003-2004 Las siguientes funciones también pueden ser aplicadas a todos los datos numéricos. FunciónDescripción abs(x) Valor absoluto. divmod(x,y) Retorna (int(x / y ), x % y ) round(x,[n ]) Redondea al múltiplo más cercano de 10 -n (números con punto flotante solamente)
14
Tipos de Datos Dpto. Telemática CUJAE Curso 2003-2004 FunciónDescripción pow(x,y [,módulo ]) Retorna (x ** y ) x % módulo Esta última función da una alternativa al operador “**” que puede usarse en algoritmos de encriptación. Notar que la función “divmod” devuelve un par de valores a la vez. Esto lo hace utilizando un tipo de dato que estudiaremos más adelante llamado tupla.
15
Tipos de Datos Dpto. Telemática CUJAE Curso 2003-2004 Si a la función redondeo no se le pasa un valor, este se asume cero. El redondeo siempre se hace por exceso tomando el valor del módulo y manteniendo el mismo signo que el número original. Ejemplo: round(0.5) round(-0.5)
16
Tipos de Datos Dpto. Telemática CUJAE Curso 2003-2004 Los siguientes operadores tienen el significado matemático estándar. x yx == y x != yx >= yx <= y Estos retornan un valor entero: uno si la operación es verdadera y cero de lo contrario.
17
Tipos de Datos Dpto. Telemática CUJAE Curso 2003-2004 Las comparaciones pueden aparecer concatenadas como en: “w < x < y < z” que es equivalente a:”(w < x) and (x < y) and (y < z)”. Las comparaciones en las que intervengan números complejos solo son permitidos los operadores “==” y “!=”.
18
Tipos de Datos Dpto. Telemática CUJAE Curso 2003-2004 Operaciones en las cuales están presentes números solo son válidas si estos son del mismo tipo. Si los tipos difieren se trata de hacer una conversión de un tipo a otro siguiendo las siguientes reglas:
19
Tipos de Datos Dpto. Telemática CUJAE Curso 2003-2004 1.Si un operador es un número complejo, el otro operador es convertido a un número complejo. 2.Si un operador es un número de punto flotante, el otro operador es convertido a un número de punto flotante. 3.Si un operador es un entero largo, el otro operador es convertido a un entero largo. 4.De otra manera los números deben ser enteros y ninguna conversión se hace.
20
Tipos de Datos Dpto. Telemática CUJAE Curso 2003-2004 Los tipos de datos secuenciales son aquellos que agrupan un conjunto de valores indexados por un entero no negativo. Las cadenas de caracteres son secuencias de caracteres, mientras las listas y las tuplas son secuencias de objetos.
21
Tipos de Datos Dpto. Telemática CUJAE Curso 2003-2004 Las listas son creadas encerrando un grupo de valores separados por coma dentro de unos corchetes. Son indexadas comenzando por cero. a = 2 names = [ “Dave”, “Mark”, “Ann”, “Phil”, a ] c = ‘‘‘Cadena’’’ b = [names, 2004, c] print names
22
Tipos de Datos Dpto. Telemática CUJAE Curso 2003-2004 Muy parecido a las listas son las tuplas, las cuales pueden ser formadas por un conjunto de valores separados por coma y encerrados entre paréntesis. a = (1,4,5,-9,10); b = [1, ‘Cadena’, a] tuple = (a, b, ‘Cadena’, c)
23
Tipos de Datos Dpto. Telemática CUJAE Curso 2003-2004 En ocasiones Python reconoce que se quiere expresar una tupla aunque los paréntesis no estén presentes. La única diferencia entre las tuplas y las listas es que a las primeras no se les puede cambiar el valor después que se crean. a = 1,4,5,-9,10, a
24
Tipos de Datos Dpto. Telemática CUJAE Curso 2003-2004 Los siguientes operadores pueden ser aplicados a los tipos de datos secuenciales. OperaciónDescripción s + r Concatenación s * n, n * s Hace n copias de s. (n entero). s [i] Indexado s % d Formateo de cadena (solo para cadenas de caracteres).
25
Tipos de Datos Dpto. Telemática CUJAE Curso 2003-2004 OperaciónDescripción s [i:j] Slicing x in s, x not in s Comprobación de pertenencia. for x in s : Iteración len(s ) Longitud min(s ) Menor elemento. max(s) Mayor elemento.
26
Tipos de Datos Dpto. Telemática CUJAE Curso 2003-2004 El operador de indexación se puede usar con valores negativos los cuales comienzan a partir del último valor de la secuencia. Por otra parte, si se trata de acceder a un elemento que está fuera de rango resulta un error. a = ‘Cadena’ b = (‘Uno’, 2, ‘Tres’, ‘IV’) [-1]; [-2] a[-1]; a[-2] b[-1]; [-2] b[-1]; a[-2]
27
Tipos de Datos Dpto. Telemática CUJAE Curso 2003-2004 Slicing El operador “Slicing” extrae una parte de los elementos de una secuencia. Se puede omitir la parte inicial o final, entonces son tomadas como el inicio y el fin de la secuencia respectivamente. Pueden usarse valores negativos. +---+---+---+---+---+ | H | E | L | P | A | +---+---+---+---+---+ 0 1 2 3 4 5 -5 -4 -3 -2 -1
28
Tipos de Datos Dpto. Telemática CUJAE Curso 2003-2004 Slicing Los valores negativos que estén fuera de rango y se usen con el operador “Slicing” son truncados, esto no pasa con el operador de indexación, lo cual produce un error(ver segunda expresion). a[-0] a[-100] a[-100:] a[-2:1]
29
Tipos de Datos Dpto. Telemática CUJAE Curso 2003-2004 Las listas se pueden modificar de la siguiente manera: a = [1,2,3,4,5] a[1] = 6 a[2:4] = [10,11] a[3:4] = [-1,-2,-3] a[2:] = [0]
30
Tipos de Datos Dpto. Telemática CUJAE Curso 2003-2004 Las secuencias son comparadas usando los operadores, =, ==, y !=. Cuando se comparan dos secuencias, el primer elemento de cada secuencia es comparado, si no son iguales, determina el resultado de la comparación. En caso que sean iguales se continua con el otro elemento y así sucesivamente.
31
Tipos de Datos Dpto. Telemática CUJAE Curso 2003-2004 Los tipos de datos que pertenecen a la categoría “Mapeados” representan una colección arbitraria de objetos que son indexados por otra colección casi arbitraria de valores llaves. A diferencia de las secuencias estos tipos de datos contienen objetos que no están ordenados y pueden ser indexados por enteros, cadenas y otros objetos.
32
Tipos de Datos Dpto. Telemática CUJAE Curso 2003-2004 El diccionario es el único tipo de dato incorporado por Python que pertenece a la categoría anterior. Como llave de un diccionario se puede utilizar cualquier objeto que sea inmutable (este concepto lo estudiaremos más adelante), por ahora tomemos como inmutables los siguientes tipos de datos: Cadenas, números y tuplas.
33
Tipos de Datos Dpto. Telemática CUJAE Curso 2003-2004 Para crear un diccionario se debe encerrar la pareja de valores (llave-valor asociado) entre llaves separados por el carácter “:” como se muestra a continuación. a = { “username” : “beazley”, “home” : “/home/beazley”, “uid” : 500 }
34
Tipos de Datos Dpto. Telemática CUJAE Curso 2003-2004 Para seleccionar un elemento de un diccionario se debe usar el operador de indexación de llaves “[K]”, donde “K” es el valor de la llave. La función “len()” retorna el número de elementos que tiene un diccionario. a[“username”] = “pxl” a[“home”] = “/home/pxl” a[(‘shell’, ‘camino’)] = “/usr/bin/tcs” a[1] = ‘objeto cadena’ del a[‘home’]
35
Tipos de Datos Dpto. Telemática CUJAE Curso 2003-2004 El operador módulo ( s % d ) produce una cadena de caracteres formateada dado un formato (s) y una colección (d) de objetos en una tupla o un diccionario. La cadena que contiene el formato tiene dos tipos de objetos: caracteres ordinarios, los cuales no son modificados, y especificadores de conversión, cada uno de los cuales son remplazados por una cadena de caracteres formateada asociada a un elemento de la tupla o diccionario.
36
Tipos de Datos Dpto. Telemática CUJAE Curso 2003-2004 Si en “s % d”, ”d” es una tupla, el número de especificadores de conversión debe coincidir exactamente con el número de objetos en la tupla. En caso de que “d” sea un diccionario, cada especificador de conversión debe estar asociado con una llave válida en el diccionario. Cada especificador de conversión comienza con un “%” y termina con caracteres de conversión. Ejemplos de estos son los que aparecen en la siguiente tabla.
37
Tipos de Datos Dpto. Telemática CUJAE Curso 2003-2004 Caracter Formato de salida d,i Entero o entero largo decimal. x Entero o entero largo hexadecimal. f Punto flotante. [-]m.dddddd e Punto flotante. [-]m.dddddde ±xx s Una cadena de caracteres. cCaracter % Literal %
38
Tipos de Datos Dpto. Telemática CUJAE Curso 2003-2004 Entre el caracter % y el caracter de conversión los siguientes modificadores pueden aparecer. 1. Cualquier nombre de una llave de un diccionario entre paréntesis. 2. El signo ”+” indicando que el signo de un número a imprimir debe incluirse aunque sea “+”. 3. Signo “-” indicando alineación a la izquierda.
39
Tipos de Datos Dpto. Telemática CUJAE Curso 2003-2004 4. El caracter “0” indica que se rellene con ceros. 5. Un número que especifica el ancho mínimo de la cadena que se imprimirá. 6. Un caracter (.) que separa el número anterior del número que sigue. 7. Un número que especifica la cantidad máxima de caracteres a imprimir en una cadena, el número de dígitos después de la coma en un número en punto flotante y la cantidad mínima de dígitos para un entero.
40
Tipos de Datos Dpto. Telemática CUJAE Curso 2003-2004 Un caracter “*” puede sustituir cualquiera de los números referidos en los puntos 5 y 7 en la diapositiva anterior. Esto provocaría que dichos números sean leídos de los elementos que siguen en la tupla. Ejemplo: a = 42; b = 13.142783 c = “hello” d = {‘x’:13, ‘y’:1.54321, ‘z’:‘world’} e = 5628398123741234L
41
Tipos de Datos Dpto. Telemática CUJAE Curso 2003-2004 print ‘a is %d’ % a print ‘%10d %f’ % (a,b) print ‘%+010d %E’ % (a,b) print ‘%(x)-10d %(y)0.3g’ % d print ‘%0.4s %s’ % (c, d[‘z’]) print ‘%*.*f’ % (5,3,b) print ‘e = %d’ % e
42
FIN Dpto. Telemática CUJAE Curso 2003-2004 Por favor, nos sería muy útil que cualquier sugerencia o error que encontrase en el presente documento nos lo hicieran llegar a: frankabel@tesla.cujae.edu.cu
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.