curso de python

29

Click here to load reader

Upload: washington-bastidas

Post on 13-Jun-2015

1.075 views

Category:

Software


4 download

DESCRIPTION

Curso de Python nivel básico e intermedio

TRANSCRIPT

Page 1: Curso de Python

Curso de Python

Washington Bastidas Santos

Ing. en Sistemas – Técnico SIG

CNEL EP

Page 2: Curso de Python

Python Interpretado

Tipado dinámico Fuertemente tipado

Multiplataforma Orientado a objetos

Page 3: Curso de Python

Interpretado

Código intermedio generando archivos .pyc

Page 4: Curso de Python

No permite tratar a una variable como si fuera de un tipo distinto al que tiene

Fuertemente Tipado

Page 5: Curso de Python

Multiplataforma

Page 6: Curso de Python

Paradigmas de Programación

Imperativa

Orientado a Objetos

Funcional

Orientada a aspectos

Page 7: Curso de Python

Creador

• Guido van Rossum • Benevolent

Dictator for Life de Python

• Creo el lenguaje de programación mientras pasaba la Navidad.

Page 8: Curso de Python

Por qué

Python?

Page 9: Curso de Python

Por que Python?

• Usado por grandes compañías.

• Fácil de aprender y mantener.

• Excelente para principiantes y expertos.

• Libre y Open Source.

• Una gran cantidad de librerías.

• Una gran comunidad.

• Integrado con ArcGIS.

Page 10: Curso de Python

IDE

• Un buen IDE debe de tener como mínimo:

• Un editor con autocompletado de código.

• Plantillas de código. • Resaltar la sintaxis. • Explorador de código

para funciones y clases. • Herramientas para

debugging y test unitarios.

Page 11: Curso de Python

Eclipse + PyDev

Page 12: Curso de Python

IDLE

Page 13: Curso de Python

Tipo de Datos, Variables y Funciones

Page 14: Curso de Python

Variables

• Python usa asignación dinámica de las variables.

• Valor definido por el tipo.

• No puede comenzar con dígitos ni se debe usar palabras claves.

• La varible null en python es none.

Page 15: Curso de Python

Tipos de Datos - Números

• Integer (Enteros)

– Int

– Long (23L)

• Float (decimales)

– Float (0,3)

– Double

• import math para operaciones matemáticas NOTA: Si se quiere una operación con decimales, al menos uno de los 2

elementos debe de tener un número decimal o poner un número entre la función float()

Page 16: Curso de Python

Tipos de Datos - String

"Es una colección ordenada de caracteres"

• En python comillas simples o dobles son lo mismo. • caracteres especiales (\n, \t). • Puede ser precedidas por U(Unicode) y r(Raw). • Operación + para concatenar • Función str() para convertir a string un elemento.

Substring corchetes: fruit[1:3] "an"

Page 17: Curso de Python

Tipo de Datos - Booleano

• True o False

• Usado en expresiones condicionales y bucles.

Operador Descripción Ejemplo

and ¿se cumple a y b? r = True and False # r es False

or ¿se cumple a o b? r = True or False # r es True

not No a r = not True # r es False

Operador Descripción Ejemplo

== ¿son iguales a y b? r = 5 == 3 # r es False

!= ¿son distintos a y b? r = 5 != 3 # r es True

< ¿es a menor que b? r = 5 < 3 # r es False

> ¿es a mayor que b? r = 5 > 3 # r es True

<= ¿es a menor o igual que b? r = 5 <= 5 # r es True

>= ¿es a mayor o igual que b? r = 5 >= 3 # r es True

Operadores Lógicos

Elementos de comparación

Page 18: Curso de Python

Tipos de Datos - Listas • La lista es un tipo de colección ordenada. • La lista esta rodeada por corchetes [], y están separados

por comas (,). – miLista = [1, 2, 4, 8, 16, 32]

• Entre los métodos para manipula la lista estan: – sort() , ordena los elementos – append() , agrega el elemento que esta dentro del

paréntesis. – extend(), concatenar lista, ej. miLista ([10,20, 32])

• Para acceder a una lista se puede poner el índice de la ubicación del elemento (miLista[1] = 2) o recorrer la lista mediante un for (for l in miLista)

[L2.append(x) for x in miLista if x not in L2]

Page 19: Curso de Python

Tipos de Datos - Tuplas

Tuplas

• Contiene una secuencia de valores que se definen con ().

• No posee mecanismos de modificación.

• Inmutables.

• Menor consumo de memoria.

• Se accede mediante corchete [] y poniendo la posición del elemento.

Diccionarios • Colecciones con clave y valor.

Se define con llaves {}. d = {"Love Actually": "Richard Curtis", "Kill Bill": "Tarantino"}

• Se implementan con diccionarios Hash.

• Solo se accede mediante la clave del elementos.

• Mutable • Para iterar por los elementos

se puede utilizar for k, v in d.iteritems()

Page 20: Curso de Python

Funciones

• len() : se obtiene la cantidad de elementos en listas, tuplas o colecciones.

Diccionario • d.has_key(k): comprobas si

existe la clave k en la lista d. • d.items(): Se obtiene una

lista de tuplas con clave-valor

• d.keys(): Devuelve una lista de claves de d.

• d.values(): devuelve una lista de valores de d.

Lista • l.append(o): agrega el

elemento o en la lista. • l.count(v): devuelve el

numero de veces que se repite v.

• l.index(v): devuelve la índice del valor a buscar.

Page 21: Curso de Python

Condiciones

• Sentencia if / elif / else

• Controla si la condición es cierta.

• elif se utiliza cuando se tiene condiciones múltiples.

if x == 1:

print ‘x es 1’

elif x == 2:

print ‘x es 2’

