Python

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 49

Python

Introduccion al lenguaje de la mano de Bob Esponja

Luis Tomas Wayar


UNJU

26 de junio de 2011

Luis Tomas Wayar (UNJU)

Python

26 de junio de 2011

1 / 49

Bob Esponja programa en python

Luis Tomas Wayar (UNJU)

Python

26 de junio de 2011

2 / 49

Contenidos
1

Luis Tomas Wayar (UNJU)

Presentacion Introduccin o Elementos del entorno El Lenguaje Gu de Estilo del Cdigo Python a o Variables, tipos y operadores Funciones Los nmeros u Secuencias Diccionarios Estructuras de control Programacin funcional o Programacin Orientada a Objetos o Archivos Miscelneas a Librer as Herramientas
Python

26 de junio de 2011

3 / 49

Presentacion

Introduccin o

Audiencia

Programadores con algo de experiencia en lenguajes como:


C#, Java, Perl, PHP

Programadores sin ninguna experiencia, pero con ganas de aprender Usuarios de plataformas:
Windows Unix MaC Os X

Luis Tomas Wayar (UNJU)

Python

26 de junio de 2011

4 / 49

Presentacion

Introduccin o

Que es python?
Python es un lenguaje de programacin fcil de aprender y potente. Con estructuras de datos de o a alto nivel y una solucin de programacin orientada a objetos simple pero ecaz. La elegante o o sintaxis de Python, su gestin de tipos dinmica y su naturaleza interpretada hacen de l el o a e lenguaje ideal para guiones (scripts) y desarrollo rpido de aplicaciones, es interpretado e a interactivo. Python combina un remarcable poder con una sintaxis muy clara, y es extensible en C o C++. Python es portable, corre en muchas variantes de Unix, en Mac, y en PCs bajo MS-DOS, Windows y OS/2. Y porsupuesto es Software Libre

Es interpretado Es interactivo Es fcil de aprender a Es fcil de leer a Es fcil de mantener a Es altamente portable Es extensible Es apto para consola y gui Soporta POO, PE y PF Tiene abundante documentacin o
Luis Tomas Wayar (UNJU) Python 26 de junio de 2011 5 / 49

Presentacion

Introduccin o

Zen de Python I
Hermoso es mejor que feo. Expl cito es mejor que impl cito. Simple es mejor que complejo. Complejo es mejor que complicado. Plano es mejor que anidado. Disperso es mejor que denso. La legibilidad cuenta. Los casos especiales no son sucientemente especiales como para romper las reglas. Aunque lo pragmtico gana a la pureza. a Los errores nunca deber dejarse pasar silenciosamente. an A menos que se silencien expl citamente.
Luis Tomas Wayar (UNJU) Python 26 de junio de 2011 6 / 49

Presentacion

Introduccin o

Zen de Python II
Cuando te enfrentes a la ambigedad, rechaza la tentacin de u o adivinar. Deber haber una manera obvia de hacerlo. a Aunque puede que no sea obvia a primera vista a menos que seas holands. e Ahora es mejor que nunca. Aunque muchas veces nunca es mejor que ahora mismo. Si la implementacin es dif de explicar, es una mala idea. o cil Si la implementacin es sencilla de explicar, puede que sea una buena o idea. Los espacios de nombres son una gran idea tengamos ms de esas! a

Luis Tomas Wayar (UNJU)

Python

26 de junio de 2011

7 / 49

Presentacion

Introduccin o

Plataformas
Unix (Solaris, Linux, FreeBSD, AIX, HP/UX, SunOS, IRIX etc.) Win 9x/XP/Vista/7 Macintosh (PPC, 68K) Mac OS X DOS (multiple versions) PalmOS Nokia mobile phones Acorn/RISC OS BeOS Amiga VMS/OpenVMS QNX VxWorks Psion Maquinas virtuales .NET y Java
Luis Tomas Wayar (UNJU) Python 26 de junio de 2011 8 / 49

Presentacion

Elementos del entorno

El interprete interactivo
12:20:53 godel: > python Python 2.6.4 (r264:75706, Mar 16 2010, 15:32:37) [GCC 4.3.4] on linux2 Type help , copyright , credits or license for more information. >>> El interprete interactivo:
Se trata de un interprete de lineas python Se invoca directamente llamando a python Presenta un prompt donde se pueden ingresar:
Sentencias, Declaraciones, Asignaciones, etc.

La respuesta es inmediata Es muy util para pruebas y prototipado simple


