You are on page 1of 112

INTRODUCCIN A PYTHON 3 Universidad Nacional de Colombia

M a t e r i a l d e a p o y o e l ab or a d o c o m o a p o y o a l a materia M t o d o s N um r i c o s D i e g o Ca m i l o P e a R a m r e z ( d o c e n t e )

Twitter: @nervencid
1

CONTENIDO

Que es Python? Historia de Python Caractersticas de Python EMPEZAR A UTILIZAR PYTHON Aplicacin bsica Hola mundo COMENTARIOS VARIABLES TIPOS DE DATOS OBTENER EL TIPO DE VARIABLE CONVERSIONES COLECCIONES DE TIPOS DE DATOS
2

CONTENIDO

DICCIONARIOS OBTENER UN CARCTER DE UNA CADENA OPERACIONES ARITMETICAS OPERACIONES LOGICAS OPERADOR DE PERTENENCIA 'in' SENTENCIA 'for' SENTENCIA 'while' SENTENCIA 'if' FUNCIONES
3

CONTENIDO

FUNCIONES DE ORDEN SUPERIOR FUNCIONES LAMBDA COMPRENSIN DE LISTAS GENERADORES DECORADORES MANEJO DE ARCHIVOS ESCRIBIR TABLAS EN PYTHON EXCEPCINES Y ERRORES PROGRAMACIN ORIENTADA A OBJETOS

CONTENIDO

PROGRAMACIN ORIENTADA A OBJETOS (HERENCIA) PROGRAMACIN ORIENTADA A OBJETOS (CLASES DECORADORAS) BIBLIOGRAFIA SOBRE EL AUTOR Y EL CONTENIDO

Que es Pyhton?
Python es un lenguaje de programacin interpretado cuya filosofa hace hincapi en una sintaxis muy limpia y que favorezca un cdigo legible.[1]

Historia de Pyhton
Python fue creado a finales de los ochenta2 por Guido van Rossum en el Centro para las Matemticas y la Informtica (CWI, Centrum Wiskunde & Informatica), en los Pases Bajos, como un sucesor del lenguaje de programacin ABC, capaz de manejar excepciones e interactuar con el sistema operativo Amoeba.3 [1]
Imagen extrada de [1]
7

Historia de Pyhton
El nombre del lenguaje proviene de la aficin de su creador original, Guido van Rossum, por los humoristas britnicos Monty Python. [1]

Imagen extrada de [2]


8

Caractersticas de Python
Simple Sencillo de Aprender Libre y Fuente Abierta Indentado Lenguaje de Alto Nivel Portable Interpretado Orientado a Objetos

Caractersticas de Python
Ampliable (Permite combinar fragmentos

con otros lenguajes de programacin). Incrustable (Permite insertar cdigo en otros lenguajes para dar facilidades de scripting). Libreras Extendidas

1 0

Seguir las instrucciones de instalacin en: http://www.python.org/getit/ Iniciar el Shell de Python

EMPEZAR A UTILIZAR PYTHON

1 1

Aplicacin bsica Hola mundo

1 2

SI!, as de sencillo es
1 3

COMENTARIOS
Antes que nada los comentarios estn marcados con el

signo # esto es importante para poder entender el cdigo fuente del programa en un futuro. Los comentarios NO se ejecutan y son ignorados por el interprete de Python.

1 4

VARIABLES
Declaracin:

1 5

VARIABLES
PYTHON ve a las variables como objetos, y cuando le asignamos un nombre a una variable es algo as como asignarle una etiqueta que apuntara a una direccin de memoria donde se encuentra almacenado el objeto. Cuando cambiamos el valor de dicha variable lo que hacemos es que la etiqueta apunte a otra direccin de memoria de dicho objeto. Cuando varias variables tienen asignado el mismo valor la etiqueta en realidad apuntara a la misma direccin de memoria.

1 6

VARIABLES

1 7

VARIABLES

1 8

TIPOS DE DATOS

Tabla extrada de [1]


1 9

TIPOS DE DATOS
Aunque NO es necesario declarar el tipo de

variable, Python SI reconoce automticamente que tipo de variable es. Tambin podemos operar nmeros complejos y nmeros enteros (o de tipo 'float'), sin ningn problema. SIN EMBARGO no podemos hacer cosas como por ejemplo operar cadenas 'string' con nmeros.

