SlideShare une entreprise Scribd logo
1  sur  29
Télécharger pour lire hors ligne
Curso de Python
Washington Bastidas Santos
Ing. en Sistemas – Técnico SIG
CNEL EP
Python
Interpretado
Tipado dinámico
Fuertemente tipado
Multiplataforma
Orientado a objetos
Interpretado
Código intermedio generando archivos .pyc
No permite
tratar a una
variable
como si
fuera de un
tipo distinto
al que tiene
Fuertemente Tipado
Multiplataforma
Paradigmas de Programación
Imperativa
Orientado a Objetos
Funcional
Orientada a aspectos
Creador
• Guido van Rossum
• Benevolent
Dictator for Life de
Python
• Creo el lenguaje de
programación
mientras pasaba la
Navidad.
Por
qué
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.
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.
Eclipse + PyDev
IDLE
Tipo de Datos, Variables y Funciones
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.
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()
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"
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
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]
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()
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.
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"
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
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.
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")
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()
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]
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 [ tnrfv]
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
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)
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

Contenu connexe

Tendances (20)

6 Curso de POO en Java - clases y objetos
6  Curso de POO en Java - clases y objetos6  Curso de POO en Java - clases y objetos
6 Curso de POO en Java - clases y objetos
 
Lenguaje c++
Lenguaje c++Lenguaje c++
Lenguaje c++
 
Tratamento de exceções
Tratamento de exceçõesTratamento de exceções
Tratamento de exceções
 
Polimorfismo en Java
Polimorfismo en JavaPolimorfismo en Java
Polimorfismo en Java
 
Python
PythonPython
Python
 
Presentacion Python
Presentacion  Python Presentacion  Python
Presentacion Python
 
Programacion orientada a objetos - unidad 3 herencia
Programacion orientada a objetos - unidad 3 herenciaProgramacion orientada a objetos - unidad 3 herencia
Programacion orientada a objetos - unidad 3 herencia
 
Ejercicios de evaluación de fundametnos de programacion en JAva
Ejercicios de evaluación de fundametnos de programacion en JAvaEjercicios de evaluación de fundametnos de programacion en JAva
Ejercicios de evaluación de fundametnos de programacion en JAva
 
Fundamentos de Programación
Fundamentos de ProgramaciónFundamentos de Programación
Fundamentos de Programación
 
Functions in python
Functions in pythonFunctions in python
Functions in python
 
Cuestionario
CuestionarioCuestionario
Cuestionario
 
Python for loop
Python for loopPython for loop
Python for loop
 
Python Generators
Python GeneratorsPython Generators
Python Generators
 
Código intermedio
Código intermedioCódigo intermedio
Código intermedio
 
Diagrama de Colaboración
Diagrama de ColaboraciónDiagrama de Colaboración
Diagrama de Colaboración
 
Codigo intermedio
Codigo intermedioCodigo intermedio
Codigo intermedio
 
Arreglos
ArreglosArreglos
Arreglos
 
Intro to Python Programming Language
Intro to Python Programming LanguageIntro to Python Programming Language
Intro to Python Programming Language
 
Object oriented programming in python
Object oriented programming in pythonObject oriented programming in python
Object oriented programming in python
 
Python basics
Python basicsPython basics
Python basics
 

En vedette

Python: programacion para el Poder Popular
Python: programacion para el Poder PopularPython: programacion para el Poder Popular
Python: programacion para el Poder PopularFrancisco Palm
 
Introduccion a Python por Facundo Batista
Introduccion a Python por Facundo BatistaIntroduccion a Python por Facundo Batista
Introduccion a Python por Facundo BatistaRoberto Allende
 
Python - Programando fácil, rápido y gratis
Python - Programando fácil, rápido y gratisPython - Programando fácil, rápido y gratis
Python - Programando fácil, rápido y gratisJuan Percy Rojas Cruz
 
Programando em python excecoes
Programando em python   excecoesProgramando em python   excecoes
Programando em python excecoessamuelthiago
 
Pensando La Migracion Como Un Hacker
Pensando La Migracion Como Un HackerPensando La Migracion Como Un Hacker
Pensando La Migracion Como Un HackerFrancisco Palm
 
03 programando em python - comandos basicos
 03   programando em python - comandos basicos 03   programando em python - comandos basicos
03 programando em python - comandos basicosVictor Marcelino
 
Obtener contraseñas del directorio activo por hkm
Obtener contraseñas del directorio activo por hkmObtener contraseñas del directorio activo por hkm
Obtener contraseñas del directorio activo por hkmWebsec México, S.C.
 
Mi lenguaje de preferencia
Mi lenguaje de preferenciaMi lenguaje de preferencia
Mi lenguaje de preferenciaAlexanderMBaez
 