Luis Tomas Wayar (UNJU) Python 26 de junio de 2011 9 / 49

Presentacion

Elementos del entorno

Un programa Python
Los programas se escriben en archivos de texto claro La primera linea del archivo invoca al comando env para buscar el interprete de python Se ejecuta:
directamente invocndolo si tiene permisos de ejecucin a o llamando al interprete y pasndole el archivo del programa como a parmetro a

Ubicacin del interprete: o


Unix: /usr/bin/python Windows: C:\Python26\python.exe

#! / u s r / b i n / e n v p y t h o n nombre = r a w i n p u t ( C u a l e s t u nombre : ) p r i n t H o l a , nombre

Luis Tomas Wayar (UNJU)

Python

26 de junio de 2011

10 / 49

Presentacion

Elementos del entorno

El editor IDLE

Es un editor m nimo con:


Coloreado de sintaxis, Interprete interactivo Editor de cdigo o Entorno de depuracin o Auto indentacion Entorno de ejecucin o
Luis Tomas Wayar (UNJU) Python 26 de junio de 2011 11 / 49

El Lenguaje

Gu de Estilo del Cdigo Python a o

Epacios en blanco
4 espacios por cada nivel de indentacin. o Evita los caracteres de tabulacin. o Nunca mezcles caracteres de tabulacin y espacios. o Una l nea en blanco entre funciones. Dos l neas en blanco entre clases. Aade un espacio despus de las comas , en diccionarios, listas, n e tuplas, y listas de parmetros, y despus de los dos puntos en los a e : diccionarios, pero no antes. Pon espacios alrededor de las asignaciones y las comparaciones (excepto en las listas de parmetros). a No coloques espacios justo despus de abrir un parntesis o antes de e e cerrar un parntesis o justo antes de una lista de parmetros. e a No dejes espacios al inicio o nal de las cadenas de documentacin. o
Luis Tomas Wayar (UNJU) Python 26 de junio de 2011 12 / 49

El Lenguaje

Gu de Estilo del Cdigo Python a o

Nombres

minusculas con guiones para funciones, mtodos, atributos e minusculas con guiones o TODO MAYUSCULAS para las constantes PalabrasEnMayusculas para las clases Atributos: interfaz, interno, privado

Luis Tomas Wayar (UNJU)

Python

26 de junio de 2011

13 / 49

El Lenguaje

Variables, tipos y operadores

Caracteristicas
Python fue diseado para ser le con facilidad. n do Se utilizan palabras en ingls donde otros lenguajes usan s e mbolos Se delimitan los bloques por indentacion, es obligatoria Los comentarios se inician con el s mbolo # hasta el nal de la l nea Se dividen la lineas con \ Las cadenas se encierran entre o los prrafos con a Se pueden agregar funciones, clases, etc. importando mdulos o Python tiene una gran biblioteca estndar a Es sensible a maysculas y minsculas u u Puede ser enriquecidos desde mdulos en otros lenguajes o En Python, todo es un objeto (incluso las clases) Paradigmas: Orientacin a Objetos, Procedural, Funcional o
Luis Tomas Wayar (UNJU) Python 26 de junio de 2011 14 / 49

El Lenguaje

Variables, tipos y operadores

Tipos de datos
Tipo str unicode list tuple set frozenset dict int long oat bool Clase
Cadena Cadena Secuencia Secuencia Conjunto Conjunto Mapeo Entero Entero Decimal Booleano

Notas
Inmutable Eliminado en version 3.0 Mutable, eterogenea Inmutable, eterogenea Mutables, sin orden ni duplicados Inmutable, sin orden ni duplicados Grupo de pares clave:valor Precisin ja, convertido en long en caso de overow. o Presicion arbitraria Representado en coma otante de doble precisin o Valor booleano verdadero o falso

Ejemplo
Hola Mundo uHola Mundo [4, 3.14,Hola Mundo] (4, 3.14,Hola Mundo) set([4.0, Hola, True]) frozenset([4.0, Hola, True]) {clave1: 1.0, clave2: False} 42 42L 3.1415927 True, False

Mutable: su contenido puede cambiarse en tiempo de ejecucin. o Inmutable: su contenido no puede cambiarse en tiempo de ejecucin. o
Luis Tomas Wayar (UNJU) Python 26 de junio de 2011 15 / 49

El Lenguaje

Variables, tipos y operadores