else:

print ‘x es desconocido’

var = "par" if (num % 2 == 0)

else "impar"

Page 22: Curso de Python

Lazos

• La lazo while repite una acción hasta que la condición sea verdadera.

• Un lazo for repite un bloque de código para cada elemento de una secuencia.

• Se puede utilizar para un conjunto de números la función range(3), comienza de 0 y termina en 3.

• La palabra clave break rompe los lazos y continue continua con la siguiente iteración.

i = 0

while i <= 10:

print i

i += 1

dictLayers = {"Camino":"Linea",

"Parque":"Poligono"}

lstLayers = dictLayers.keys()

for x in lstLayers:

print dictLayers[x]

for x in range(3):

print x

Page 23: Curso de Python

Lectura de Línea / Archivo

Leer por consola

• Para poder leer alguna sentencia ingresada por el usuario del programa podemos usar la siguiente sentencia:

dato = print

raw_input("¿Cual

es tu nombre?")

Archivo • Para leer archivos se necesita

importar el modulo os así como utilizar los siguientes comandos: – f = open("text","r"),leer

archivo , existen 3 modos de lectura r (leer) w (escribir) y a (agregar)

– linea = f.readlines(), lee todas las líneas del archivo, se itera con for.

– f.write(texto) escribe texto en el archivo

– f.close() cierra el archivo.

Page 24: Curso de Python

Manejo de Errores

• Cuando un error ocurre python dispara una excepción.

• Con la palabra raise puedes invocar una excepción.

• Se controlan mediante try – except – (finally).

• Para saber en que linea esta el error utilizamos la siguiente sentencia

import sys

#Dentro de la excepcion

tb = sys.exc_info()[2]

print tb.tb_lineno

try:

if arcpy.CheckExtension("3D") ==

"Disponible":

arcpy.CheckOutExtension("3D")

else:

#Envía una excepción

personalizada.

raise ErrorLicencia

# Hacer algo con la licencia

print "Disponible"

except ErrorLicencia:

print "Licencia no disponible"

except Exception as e:

print e.message

finally:

#Check in the 3D Analyst extension

arcpy.CheckInExtension("3D")

Page 25: Curso de Python

Programación Funcional

• Programación se basa en funciones, esto según su definición matemática, no es una simple rutina.

• Funciones de orden superior, pasar funciones como parámetro y retorno.

• Interación de orden superior sobre listas

def ejecutar(tipo):

def linea_comando():

print "Por Linea Comando"

def pantalla():

print "Por Pantalla"

def servicio_web():

print "Por Web Service"

lang_func = {"lc":

linea_comando,"pt": pantalla,

"WS": servicio_web}

ejecutar[tipo]

f = ejecutar("pt")

f()

Page 26: Curso de Python

Programación Funcional - Lambda

• Permite crear funciones anónimas, las cuales no podrán ser referenciadas más tarde.

• Las funciones lambda se construyen mediante el operador lambda, los parámetros de la función separados por comas, SIN paréntesis, dos puntos (:) y el código de la función.

l = [1, 2, 3]

l2 = filter(lambda n: n % 2.0 == 0, l)

Map: La función map aplica una función a cada elemento de una secuencia l2 = [n ** 2 for n in l]

Filter: Verifica que los elementos de la secuencia cumplan una condición, devuelve los true. l2 = [n for n in l if n % 2.0 == 0]

Compresión de lista l = [0, 1, 2, 3]

m = ["a", "b"]

n = [s * v for s in m

for v in l

if v > 0]

Page 27: Curso de Python

Expresiones Regulares

Secuencias especiales

\A Inicio del texto.

\b limites de una palabra entre \w y \W

\d número

\D no numérico

\s espacios en blanco [ \t\n\r\f\v]

\S no espacios en blancos.

\w Alfanuméricos.

\W No alfanuméricos.

\Z fin del texto

Caracteres especiales \ escape de caracteres especiales. . Busca cualquier carácter menos \n. ^ Busca al inicio del texto. $ Busca al final del texto. [5b-d] encuentre cualquier carácter que este en el rango'5', 'b', 'c' or 'd‘ R|S encuentre R o S [^a-c] no busca a ni b ni c. Cantidades * 0 o más (agregar ? para que no sea codicioso) + 1 o más ? 0 o 1 {m} exactamente m veces. (…) grupo

Page 28: Curso de Python

Expresiones Regulares

• Es una secuencia de caracteres que forma un patrón de búsqueda, Wikipedia.

• Se utiliza el modulo re. • Ejemplo de expresión : match = re.search(pat, str) • buscar patrones, dividir grupos y reemplazo de caracteres. #Buscar una palabra que comience con p, j o c continúe con ython y termine con una secuencia de 0 a 9

re.match(“[pjc]ython[0-9]”, “python2”) #Encontrado

#Buscar una palabra que comience con http y encuentre un punto, crear un nuevo grupo con una palabra que sea de 3 digitos

mo = re.match(“http://(.+)\(.{3})”, “http://eluniverso.com”)

print mo.groups()

(‘eluniverso.com’, ‘com’) #Resultado

match = re.search(r'\w+@\w+', str)

Page 29: Curso de Python

Lista de extras

Fotos: • Slide 2: http://kidfocused.com/mom-wakes-to-python-wrapped-around-toddler/

• Slide 4: http://samdelacruz.blogspot.com/2007/06/object-oriented-analysis-and-design.htm

• Silde 7: http://es.wikipedia.org/wiki/Guido_van_Rossum#mediaviewer/Archivo:Guido_van_Rossum_OSCON_2006.jpg

• Slide 8: http://www.careerhubblog.com/.a/6a00d834516a5769e20168e7e2eb2a970c-pi