Recuperacion de defaces con versionador Git por Alevsk
Recuperacion de defaces con versionador Git por Alevsk Recuperacion de defaces con versionador Git por Alevsk
Recuperacion de defaces con versionador Git por Alevsk Websec México, S.C.
 
Trabalho de Paradigmas Da Linguagem De Programação - Python
Trabalho de Paradigmas Da Linguagem De Programação - PythonTrabalho de Paradigmas Da Linguagem De Programação - Python
Trabalho de Paradigmas Da Linguagem De Programação - PythonJanderson Campêlo
 
Programación en Pl/Python
Programación en Pl/PythonProgramación en Pl/Python
Programación en Pl/PythonEQ SOFT EIRL
 
Seguridad en Bitcoin por Luis Daniel Beltran
Seguridad en Bitcoin por Luis Daniel BeltranSeguridad en Bitcoin por Luis Daniel Beltran
Seguridad en Bitcoin por Luis Daniel BeltranWebsec México, S.C.
 
Estructura o plantilla para curso en línea
Estructura o plantilla para curso en líneaEstructura o plantilla para curso en línea
Estructura o plantilla para curso en líneaRosana Torres
 
Instalar Python 2.7 y 3 en Windows (Anaconda)
Instalar Python 2.7 y 3 en Windows (Anaconda)Instalar Python 2.7 y 3 en Windows (Anaconda)
Instalar Python 2.7 y 3 en Windows (Anaconda)CAChemE
 
Python en ciencia e ingenieria: lecciones aprendidas
Python en ciencia e ingenieria: lecciones aprendidasPython en ciencia e ingenieria: lecciones aprendidas
Python en ciencia e ingenieria: lecciones aprendidasCAChemE
 
Estilos de programación y sus lenguajes
Estilos de programación y sus lenguajesEstilos de programación y sus lenguajes
Estilos de programación y sus lenguajesPedro Contreras Flores
 

En vedette (20)

Python: programacion para el Poder Popular
Python: programacion para el Poder PopularPython: programacion para el Poder Popular
Python: programacion para el Poder Popular
 
Introduccion a Python por Facundo Batista
Introduccion a Python por Facundo BatistaIntroduccion a Python por Facundo Batista
Introduccion a Python por Facundo Batista
 
Python - Programando fácil, rápido y gratis
Python - Programando fácil, rápido y gratisPython - Programando fácil, rápido y gratis
Python - Programando fácil, rápido y gratis
 
Programando em python excecoes
Programando em python   excecoesProgramando em python   excecoes
Programando em python excecoes
 
Pensando La Migracion Como Un Hacker
Pensando La Migracion Como Un HackerPensando La Migracion Como Un Hacker
Pensando La Migracion Como Un Hacker
 
Aprender con python
Aprender con pythonAprender con python
Aprender con python
 
03 programando em python - comandos basicos
 03   programando em python - comandos basicos 03   programando em python - comandos basicos
03 programando em python - comandos basicos
 
A linguagem Python
A linguagem Python A linguagem Python
A linguagem Python
 
Comandos em python
Comandos em pythonComandos em python
Comandos em python
 
Obtener contraseñas del directorio activo por hkm
Obtener contraseñas del directorio activo por hkmObtener contraseñas del directorio activo por hkm
Obtener contraseñas del directorio activo por hkm
 
Mi lenguaje de preferencia
Mi lenguaje de preferenciaMi lenguaje de preferencia
Mi lenguaje de preferencia
 
Recuperacion de defaces con versionador Git por Alevsk
Recuperacion de defaces con versionador Git por Alevsk Recuperacion de defaces con versionador Git por Alevsk
Recuperacion de defaces con versionador Git por Alevsk
 
Trabalho de Paradigmas Da Linguagem De Programação - Python
Trabalho de Paradigmas Da Linguagem De Programação - PythonTrabalho de Paradigmas Da Linguagem De Programação - Python
Trabalho de Paradigmas Da Linguagem De Programação - Python
 
Programación en Pl/Python
Programación en Pl/PythonProgramación en Pl/Python
Programación en Pl/Python
 
Seguridad en Bitcoin por Luis Daniel Beltran
Seguridad en Bitcoin por Luis Daniel BeltranSeguridad en Bitcoin por Luis Daniel Beltran
Seguridad en Bitcoin por Luis Daniel Beltran
 
Estructura o plantilla para curso en línea
Estructura o plantilla para curso en líneaEstructura o plantilla para curso en línea
Estructura o plantilla para curso en línea
 
Instalar Python 2.7 y 3 en Windows (Anaconda)
Instalar Python 2.7 y 3 en Windows (Anaconda)Instalar Python 2.7 y 3 en Windows (Anaconda)
Instalar Python 2.7 y 3 en Windows (Anaconda)
 