Variables
Las variables se denen de forma dinmica a El signo igual (=) se usa para asignar valores a las variables Las variables pueden tener nombres de longitud arbitraria. Pueden estar formados por letras y nmeros, deben comenzar con una u letra. Aunque es aceptable usar maysculas, por convencin no lo hacemos. u o El guin bajo ( ) tambin es legal y se utiliza para separar palabras o e No pueden contener caracteres especiales por ejemplo $ o % No puede usar palabras reservadas del lenguajes, por ejemplo print, raw input nombre = Juan Perez sueldo basico = 1000 clave1 = password pi = 3.14
Luis Tomas Wayar (UNJU) Python 26 de junio de 2011 16 / 49

El Lenguaje

Variables, tipos y operadores

Operadores
Python tiene operadores de Aritmticos, Binarios, de Comparacin, de e o Asignacin, Lgicos, de Pertenencias y de Identidad o o Matematicos
Operador + * / % ** // Descripcin o Operador Suma & Resta | Multiplicacin o Divisin o Modulo o resto de divisin o << Potencia >> Divisin entera o Desplazamiento a la derecha Desplazamiento a la izquierda Operador de complemento Operador lgico XOR o Operador lgico OR o Operador lgico AND o Descripcin o

Binarios

Luis Tomas Wayar (UNJU)

Python

26 de junio de 2011

17 / 49

El Lenguaje

Variables, tipos y operadores

Mas operadores

Comparacion
Operador == != <> > < >= <= Descripcin o

Asignacion
Operador = Descripcin o Asignacin o Suma y asignacin o Resta y asignacin o Producto y asignacin o Resta y asignacin o Modulo y asignacin o Potencia y asignacin o Divisin entera y asignacin o o

Igualdad += Desigualdad -= Desigualdad *= Mayor /= Menor %= Mayor o igual **= Menor o igual //=

Luis Tomas Wayar (UNJU)

Python

26 de junio de 2011

18 / 49

El Lenguaje

Variables, tipos y operadores

Y mas operadores aun...


Logicos
Operador and or not Descripcin o ** Y lgico o +O lgico o * / % // Negacin lgica o o +Pertenencia in not in pertenece no pertenece >> << & | <= < > >= <> == != Identidad = %= /= //= -= += |= &= >>= <<= *= **= is is not es no es is is not in not in Precedencia Operador

Luis Tomas Wayar (UNJU)

Python

26 de junio de 2011

19 / 49

El Lenguaje

Variables, tipos y operadores

Manejo de excepciones
Excepciones Es un evento que se produce en tiempo de ejecucin de un programa que o interrumpe el normal ujo de las sentencias del mismo. try: en este bloque se incluyen las instrucciones a probar except: en caso de producirse una excepcin se ejecuta este bloque o else: si no hay excepcin se ejecuta este bloque o la clausula except pude contener el mensaje de excepcin o pueden manejarse mltiples excepciones u
try : f h = open ( a r c h i v o . t x t , w ) f h . w r i t e ( E s c r i b o a l g o en a r c h i v o ) except IOError : p r i n t E r r o r : E r r o r de e n t r a d a / s a l i d a else : p r i n t No hay p r o b l e m a s fh . c l o s e ()

Luis Tomas Wayar (UNJU)

Python

26 de junio de 2011

20 / 49

El Lenguaje

Variables, tipos y operadores

Los mdulos o
Modulo Es un archivo conteniendo cdigo python que dene clases, funciones, o variables, cdigo ejecutable. Permite la organizacin y hace mas fcil o o a organizar y leer cdigo o modulo.py
def s a l u d a r ( saludo ) : print saludo nombre = Fondo de B i k i n i

impmodulo.py
i m p o r t modulo modulo . s a l u d a r ( h o l a ) p r i n t modulo . nombre

Luis Tomas Wayar (UNJU)

Python

26 de junio de 2011

21 / 49

El Lenguaje

Funciones

Funciones
d e f s a l u d o ( nombre , a l t u r a , s a l u d o = H ol a ) : f r a s e = s a l u d o + + nombre + t u p e s o i d e a l e s p e s o = ( a l t u r a 1 5 0 ) 0 . 7 5 + 50 return f r a s e , peso nombre = r a w i n p u t ( Como t e l l a m a s : ) a l t u r a = i n p u t ( A l t u r a en cm . : ) f r a s e , p e s o = s a l u d o ( nombre , a l t u r a ) p r i n t f r a s e , peso