2 0

OBTENER EL TIPO DE LA VARIABLE

2 1

CONVERSIONES

2 2

CONVERSIONES

2 3

CONVERSIONES

2 4

CONVERSIONES

2 5

COLECCIONES DE TIPOS DE DATOS

2 6

COLECCIONES DE TIPOS DE DATOS

2 7

COLECCIONES DE TIPOS DE DATOS

2 8

COLECCIONES DE TIPOS DE DATOS

2 9

DICCIONARIOS

3 0

OBTENER UN CARCTER DE UNA CADENA

3 1

OPERACIONES ARITMETICAS

3 2

OPERACIONES ARITMETICAS

3 3

OPERACIONES ARITMETICAS

3 4

OPERACIONES LOGICAS

3 5

OPERACIONES LOGICAS

3 6

OPERACIONES LOGICAS

3 7

OPERACIONES LOGICAS

3 8

OPERADOR DE PERTENENCIA in

3 9

OPERADOR DE PERTENENCIA in

4 0

SENTENCIA for

4 1

SENTENCIA for

4 2

SENTENCIA for

4 3

SENTENCIA for

4 4

SENTENCIA while

4 5

SENTENCIA if

4 6

FUNCIONES

4 7

FUNCIONES
Antes de Realizar el prximo ejercicio cree dos archivos uno que se llame FuncionesExternas.py y otro que se llame LlamadoDeFunciones.py, que estn en LA MISMA CARPETA.

4 8

FUNCIONES
En FuncionesExternas.py escriba el siguiente cdigo y guarde el archivo:

4 9

FUNCIONES
En LlamadoDeFunciones.py escriba el siguiente cdigo, guarde el archivo y luego ejecute (F5):

5 0

FUNCIONES
Otra forma de llamar funciones:

5 1

FUNCIONES
Si el archivo que queremos importar NO esta en la misma carpeta, ni en Python usamos 'sys.path.append(.../Direccion donde esta el archivo que necesitamos)' para poder usar 'scripts' en otras ubicaciones:

5 2

FUNCIONES DE ORDEN SUPERIOR


Otra caracterstica interesante de Python es la capacidad de poder pasar como parmetros funciones como si fueran variables, esto nos evita por ejemplo utilizar en algunos casos el uso de molestas sentencias if, simplificando y mejorando la presentacin de nuestro cdigo En el ejemplo a continuacin (es recomendable crear un nuevo archivo .py) trataremos de hacer una calculadora bsica (con operaciones suma, resta, multiplicacin y divisin), y partiremos de las siguientes funciones:

5 3

FUNCIONES DE ORDEN SUPERIOR

5 4

FUNCIONES DE ORDEN SUPERIOR


Creamos una funcin calculadora, donde si observamos con atencin el parmetro f es una funcin y se trata como una variable, recordemos que en Python las variables son objetos luego f, tambin es un objeto.

5 5

FUNCIONES DE ORDEN SUPERIOR


Finalmente procedemos a llamar SOLAMENTE la funcin calculadora y pasarle los parmetros (f,x,y). Seguido de esto ejecutamos nuestro archivo

5 6

FUNCIONES DE ORDEN SUPERIOR

5 7

FUNCIONES DE ORDEN SUPERIOR

5 8

FUNCIONES LAMBDA
Las funciones Lambda, son funciones ANONIMAS que se componen de una sola linea de cdigo. Estas funciones son limitadas ya que NO podemos escribir dentro de estas algunos comandos de cdigo como sentencias for, while, etc...

5 9

FUNCIONES LAMBDA
Tambin podemos hacer algunas operaciones lgicas SIMPLES por ejemplo la siguiente expresin:

Puede ser reemplazada por:

6 0

FUNCIONES LAMBDA

6 1

COMPRENSION DE LISTAS
Las listas podemos llenarlas de forma automtica usando la sentencia for o con algn otro bucle como se vio anteriormente, sin embargo es posible simplificar aun ms la sintaxis mediante la comprensin de listas, aunque tenemos restricciones similares a las de las funciones lambda, podemos reemplazar una funcin como la siguiente:

6 2

COMPRENSION DE LISTAS
Por lo siguiente:

6 3