Python en ciencia e ingenieria: lecciones aprendidas
Python en ciencia e ingenieria: lecciones aprendidasPython en ciencia e ingenieria: lecciones aprendidas
Python en ciencia e ingenieria: lecciones aprendidas
 
OSINT vs CIBERCRIMEN por nickops
OSINT vs CIBERCRIMEN por nickopsOSINT vs CIBERCRIMEN por nickops
OSINT vs CIBERCRIMEN por nickops
 
Estilos de programación y sus lenguajes
Estilos de programación y sus lenguajesEstilos de programación y sus lenguajes
Estilos de programación y sus lenguajes
 

Similaire à Curso Python: Introducción al lenguaje de programación

Similaire à Curso Python: Introducción al lenguaje de programación (20)

C curso intr
C curso intr C curso intr
C curso intr
 
Python
Python Python
Python
 
Lenguaje latino
Lenguaje latinoLenguaje latino
Lenguaje latino
 
C ++.ppt
C ++.pptC ++.ppt
C ++.ppt
 
2 punteros y lenguaje c
2 punteros y lenguaje c2 punteros y lenguaje c
2 punteros y lenguaje c
 
Programacion en python_1
Programacion en python_1Programacion en python_1
Programacion en python_1
 
Java teoría
Java teoríaJava teoría
Java teoría
 
Perl
PerlPerl
Perl
 
Php
PhpPhp
Php
 
Concepto de introducción
Concepto de introducciónConcepto de introducción
Concepto de introducción
 
01 el lenguaje Python
01 el lenguaje Python01 el lenguaje Python
01 el lenguaje Python
 
Introduccion al lenguaje c_EderHenriquez
Introduccion al lenguaje c_EderHenriquezIntroduccion al lenguaje c_EderHenriquez
Introduccion al lenguaje c_EderHenriquez
 
Elementos del Hardware y Software
Elementos del Hardware y SoftwareElementos del Hardware y Software
Elementos del Hardware y Software
 
Modulo2a
Modulo2aModulo2a
Modulo2a
 
Introduccion al lenguaje c
Introduccion al lenguaje cIntroduccion al lenguaje c
Introduccion al lenguaje c
 
9. listas y for-in
9.  listas y for-in9.  listas y for-in
9. listas y for-in
 
Lenguajes De Bajo Nivel
Lenguajes De Bajo NivelLenguajes De Bajo Nivel
Lenguajes De Bajo Nivel
 
Ejercicios con Python parte 05
Ejercicios con Python parte 05Ejercicios con Python parte 05
Ejercicios con Python parte 05
 
Chuleta de aprendizaje de Python3 (1).pdf
Chuleta de aprendizaje de Python3 (1).pdfChuleta de aprendizaje de Python3 (1).pdf
Chuleta de aprendizaje de Python3 (1).pdf
 
Ruby 01
Ruby 01Ruby 01
Ruby 01
 

Plus de Washington Bastidas (8)

Curso de GIS Básico
Curso de GIS BásicoCurso de GIS Básico
Curso de GIS Básico
 
ArcGIS y Geoportal
ArcGIS y GeoportalArcGIS y Geoportal
ArcGIS y Geoportal
 
ArcGIS 10 - Actualización y Respaldo
ArcGIS 10 - Actualización y Respaldo ArcGIS 10 - Actualización y Respaldo
ArcGIS 10 - Actualización y Respaldo
 
Migracion Corporativa
Migracion CorporativaMigracion Corporativa
Migracion Corporativa
 
Uso de Arcgis Explorer
Uso de Arcgis ExplorerUso de Arcgis Explorer
Uso de Arcgis Explorer
 
WebSpam
WebSpamWebSpam
WebSpam
 
Mercado de Valores
Mercado de ValoresMercado de Valores
Mercado de Valores
 
mineria de datos
mineria de datosmineria de datos
mineria de datos
 

Curso Python: Introducción al lenguaje de programación

  • 1. Curso de Python Washington Bastidas Santos Ing. en Sistemas – Técnico SIG CNEL EP
  • 4. No permite tratar a una variable como si fuera de un tipo distinto al que tiene Fuertemente Tipado
  • 6. Paradigmas de Programación Imperativa Orientado a Objetos Funcional Orientada a aspectos
  • 7. Creador • Guido van Rossum • Benevolent Dictator for Life de Python • Creo el lenguaje de programación mientras pasaba la Navidad.
  • 9. 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.
  • 10. 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.
  • 12. IDLE
  • 13. Tipo de Datos, Variables y Funciones
  • 14. 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.
  • 15. 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()
  • 16. 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"
  • 17. 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
  • 18. 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]
  • 19. 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()
  • 20. 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.
  • 21. 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"
  • 22. 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
  • 23. 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.
  • 24. 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")
  • 25. 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()
  • 26. 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]
  • 27. 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 [ tnrfv] 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
  • 28. 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)
  • 29. 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