Usamos def para denir una funcin o Usamos el s mbolo : para iniciar el bloque La indentacion demarca el mbito de la funcin a o Pueden recibir mltiples parmetros entre parntesis u a e Parmetros mutables se comportan como paso por referencia a Parmetros inmutables se comportan como paso por valor a Los parmetros pueden ser inicializados a Devuelve un solo valor con return, pero puede ser una secuencia
Luis Tomas Wayar (UNJU) Python 26 de junio de 2011 22 / 49

El Lenguaje

Los nmeros u

Los Nmeros u
Python soporta 4 tipos bsicos de nmeros a u
int: enteros con signo long: enteros con signo sin limites se suceden con una l o L oat: reales de punto otante (notacin cient o ca) complejos: nmeros complejos u

int 10 100 -786 080 -0490 -0x260 0x69

long 51924361L -0x19323L 0122L 0xDEFABCECBDAECBFBAEl 535633629843L -052318172735L -4721885298529L


Python

oat 0.0 15.20 -21.9 32.3+e18 -90. -32.54e100 70.2-E12

complex 3.14j 45.j 9.322e-36j .876j -.6545+0J 3e+26J 4.53e-7j


26 de junio de 2011 23 / 49

Luis Tomas Wayar (UNJU)

El Lenguaje

Secuencias

Secuencias
str, unicode, list, tuple, buer, xrange

Las secuencias son las estructuras de datos bsicas de python a Cada elemento de una secuencia es identicado por un ndice
Operacin o x in s x not in s s+t s * n, n * s s[i] s[i:j] s[i:j:k] len(s) min(s) max(s) Resultado Devuelve True si x esta en s, sino esta devuelve False Devuelve False si x no esta en s, sino devuelve True concatena s + t obteniendo una nueva secuencia Crea una nueva secuencias con n copias concatenadas de s, siendo un entero Devuelve el elemento de ndice i de la secuencia Devuelve los elementos desde ndice i hasta el ndice j Devuelve los elementos desde ndice i hasta ndice j con salto k Devuelve la cantidad de elementos de s Devuelvo el menor elemento de s Devuelve el mayor elemento de s

Luis Tomas Wayar (UNJU)

Python

26 de junio de 2011

24 / 49

El Lenguaje

Secuencias

Cadenas de texto I
Se denen encerrando el valor entre comillas simples o dobles En python no existe el tipo char, es una cadena de largo 1 Son inmutables, pero se pueden modicar redeniendolas Se pueden incluir secuencias de escape no imprimibles Se pueden usar operadores con las cadenas Las cadenas unicode se preceden con u (eliminado en version 3000) Las comilla triples (simples o dobles ) se usan para cadenas multilinea Se pueden denir literales precedindolas con la letra rcadena e
c a d e n a 1 = h o l a mundo cadena2 = python r u l e z cadena2 = cadena2 [ : 7 ] + e s t a p u l e n t a p r i n t cadena2 p r i n t ( cadena1 [ 5 : ] + ) 3 p r i n t y i n cadena2

Luis Tomas Wayar (UNJU)

Python

26 de junio de 2011

25 / 49

El Lenguaje

Secuencias

Cadenas de texto II
Formateo de cadenas

% es el operador para el formateo de cadenas S mbolo %c %s %i %d %u %o %x %X %e %E %f Conversin o carcter a string v str() a entero con signo decimal con signo decimal y entero sin signo entero octal entero hexadecimal (minsculas) u entero hexadecimal (maysculas) u notacin exponencial (e minscula) o u notacin exponencial (E mayscula) o u real de punto otante
Python 26 de junio de 2011 26 / 49

Luis Tomas Wayar (UNJU)

El Lenguaje

Secuencias