COMPRENSION DE LISTAS
Algunos ejemplos adicionales:

6 4

COMPRENSION DE LISTAS

6 5

GENERADORES
Veamos en el ejemplo anterior que podamos crear listas de forma automtica con una sintaxis muy breve, ahora veremos como generar los valores de uno en uno, sin necesidad de crear una lista, a esto los llamamos generadores. Los cuales son funciones que usan la palabra reservada yield y generar cada valor en secuencia cada vez que se llame la funcin next().

6 6

GENERADORES
La primera opcin de sintaxis es similar a la comprensin de listas. OJO lo que arroja esto son valores y NO una lista.

6 7

GENERADORES
Efectivamente si verificamos en la consola o shell:

6 8

GENERADORES

6 9

GENERADORES
La segunda opcin es emplear una funcion con la palabra reservada yield:

7 0

GENERADORES
Y verificamos en la consola o shell:

7 1

GENERADORES

7 2

DECORADORES
Los decoradores son funciones que reciben funciones como argumentos y devuelven funciones. Debido a que debemos hacer una funcin que reciba funciones de cualquier tipo junto que argumentos de cualquier tipo debemos disponer de los siguientes parametros en el decorador:

*args: Es un parmetro que recibe una cantidad n de atributos. **kwargs: Es un diccionario donde se recibirn los valores de los argumentos y sus respectivas llaves.

Ahora procederemos con el ejemplo si tenemos las siguientes funcines:


7 3

DECORADORES

7 4

DECORADORES

7 5

DECORADORES

7 6

DECORADORES

7 7

DECORADORES

7 8

DECORADORES
Ahora probemos un ejemplo complejo con varios decoradores, primero tenemos uno llamado administrador que se encargar de verificar si la clave que introduzca el usuario es correcta ANTES de ejecutar la funcin a decorar:

7 9

DECORADORES

8 0

DECORADORES

8 1

DECORADORES

8 2

DECORADORES

8 3

MANEJO DE ARCHIVOS

8 4

MANEJO DE ARCHIVOS

8 5

MANEJO DE ARCHIVOS

8 6

MANEJO DE ARCHIVOS

8 7

ESCRIBIR TABLAS EN PYTHON

8 8

EXCEPCIONES Y ERRORES
La gestin de errores es algo muy importante en proyectos de alta complejidad, para garantizar el correcto funcionamiento del programa evitando, en varias ocasiones puede que Python por si mismo no pueda ayudarnos a identificar el error apropiadamente por lo cual debemos servirnos de las excepciones para poder detectar que partes de nuestro cdigo podra fallar.

8 9

EXCEPCIONES Y ERRORES
Python emplea palabras reservadas para le gestin de excepciones como:

try except continue break TypeError NameError finally raise

9 0

EXCEPCINES Y ERRORES
Podemos dispararlas manualmente bien sea de esta forma:

9 1

EXCEPCINES Y ERRORES
O de esta otra forma:

9 2

EXCEPCINES Y ERRORES
Otra opcin puede ser:

9 3

EXCEPCINES Y ERRORES

9 4

EXCEPCINES Y ERRORES

9 5

EXCEPCINES Y ERRORES

9 6

PROGRAMACIN ORIENTADA A OBJETOS


QUE ES UN OBJETO?: Son entidades(cosas, personas, animales, etc...) a las cueles se le atribuyen las siguientes propiedades:

Estado/Atributo: Son datos o valores que describen el objeto (Longitud, color, material...) Comportamiento: Ms conocidos como mtodos, es lo que podemos hacer con el objeto como por ejemplo abrir una caja, encender un televisor, etc... Identidad: Es lo que diferencia a un objeto de OTROS objetos de su misma CLASE
9 7

PROGRAMACIN ORIENTADA A OBJETOS


COMO DEFINIMOS UN OBJETO Y QUE ES ENTONCES LA PROGRAMACIN ORIENTADA A OBJETOS?:

En la mayora de lenguajes de programacin como Python los objetos los declararemos por medio de las CLASES las cuales agruparan las propiedades anteriormente enunciadas (Estado, comportamiento e identidad). De esta forma definiremos la programacin orientada a objetos puede definirse como: el desarrollo de aplicaciones informticas a partir de estos objetos y sus interaccines. [5]

