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
...
Por
qué
Python?
Por que Python?
• Usado por grandes compañías.
• Fácil de aprender y mantener.
• Excelente para principiantes y
expertos.
...
IDE
• Un buen IDE debe de
tener como mínimo:
• Un editor con
autocompletado de
código.
• Plantillas de código.
• Resaltar ...
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...
Tipos de Datos - Números
• Integer (Enteros)
– Int
– Long (23L)
• Float (decimales)
– Float (0,3)
– Double
• import math p...
Tipos de Datos - String
"Es una colección
ordenada de caracteres"
• En python comillas simples o dobles son lo mismo.
• ca...
Tipo de Datos - Booleano
• True o False
• Usado en expresiones
condicionales y bucles.
Operador Descripción Ejemplo
and ¿s...
Tipos de Datos - Listas
• La lista es un tipo de colección ordenada.
• La lista esta rodeada por corchetes [], y están sep...
Tipos de Datos - Tuplas
Tuplas
• Contiene una secuencia de
valores que se definen con ().
• No posee mecanismos de
modific...
Funciones
• len() : se obtiene la
cantidad de elementos en
listas, tuplas o colecciones.
Diccionario
• d.has_key(k): compr...
Condiciones
• Sentencia if / elif / else
• Controla si la condición
es cierta.
• elif se utiliza cuando se
tiene condicion...
Lazos
• La lazo while repite una acción
hasta que la condición sea
verdadera.
• Un lazo for repite un bloque
de código par...
Lectura de Línea / Archivo
Leer por consola
• Para poder leer
alguna sentencia
ingresada por el
usuario del
programa podem...
Manejo de Errores
• Cuando un error ocurre
python dispara una
excepción.
• Con la palabra raise
puedes invocar una
excepci...
Programación Funcional
• Programación se basa
en funciones, esto
según su definición
matemática, no es una
simple rutina.
...
Programación Funcional - Lambda
• Permite crear funciones
anónimas, las cuales no
podrán ser referenciadas
más tarde.
• La...
Expresiones Regulares
Secuencias especiales
A Inicio del texto.
b limites de una palabra entre w y W
d número
D no numéric...
Expresiones Regulares
• Es una secuencia de caracteres que forma un patrón de
búsqueda, Wikipedia.
• Se utiliza el modulo ...
Lista de extras
Fotos:
• Slide 2: http://kidfocused.com/mom-wakes-to-python-wrapped-around-toddler/
• Slide 4: http://samd...
Próxima SlideShare
Cargando en…5
×

Curso de Python

0 visualizaciones

Publicado el

Curso de Python nivel básico e intermedio

Publicado en: Software
1 comentario
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
0
En SlideShare
0
De insertados
0
Número de insertados
0
Acciones
Compartido
0
Descargas
18
Comentarios
1
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Curso de Python

  1. 1. Curso de Python Washington Bastidas Santos Ing. en Sistemas – Técnico SIG CNEL EP
  2. 2. Python Interpretado Tipado dinámico Fuertemente tipado Multiplataforma Orientado a objetos
  3. 3. Interpretado Código intermedio generando archivos .pyc
  4. 4. No permite tratar a una variable como si fuera de un tipo distinto al que tiene Fuertemente Tipado
  5. 5. Multiplataforma
  6. 6. Paradigmas de Programación Imperativa Orientado a Objetos Funcional Orientada a aspectos
  7. 7. Creador • Guido van Rossum • Benevolent Dictator for Life de Python • Creo el lenguaje de programación mientras pasaba la Navidad.
  8. 8. Por qué Python?
  9. 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. 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.
  11. 11. Eclipse + PyDev
  12. 12. IDLE
  13. 13. Tipo de Datos, Variables y Funciones
  14. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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

×