Las listas
Se denen entre corchetes con valores separados por comas Pueden contener elementos de diferentes tipos Cada elemento se identica con un ndice Pueden crearse matrices
lista homogenea = [1 , 2 , 3 , 4 , 5 , 6 , 7 , 8] l i s t a h e t e r o g e n e a = [1 , 3 ,14 , hola ] p r i n t C a n t i d a d de e l e m e n t o s = , l e n ( l i s t a h o m o g e n e a ) p r i n t Concatenado = , l i s t a h o m o g e n e a + l i s t a h e t e r o g e n e a p r i n t P r o d u c t o de l i s t a = , l i s t a h e t e r o g e n e a 2 p r i n t L i s t a de l i s t a s = , [ l i s t a h o m o g e n e a , l i s t a h e t e r o g e n e a ] p r i n t E l e m e n t o 1 de l i s t a h o m o g e n e a = , l i s t a h o m o g e n e a [ 1 ] p r i n t E l e m e n t o s d e s d e 2 h a s t a 6 de l i s t a h o m o g e n e a = , l i s t a h o m o g e n e a [ 2 : 6 ] p r i n t E l e m e n t o s d e s d e 0 h a s t a 8 de l i s t a h o m o g e n e a con s a l t o 2 = , l i s t a h o m o g e n e a [0:9:2] p r i n t P e r t e n e n c i a de e l e m e n t o en l i s t a = , 4 i n l i s t a h o m o g e n e a p r i n t No P e r t e n e n c i a de e l e m e n t o en l i s t a = , 9 not i n l i s t a h o m o g e n e a lista homogenea [3] = 0 p r i n t E l e m e n t o de l i s t a m o d i f i c a d o = , l i s t a h o m o g e n e a l i s t a h o m o g e n e a . append ( 9 ) p r i n t Elemento agregado a l a l i s t a = , l i s t a h o m o g e n e a del lista homogenea [ 3 ] p r i n t B o r r a r e l e l m e n t o 3 de l a l i s t a = , l i s t a h o m o g e n e a l i s t a h o m o g e n e a . remove ( 9 ) p r i n t B o r r a r Elemento por v a l o r = , l i s t a h o m o g e n e a Luis Tomas Wayar (UNJU) Python 26 de junio de 2011 27 / 49

El Lenguaje

Secuencias

Las tuplas
Secuencia inmutable de objetos python Se denen entre parntesis (no obligatorios) con valores separados por e comas Comparte casi todas las propiedades con las listas (-mutabilidad) Ahorran memoria con respecto a las listas Pueden crearse matrices
t u p l a 1 = (1 , 2 , 3 , 4 , 5) tupla2 = a , b , c , d , e print print print print print print tupla1 + tupla2 len ( tupla1 ) 4 in tupla1 d in tupla1 c in tupla2 3 in tupla2

Luis Tomas Wayar (UNJU)

Python

26 de junio de 2011

28 / 49

El Lenguaje

Diccionarios

Los diccionarios
Se denen encerrando entre llaves {} pares clave:valor separados por comas Son arrays asociativos o tablas hash Las claves deben ser unicas, no as los valores Los valores no tienen restricciones especiales Las claves deben:
Solo un valor por clave Las claves son inmutables

Se accede al valor usando la clave


d i c c i o n a r i o 1 = { nombre : S h e l d o n , a p e l l i d o : Cooper , p r o f e s i o n : F i s i c o T e o r i c o } print diccionario1 [ profesion ] d i c c i o n a r i o 1 [ p r o f e s i o n ] = F i s i c o Cuantico print diccionario1 [ profesion ]

Luis Tomas Wayar (UNJU)

Python

26 de junio de 2011

29 / 49

El Lenguaje

Estructuras de control

If ... elif ... else


IF Contiene una expresin lgica y se toma una desicion basado en la o o evaluacin de la expresin. Se puede combinar con elif para varias o o evaluaciones y con else para la excepcin. o Ejemplo
v a r = 100 i f var < 200: p r i n t Menor que i f v a r == 1 5 0 : p r i n t I g u a l e l i f v a r == 1 0 0 : p r i n t I g u a l e l i f v a r == 5 0 : p r i n t I g u a l e l i f var < 50: p r i n t Menor else : p r i n t No s e

200 a 150 a 100 a 50 que 50 cumple n i n g u n a

Luis Tomas Wayar (UNJU)

Python

26 de junio de 2011

30 / 49

El Lenguaje

Estructuras de control

Bucle While

WHILE Es un bloque de cdigo que se repite mientras se evalu como cierta una o e expresin, cuando la expresin se evala como falsa el bucle termina y se o o u pasa el control a la siguiente sentencia. Ejemplo
contador = 0 w h i l e ( contador < 9) : p r i n t Contador = , contador contador = contador + 1 p r i n t F u e r a d e l b u c l e !

Luis Tomas Wayar (UNJU)

Python

26 de junio de 2011

31 / 49

El Lenguaje

Estructuras de control