9 8

PROGRAMACIN ORIENTADA A OBJETOS


CONCEPTOS FUNDAMENTALES [6]:

Clase: Contiene los atributos y mtodos de todos los objetos, la instanciacin es el procedimiento mediante el cual creamos un objeto en particular de una determinada clase. Herencia: Propiedad mediante la cual se transfieren o comparten propiedades de objetos de una clase (padre) a otra (hija) . Objeto: Instancia de una clase. Metodo: Es un comportamiento asociado a un objeto el cual se ejecutara al recibir un mensaje.
9 9

PROGRAMACIN ORIENTADA A OBJETOS


PROPIEDADES FUNDAMENTALES [6]:

Abstraccin: Es el aislamiento de una entidad de tal forma que no nos preocupemos en el 'como lo hace', algo as como encerrarlo en una caja negra. Encapsulamiento: Es el ocultamiento de los datos de tal forma que estos solo puedan ser accedidos por los mtodos del objeto.

1 0

PROGRAMACIN ORIENTADA A OBJETOS


PROPIEDADES FUNDAMENTALES [6]:

Modularidad: Permite dividir la aplicacin en partes ms pequeas las cuales pueden funcionar de forma independiente. Principio de ocultacin: NO confundir con abstraccin o encapsulamiento, consiste en aislar al objeto del exterior y hacen accesible los atributos solo por medio de una determinada interfaz.

1 0

PROGRAMACIN ORIENTADA A OBJETOS


PROPIEDADES FUNDAMENTALES [6]:

Polimorfismo: Es la capacidad de usar objetos de diferente clase por medio de una misma interfaz por ejemplo obtener el permetro de un triangulo y/o un rectngulo. (ver ejemplo aqu: http://es.wikipedia.org/wiki/Polimorfismo_(programa ci%C3%B3n_orientada_a_objetos )) Herencia: Propiedad mediante la cual se transfieren o comparten propiedades de objetos de una clase (padre) a otra (hija) .

1 0

PROGRAMACIN ORIENTADA A OBJETOS


PROPIEDADES FUNDAMENTALES [6]:

Recoleccin de basura: es la tcnica por la cual el entorno de objetos se encarga de destruir automticamente, y por tanto desvincular la memoria asociada, los objetos que hayan quedado sin ninguna referencia a ellos

1 0

PROGRAMACIN ORIENTADA A OBJETOS


Antes de Realizar el prximo ejercicio cree dos archivos uno que se llame Classes.py y otro que se llame main.py, que estn en LA MISMA CARPETA.

1 0

PROGRAMACIN ORIENTADA A OBJETOS


En Classes.py escriba el siguiente cdigo y guarde el archivo:

1 0

PROGRAMACIN ORIENTADA A OBJETOS


En main.py escriba el siguiente cdigo y guarde el archivo, luego ejecute el programa (F5):

1 0

PROGRAMACIN ORIENTADA A OBJETOS (HERENCIA)

1 0

PROGRAMACIN ORIENTADA A OBJETOS (CLASES DECORADORAS)


Al igual que las funciones decoradoras, podemos tambin crear clases decoradoras, por ejemplo para las funciones siguientes del ejemplo de decoradores que vimos anteriormente:

1 0

PROGRAMACIN ORIENTADA A OBJETOS (CLASES DECORADORAS)


Cambiamos la funcin decoradora por una clase decoradora:

1 0

PROGRAMACIN ORIENTADA A OBJETOS (CLASES DECORADORAS)


Finalmente llamamos las funciones ejecutadas:

1 1

BIBLIOGRAFIA
[1] http://es.wikipedia.org/wiki/Python [2] http://reflexionesdesdebaetulo.files.wordpress.com/2010/07/spanish-in quisition.jpg [3] http://www.python.org/ [4] http://docs.python.org/3/tutorial/ [5] http://www.desarrolloweb.com/articulos/499.php [6] http://es.wikipedia.org/wiki/Programaci%C3%B3n_orientada_a_objet os

1 1

SOBRE EL AUTOR Y EL CONTENIDO


A menos que se informe de otra manera esta obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.5 Colombia.

Diego Camilo Pea Ramrez Bogot, Colombia Agosto de 2013 Twitter: @nervencid
1 1

You might also like