Post on 27-Jun-2015
description
Desarrollar un módulo para Visuse
José Luis López Pino
http://visuse.wordpress.com
Python - Propiedades
Es un lenguaje de alto nivel. Es un lenguaje interpretado (se ejecuta con un
intérprete, no se compila). Es multiparadigma:
Es orientado a objetos. Es funcional.
Es fácil de aprender. Es libre. Es portable.
Python - Propiedades
Es dinámicamente tipado (una variable puede tomar valores de distintos tipos).
Es fuertemente tipado (una variable no se puede tratar como si fuese de otro tipo).
Es implícitamente tipado (no hay que declarar las variables que usamos).
Distingue entre mayúsculas y minúsculas.
Python - Sintaxis
Las sentencias no necesitan carácter de terminación.
Los bloques son especificados por indentación. Los comentarios comienzan con # . Asignamos con =. Comprobamos la igualdad con ==. Incrementamos/decrementamos con += y -=.
Python – Estructuras de datos
Tenemos listas, tuplas y diccionarios. Las listas de comportan como vectores de una
dimensión. Los vectores pueden ser de cualquier tipo,
incluso puedes mezclar tipos. El primer elemento es 0 y -1 el último. Una variable puede apuntar a una función. El operador : sirve para acceder a rangos de un
vector.
Python – Cadenas de texto
Se pueden usar con comillas dobles o simples. Para las cadenas multilinea podemos usamos
tres comillas (simples o dobles). Podemos meter valores dentro de una cadena
utilizando el operador %: >>>print "Name: %s\nNumber: %s\nString: %s" %
(myclass.name, 3, 3 * "-")
También podemos hacer sustituciones con un diccionario: >>> print "This %(verb)s a %(noun)s." % {"noun":
"test", "verb": "is"}
Python – Estructuras de control
1.for number in range(10):2. if number in (3, 4, 7, 9):3. Blablabla4. elif number == 8:5. bleblebleble6. else:7. blibliblibli8. else:9. blebleble10.while loquesea == 1:11. print "Fantástico"
Python - Funciones
Se declaran con “def” keyword. Los parámetros se pasan por referencia. Sin embargo, los tipos inmutables (tuplas,
enteros, cadenas, etc) no pueden ser cambiados.
Podemos especificar parámetros opcionales asignándoles un valor por defecto.
# Soy un comentariodef soy_una_funcion(lista, entero=2, cadena='por defecto'): lista.append(cadena)
Python - Clases
Admite herencia múltiple.
class MyClass: common = 10 def __init__(self): self.myvariable = 3 def myfunction(self, arg1, arg2): return self.myvariable
# This is the class instantiation>>> classinstance = MyClass()>>> classinstance.myfunction(1, 2)
Python - Excepciones
def some_function(): try: # Division by zero raises an exception 10 / 0 except ZeroDivisionError: print "Oops, invalid." else: # Exception didn't occur, we're good. pass finally: # This is executed after the code block is run # and all exceptions have been handled, even # if a new exception is raised while handling. print "We're done with that."
Python – Importar
Importar una biblioteca: import libreria
Importar una función concreta: from libreria import funcion
¿Qué necesitamos para trabajar?
Geany: un editor para Python. Subversion: sistema de control de versiones. Python ~2.6.2. Elegir un buscador.
Geany
IDE ligero o editor con las funciones básicas de un IDE.
Multiplataforma. http://www.geany.org
Empezamos
Instalamos Python Ubuntu: sudo apt-get install python2.6 Windows: descargar de python.org la 2.6.4.
Alta en la forja de rediris. Descargamos el proyecto:
svn checkout https://forja.rediris.es/svn/cusl4-visuse
Los módulos los tenemos en trunk/visuse/modulos Añadimos la clase a classes.py Escribimos el módulo en Modulo_Nombre.py
Contenido del módulo
Obtenemos los datos del buscador (usando XML, JSON o lo que corresponda).
Creamos una instancia de la clase por cada resultado.
Creamos una lista de resultados. Mostramos la lista en pantalla para comprobar
que no hay problemas.
Referencias
Python in 10 minutes. Dive into Python. Python para todos.
Eso es todo
¿Alguna pregunta?
Imagen de Discoveryschool.com