Bucle For
FOR El un bloque de cdigo que se repite mientras una expresin se evalu o o e como verdadera, tiene la habilidad de iterar sobre los tem de una secuencia. Ejemplo
p e r s o n a j e s = [ bob , p a t r i c i o , c a l a m a r d o , don c a n g r e j o , a r e n i t a , p l a n c t o n ] for personaje in personajes : p r i n t Amigo de Bob E s p o n j a : + p e r s o n a j e fo r m u l t i p l i c a n d o in range (0 ,10) : p r i n t Tabla d e l , m u l t i p l i c a n d o fo r m u l t i p l i c a d o r in range (1 ,11) : print str ( multiplicando ) + + str ( multiplicador ) + = + str ( multiplicando multiplicador ) f o r num i n r a n g e ( 1 0 , 2 0 ) : f o r i i n r a n g e ( 2 , num ) : i f num % == 0 : i j=num/ i p r i n t % i g u a l % % % ( num , i , j ) d d d break else : p r i n t num , e s p r i m o Luis Tomas Wayar (UNJU) Python

26 de junio de 2011

32 / 49

El Lenguaje

Programacin funcional o

Funciones de orden superior


El concepto de funciones de orden superior se reere al uso de funciones como si de un valor cualquiera se tratara, posibilitando el pasar funciones como parmetros de otras funciones o devolver funciones como valor de a retorno. Ejemplo
def s a l u d a r ( lang ) : def s a l u d a r e s () : p r i n t H ol a def s a l u d a r e n () : p r i n t Hi def s a l u d a r f r () : p r i n t S a l u t l a n g f u n c = { e s : s a l u d a r e s , en : s a l u d a r e n , f r : return lang func [ lang ] f = s a l u d a r ( e s ) f () s a l u d a r ( e s ) ( )

saludar fr}

Luis Tomas Wayar (UNJU)

Python

26 de junio de 2011

33 / 49

El Lenguaje

Programacin funcional o

Iteraciones de orden superior I


map La funcin map aplica una funcin a cada elemento de una secuencia y o o devuelve una lista con el resultado de aplicar la funcin a cada elemento.Si o se pasan como parmetros n secuencias, la funcin tendr que aceptar n a o a argumentos. Si alguna de las secuencias es ms pequea que las dems, el a n a valor que le llega a la funcin para posiciones mayores que el tamao de o n dicha secuencia ser None. a Ejemplo
def cuadrado ( n ) : r e t u r n n 2 numeros = [ 1 , 2 , 3 ] c u a d r a d o s = map ( c u a d r a d o , numeros ) p r i n t cuadrados

Luis Tomas Wayar (UNJU)

Python

26 de junio de 2011

34 / 49

El Lenguaje

Programacin funcional o

Iteraciones de orden superior II


lter La funcin lter verica que los elementos de una secuencia cumplan una o determinada condicin, devolviendo una secuencia con los elementos que o cumplen esa condicin. Es decir, para cada elemento de la secuencia se o aplica la funcin, si el resultado es True se aade a la lista y en caso o n contrario se descarta. Ejemplo
def es par (n) : r e t u r n ( n % 2 . 0 == 0 ) numeros = [ 1 , 2 , 3 , 4 , 5 , 6 ] p a r e s = f i l t e r ( e s p a r , numeros )

Luis Tomas Wayar (UNJU)

Python

26 de junio de 2011

35 / 49

El Lenguaje

Programacin funcional o

Iteraciones de orden superior III

reduce La funcin reduce aplica una funcin a pares de elementos de una o o secuencia hasta dejarla en un solo valor. Ejemplo
d e f sumar ( x , y ) : return x + y numeros = [ 1 , 2 , 3 , 4 , 5 , 6 ] s u m a t o r i a = r e d u c e ( sumar , numeros )

Luis Tomas Wayar (UNJU)

Python

26 de junio de 2011

36 / 49

El Lenguaje

Programacin funcional o

Funciones lambda

Funciones lambda El operador lambda sirve para crear funciones annimas en l o nea. Al ser funciones annimas, es decir, sin nombre, estas no podrn ser o a referenciadas ms tarde. Las funciones lambda se construyen mediante el a operador lambda, los parmetros de la funcin separados por comas a o (atencin, SIN parntesis), dos puntos (:) y el cdigo de la funcin. o e o o Ejemplo
i n c r e m e n t o = lambda n : n+1 f a c t o r i a l = lambda n : 1 i f n <= 0 e l s e f a c t o r i a l ( n1)n numeros = [ 1 , 2 , 3 , 4 , 5 , 6 ] p a r e s = f i l t e r ( lambda n : n % 2 . 0 == 0 , numeros )

Luis Tomas Wayar (UNJU)

Python

26 de junio de 2011

37 / 49

El Lenguaje

Programacin funcional o

Listas por comprensin o

Listas por comprension Son una construccin que permite crear listas a partir de otras listas. Cada o una de estas construcciones consta de una expresin que determina cmo o o modicar el elemento de la lista original, seguida de una o varias clausulas for y opcionalmente una o varias clausulas if. Ejemplo
numeros = r a n g e ( 1 0 ) c u a d r a d o s = [ numero2 f o r numero i n numeros ] p a r e s = [ numero f o r numero i n numeros i f ( numero % 2 ) == 0 ] p r i m o s = [ numero f o r numero i n r a n g e ( 2 , 1 0 0 ) i f numero not i n [ x f o r y i n r a n g e ( 2 , 1 0 0 ) f o r x i n r a n g e (2 y , 1 0 0 , y ) ] ]

Luis Tomas Wayar (UNJU)

Python

26 de junio de 2011

38 / 49

El Lenguaje

Programacin funcional o

Generadores

Generadores Un generador es una clase especial de funcin que genera valores sobre los o que iterar. Para devolver el siguiente valor sobre el que iterar se utiliza la palabra clave yield. Genera un elemento de la lista por demanda. Ejemplo
c u a d r a d o s = ( n 2 f o r n i n r a n g e ( 1 0 ) ) f o r cuadrado in cuadrados : p r i n t cuadrado p r i m o s = ( numero f o r numero i n r a n g e ( 2 , 1 0 0 ) x i n r a n g e (2 y , 1 0 0 , y ) ] ) f o r primo i n primos : p r i n t primo

i f numero not i n [ x f o r y i n r a n g e ( 2 , 1 0 0 ) f o r

Luis Tomas Wayar (UNJU)

Python

26 de junio de 2011

39 / 49

El Lenguaje

Programacin funcional o

Decoradores

Decoradores Un decorador no es es mas que una funcin que recibe una funcin como o o parmetro y devuelve otra funcin como resultado. a o Ejemplo
def decorador ( funcion ) : d e f n u e v a ( a r g s ) : p r i n t Llamada a l a f u n c i o n , f u n c i o n . r e t o r n o = f u n c i o n ( a r g s ) return retorno r e t u r n nueva @decorador def s a l u d a r ( saludo ) : print saludo s a l u d a r ( Hola )

name

Luis Tomas Wayar (UNJU)

Python

26 de junio de 2011

40 / 49

El Lenguaje

Programacin Orientada a Objetos o

Las clases
Terminolog a

Clase: es el prototipo denido por el usuario para objetos que comparte atributos y mtodos comunes entre si. e Atributo: Caracter stica propia de los objetos de una clase, son los datos, representados por variables Mtodo: Accin propia de los objetos de una clase, son las funciones e o de las clase. Instanciacin: Creacin de un objeto individual de cierta clase o o Objeto: Elemento de cierta clase creado mediante la instanciacin o Herencia: Es la capacidad de que una clase transera sus caracter sticas a otra Polimorsmo: Es la capacidad de que objetos de diferente tipo respondan al mismo mensaje Encapsulacion: Es la capacidad en embeber todo lo que dene una clase dentro de ella y controlar el acceso
Luis Tomas Wayar (UNJU) Python 26 de junio de 2011 41 / 49

El Lenguaje

Programacin Orientada a Objetos o

Denicin de clases o
Clases Las clases se denen con la palabra reservada class seguida del nombre de la clase y : a continuacin indentado el bloque o cuerpo de la clase. , o Ejemplo
c l a s s Esponja ( ob je c t ) : def init ( s e l f , nombre , a p e l l i d o , r e d=True ) : s e l f . nombre , s e l f . a p e l l i d o , s e l f . r e d = nombre , a p e l l i d o , r e d d e f s e t n o m b r e ( s e l f , nombre ) : s e l f . nombre = nombre def get nombre ( s e l f ) : r e t u r n s e l f . nombre def r e i r ( s e l f ) : p r i n t HaHaHaHa def cazar medusas ( s e l f ) : i f s e l f . red : p r i n t Casando medusas else : p r i n t Me o l v i d e l a r e d bob = E s p o n j a ( Bob E s p o n j a , P a n t a l o n e s C u a d r a d o s , F a l s e ) bob . s e t n o m b r e ( P a t r i c i o ) bob . r e i r ( ) bob . c a z a r m e d u s a s ( ) Luis Tomas Wayar (UNJU) Python 26 de junio de 2011 42 / 49

El Lenguaje

Archivos

Archivos

Los archivos en python tambin e son objetos Para abrirlos o crearlos se usa la funcin interna open() o nombre archivo: contiene el nombre en el sistema de archivos modo acceso: determina el modo en que se habrira el archivo buer: tamao del buer en n memoria

Modo r rb r+ rb+ w wb w+ wb+ a ab a+

Descripcin o Solo lectura Solo lectura binario Lectura y escritura Lectura y escritura binario Solo lectura Solo lectura binario Lectura y escritura (dest) Lectura y escritura binario Agregar Agregar binario Lectura y agregar binario

Luis Tomas Wayar (UNJU)

Python

26 de junio de 2011

43 / 49

El Lenguaje

Archivos

Usando archivos
Mtodos de le: e le.read(size): lee size bytes o hasta EOF le.next(): lee la prxima linea o le.readline(size): lee una linea completa le.readlines(size): lee en una lista hasta EOF le.write(str): escribe una cadena le.writelines(secuencia): escribe una secuencia de strings
a r c h i v o = open ( h a b i t a n t e s f b . t x t , w ) p e r s o n a j e s = [ Don C a n g r e j o \n , P a t r i c i o E s t r e l l a \n , P e r l i t a \n ] a r c h i v o . w r i t e ( Calamardo \n ) a r c h i v o . w r i t e ( A r e n i t a \n ) archivo . writelines ( personajes ) archivo . close () a r c h i v o = open ( h a b i t a n t e s f b . t x t , r ) l i n e a s = archivo . readlines () for linea in lineas : print linea archivo . close ()

Luis Tomas Wayar (UNJU)

Python

26 de junio de 2011

44 / 49

Miscelneas a

Librer as

Librer as
ORM: Acceso a bases de datos relacionales como objetos TUI: interfaces de texto de usuarios GUI: interfaces grcas de usuarios a RED: manejos de sockets y servicios RE: expresiones regulares Multimedia: acceso a archivos y dispositivos multimedia Tiempo: manejo cmodo de fechas y horas o Multithreading: manejo de hilos CGI: programacin web o XML: proceso de datos xml Math: calculo y gracacion Juegos: programacin de juegos o Y mas, mucho mas...
Luis Tomas Wayar (UNJU) Python 26 de junio de 2011 45 / 49

Miscelneas a

Herramientas

Herramientas

Eric: completo IDE para python SPE: editor para python vim: editor para programadores altamente congurable Umbrello: modelador UML que genera cdigo python o BoaConstructor: RAD para aplicaciones grcas a Doxygen: documentador con soporte para Python

Luis Tomas Wayar (UNJU)

Python

26 de junio de 2011

46 / 49

Miscelneas a

Ejemplos

Algunos ejemplos

1 2 3 4 5

Encriptador vigenere Test de primalidad Captura de webcam Interfaz GUI y Base de Datos Grcos y matemticas a a

Luis Tomas Wayar (UNJU)

Python

26 de junio de 2011

47 / 49

Miscelneas a

Ejemplos

Enlaces para aprender Python


Python para todos, es un libro sobre programacin en Python escrito o por Ral Gonzlez Duque. Se trata de un tutorial de Python adecuado u a para todos los niveles y que puedes descargar totalmente gratis de http://mundogeek.net/tutorial-python/ Aprendiendo a Programar con Python, libro electrnico para nios de o n 8 o ms aos que quieran aprender a programar decarga a n http://code.google.com/p/swfk-es/ Introduccin a la programacin con Python, libro sobre Python de la o o Universitat Jaume I de Castell de la Plana descargar de o http://marmota.dlsi.uji.es/ Python YA, el objetivo de este sitio es poder aprender el lenguaje Python sin la necesidad de instalarlo en su mquina, sitio a http://pythonya.appspot.com/ Inmersin en Python, tutorial de Python de novato a experto o descargar desde http://www.gulic.org/almacen/diveintopython-5.4-es/toc/index.html
Luis Tomas Wayar (UNJU) Python 26 de junio de 2011 48 / 49

Miscelneas a

Ejemplos

Gracias

Muchas gracias a La audiencia Vice Decano de Ingenieria La UNJU

Luis Tomas Wayar (UNJU)

Python

26 de junio de 2011

49 / 49

También podría gustarte