SlideShare a Scribd company logo
1 of 17
Download to read offline
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: %snNumber: %snString: %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.     Blablabla
4. elif number == 8:
5.     bleblebleble
6. else:
7.     blibliblibli
8. else:
9.     blebleble
10.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 comentario
    def 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

More Related Content

What's hot

What's hot (19)

Calse 3 JAVA 2012
Calse 3 JAVA 2012Calse 3 JAVA 2012
Calse 3 JAVA 2012
 
Python (ejercicios)
Python (ejercicios)Python (ejercicios)
Python (ejercicios)
 
Programacion Netlogo
Programacion NetlogoProgramacion Netlogo
Programacion Netlogo
 
Palabras reservadas en java y tipos de datos en java
Palabras reservadas en java y tipos de datos en javaPalabras reservadas en java y tipos de datos en java
Palabras reservadas en java y tipos de datos en java
 
Introducción a scala
Introducción a scalaIntroducción a scala
Introducción a scala
 
Comandos de java
Comandos de javaComandos de java
Comandos de java
 
Clase 4 JAVA 2012
Clase 4 JAVA 2012Clase 4 JAVA 2012
Clase 4 JAVA 2012
 
Semana 1 Estructuras de Datos en Java
Semana 1   Estructuras de Datos en JavaSemana 1   Estructuras de Datos en Java
Semana 1 Estructuras de Datos en Java
 
Tutorial de php
Tutorial de phpTutorial de php
Tutorial de php
 
Python básico I
Python básico IPython básico I
Python básico I
 
Python básico II
Python básico IIPython básico II
Python básico II
 
Python y la POO, en una clase, UNNe-Corrientes
Python y la POO, en una clase, UNNe-CorrientesPython y la POO, en una clase, UNNe-Corrientes
Python y la POO, en una clase, UNNe-Corrientes
 
Python 4
Python 4Python 4
Python 4
 
Clase 4/4 Curso Introducción a Python 2012
Clase 4/4 Curso Introducción a Python 2012Clase 4/4 Curso Introducción a Python 2012
Clase 4/4 Curso Introducción a Python 2012
 
Semana 6 Módulos en Python Entrega 2
Semana 6   Módulos en Python Entrega 2Semana 6   Módulos en Python Entrega 2
Semana 6 Módulos en Python Entrega 2
 
Introducción a Scala
Introducción a ScalaIntroducción a Scala
Introducción a Scala
 
Clase 1 Curso Introducción a Python 2012
Clase 1 Curso Introducción a Python 2012Clase 1 Curso Introducción a Python 2012
Clase 1 Curso Introducción a Python 2012
 
Semana 1 Estructuras de Control en Java
Semana 1   Estructuras de Control en JavaSemana 1   Estructuras de Control en Java
Semana 1 Estructuras de Control en Java
 
Python06
Python06Python06
Python06
 

Viewers also liked

High school e portfolio
High school e portfolioHigh school e portfolio
High school e portfolio
gokicchi
 
Derechos124e55
Derechos124e55Derechos124e55
Derechos124e55
Alan Gomez
 
Awkward - San Cisco
Awkward - San CiscoAwkward - San Cisco
Awkward - San Cisco
KidVox
 
Cmgt 445 entire course
Cmgt 445 entire courseCmgt 445 entire course
Cmgt 445 entire course
youvsignedio
 
12.01.2010 revelation
12.01.2010 revelation12.01.2010 revelation
12.01.2010 revelation
Laura Adams
 
Poo interacao entre_objetos_blue_j_ii
Poo interacao entre_objetos_blue_j_iiPoo interacao entre_objetos_blue_j_ii
Poo interacao entre_objetos_blue_j_ii
samuelthiago
 
чуй гласа на дивите животни
чуй гласа на дивите животничуй гласа на дивите животни
чуй гласа на дивите животни
guesteab4c9
 

Viewers also liked (20)

Escuelas generadoras de vida comunitaria
Escuelas generadoras de vida comunitariaEscuelas generadoras de vida comunitaria
Escuelas generadoras de vida comunitaria
 
High school e portfolio
High school e portfolioHigh school e portfolio
High school e portfolio
 
Derechos124e55
Derechos124e55Derechos124e55
Derechos124e55
 
Awkward - San Cisco
Awkward - San CiscoAwkward - San Cisco
Awkward - San Cisco
 
11.11.10 romans
11.11.10 romans11.11.10 romans
11.11.10 romans
 
Calidad esta en el proceso
Calidad esta en el procesoCalidad esta en el proceso
Calidad esta en el proceso
 
Cmgt 445 entire course
Cmgt 445 entire courseCmgt 445 entire course
Cmgt 445 entire course
 
Internet del futuro
Internet del futuroInternet del futuro
Internet del futuro
 
Qué hago....-
 Qué hago....- Qué hago....-
Qué hago....-
 
Estrategia de motivacion opd iv
Estrategia de motivacion opd ivEstrategia de motivacion opd iv
Estrategia de motivacion opd iv
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 6
Implementação de Aplicações Móveis e Jogos com Python - Aula 6Implementação de Aplicações Móveis e Jogos com Python - Aula 6
Implementação de Aplicações Móveis e Jogos com Python - Aula 6
 
Doc1
Doc1Doc1
Doc1
 
Positively
PositivelyPositively
Positively
 
Evaluation Question 4
Evaluation Question 4Evaluation Question 4
Evaluation Question 4
 
Современные формы доступа к электронным информационным ресурсам в библиотеках
Современные формы доступа к электронным информационным ресурсам в библиотекахСовременные формы доступа к электронным информационным ресурсам в библиотеках
Современные формы доступа к электронным информационным ресурсам в библиотеках
 
12.01.2010 revelation
12.01.2010 revelation12.01.2010 revelation
12.01.2010 revelation
 
Ein_Platz_genannt_Erde_730
Ein_Platz_genannt_Erde_730Ein_Platz_genannt_Erde_730
Ein_Platz_genannt_Erde_730
 
Poo interacao entre_objetos_blue_j_ii
Poo interacao entre_objetos_blue_j_iiPoo interacao entre_objetos_blue_j_ii
Poo interacao entre_objetos_blue_j_ii
 
Cap2b
Cap2bCap2b
Cap2b
 
чуй гласа на дивите животни
чуй гласа на дивите животничуй гласа на дивите животни
чуй гласа на дивите животни
 

Similar to Desarrollar un módulo para Visuse

JAVA_BASICO_modo_consola_introduccion.pptx
JAVA_BASICO_modo_consola_introduccion.pptxJAVA_BASICO_modo_consola_introduccion.pptx
JAVA_BASICO_modo_consola_introduccion.pptx
FamiliaAyluardo
 

Similar to Desarrollar un módulo para Visuse (20)

Presentacion Python
Presentacion  Python Presentacion  Python
Presentacion Python
 
Aprendizaje de Lenguaje de Programación Python
Aprendizaje de Lenguaje de Programación PythonAprendizaje de Lenguaje de Programación Python
Aprendizaje de Lenguaje de Programación Python
 
Investigacion de Python.pptx
Investigacion de Python.pptxInvestigacion de Python.pptx
Investigacion de Python.pptx
 
Conceptos básicos de un lenguaje de programación
Conceptos básicos de un lenguaje de programaciónConceptos básicos de un lenguaje de programación
Conceptos básicos de un lenguaje de programación
 
Lenguaje de Alto Nivel (I Bimestre)
Lenguaje de Alto Nivel (I Bimestre)Lenguaje de Alto Nivel (I Bimestre)
Lenguaje de Alto Nivel (I Bimestre)
 
Presentacion Java
Presentacion JavaPresentacion Java
Presentacion Java
 
Introducción a la Programaciónen Java
Introducción a la Programaciónen JavaIntroducción a la Programaciónen Java
Introducción a la Programaciónen Java
 
Trabajo de desarrollo de software(java)yanina y yenny
Trabajo de desarrollo de software(java)yanina y yennyTrabajo de desarrollo de software(java)yanina y yenny
Trabajo de desarrollo de software(java)yanina y yenny
 
Shell script
Shell scriptShell script
Shell script
 
Java
JavaJava
Java
 
Fundamentos de Java / 15 consejos prácticos sobre Java que cambiarán la for...
Fundamentos de Java /   15 consejos prácticos sobre Java que cambiarán la for...Fundamentos de Java /   15 consejos prácticos sobre Java que cambiarán la for...
Fundamentos de Java / 15 consejos prácticos sobre Java que cambiarán la for...
 
Software para el aprendizaje de la programación EC 2. Presentación 3: Python
 Software para el aprendizaje de la programación EC 2. Presentación 3: Python Software para el aprendizaje de la programación EC 2. Presentación 3: Python
Software para el aprendizaje de la programación EC 2. Presentación 3: Python
 
Presentación appy/pod
Presentación appy/podPresentación appy/pod
Presentación appy/pod
 
TIPOS DE DATOS MATLAB
TIPOS DE DATOS MATLABTIPOS DE DATOS MATLAB
TIPOS DE DATOS MATLAB
 
Taller ruby
Taller rubyTaller ruby
Taller ruby
 
Taller Python
Taller PythonTaller Python
Taller Python
 
Lenguaje de Alto Nivel
Lenguaje de Alto NivelLenguaje de Alto Nivel
Lenguaje de Alto Nivel
 
Php basico
Php basicoPhp basico
Php basico
 
JAVA_BASICO_modo_consola_introduccion.pptx
JAVA_BASICO_modo_consola_introduccion.pptxJAVA_BASICO_modo_consola_introduccion.pptx
JAVA_BASICO_modo_consola_introduccion.pptx
 
Manual de Java
Manual de JavaManual de Java
Manual de Java
 

More from Jose Luis Lopez Pino

Firefox Vs. Chromium: Guerra de los navegadores libres
Firefox Vs. Chromium: Guerra de los navegadores libresFirefox Vs. Chromium: Guerra de los navegadores libres
Firefox Vs. Chromium: Guerra de los navegadores libres
Jose Luis Lopez Pino
 
Presentacion Proyecto Fin De Carrera
Presentacion Proyecto Fin De CarreraPresentacion Proyecto Fin De Carrera
Presentacion Proyecto Fin De Carrera
Jose Luis Lopez Pino
 

More from Jose Luis Lopez Pino (20)

Lessons learnt from applying PyData to GetYourGuide marketing
Lessons learnt from applying PyData to GetYourGuide marketingLessons learnt from applying PyData to GetYourGuide marketing
Lessons learnt from applying PyData to GetYourGuide marketing
 
BDS14 Big Data Analytics to the masses
BDS14 Big Data Analytics to the massesBDS14 Big Data Analytics to the masses
BDS14 Big Data Analytics to the masses
 
Massive scale analytics with Stratosphere using R
Massive scale analytics with Stratosphere using RMassive scale analytics with Stratosphere using R
Massive scale analytics with Stratosphere using R
 
Metadata in Business Intelligence
Metadata in Business IntelligenceMetadata in Business Intelligence
Metadata in Business Intelligence
 
Scheduling and sharing resources in Data Clusters
Scheduling and sharing resources in Data ClustersScheduling and sharing resources in Data Clusters
Scheduling and sharing resources in Data Clusters
 
Distributed streaming k means
Distributed streaming k meansDistributed streaming k means
Distributed streaming k means
 
High level languages for Big Data Analytics (Report)
High level languages for Big Data Analytics (Report)High level languages for Big Data Analytics (Report)
High level languages for Big Data Analytics (Report)
 
High-level languages for Big Data Analytics (Presentation)
High-level languages for Big Data Analytics (Presentation)High-level languages for Big Data Analytics (Presentation)
High-level languages for Big Data Analytics (Presentation)
 
RDFa: introduction, comparison with microdata and microformats and how to use it
RDFa: introduction, comparison with microdata and microformats and how to use itRDFa: introduction, comparison with microdata and microformats and how to use it
RDFa: introduction, comparison with microdata and microformats and how to use it
 
RDFa: introduction, comparison with microdata and microformats and how to use it
RDFa: introduction, comparison with microdata and microformats and how to use itRDFa: introduction, comparison with microdata and microformats and how to use it
RDFa: introduction, comparison with microdata and microformats and how to use it
 
Firefox Vs. Chromium: Guerra de los navegadores libres
Firefox Vs. Chromium: Guerra de los navegadores libresFirefox Vs. Chromium: Guerra de los navegadores libres
Firefox Vs. Chromium: Guerra de los navegadores libres
 
Esteganografia
EsteganografiaEsteganografia
Esteganografia
 
Presentacion Proyecto Fin De Carrera
Presentacion Proyecto Fin De CarreraPresentacion Proyecto Fin De Carrera
Presentacion Proyecto Fin De Carrera
 
Memoria Proyecto Fin de Carrera
Memoria Proyecto Fin de CarreraMemoria Proyecto Fin de Carrera
Memoria Proyecto Fin de Carrera
 
Presentacion CUSL nacional
Presentacion CUSL nacionalPresentacion CUSL nacional
Presentacion CUSL nacional
 
Resumen del proyecto Visuse
Resumen del proyecto VisuseResumen del proyecto Visuse
Resumen del proyecto Visuse
 
Presentacion cusl granadino
Presentacion cusl granadinoPresentacion cusl granadino
Presentacion cusl granadino
 
Como hacer un módulo para Visuse
Como hacer un módulo para VisuseComo hacer un módulo para Visuse
Como hacer un módulo para Visuse
 
Visuse: resumen del I Hackathon
Visuse: resumen del I HackathonVisuse: resumen del I Hackathon
Visuse: resumen del I Hackathon
 
Presentacion Visuse para el Hachathón
Presentacion Visuse para el HachathónPresentacion Visuse para el Hachathón
Presentacion Visuse para el Hachathón
 

Recently uploaded

Chat GPT para la educación Latinoamerica
Chat GPT para la educación LatinoamericaChat GPT para la educación Latinoamerica
Chat GPT para la educación Latinoamerica
EdwinGarca59
 

Recently uploaded (20)

10°8 - Avances tecnologicos del siglo XXI 10-8
10°8 - Avances tecnologicos del siglo XXI 10-810°8 - Avances tecnologicos del siglo XXI 10-8
10°8 - Avances tecnologicos del siglo XXI 10-8
 
Tipos de Datos de Microsoft Access-JOEL GARCIA.pptx
Tipos de Datos de Microsoft Access-JOEL GARCIA.pptxTipos de Datos de Microsoft Access-JOEL GARCIA.pptx
Tipos de Datos de Microsoft Access-JOEL GARCIA.pptx
 
Introduccion-a-la-electronica-industrial.pptx
Introduccion-a-la-electronica-industrial.pptxIntroduccion-a-la-electronica-industrial.pptx
Introduccion-a-la-electronica-industrial.pptx
 
AVANCES TECNOLOGICOS DEL SIGLO XXI. 10-08..pptx
AVANCES TECNOLOGICOS  DEL SIGLO XXI. 10-08..pptxAVANCES TECNOLOGICOS  DEL SIGLO XXI. 10-08..pptx
AVANCES TECNOLOGICOS DEL SIGLO XXI. 10-08..pptx
 
Imágenes digitales: Calidad de la información
Imágenes digitales: Calidad de la informaciónImágenes digitales: Calidad de la información
Imágenes digitales: Calidad de la información
 
herramientas web para estudiantes interesados en el tema
herramientas web para estudiantes interesados en el temaherramientas web para estudiantes interesados en el tema
herramientas web para estudiantes interesados en el tema
 
Tipos de datos en Microsoft Access de Base de Datos
Tipos de datos en Microsoft Access de Base de DatosTipos de datos en Microsoft Access de Base de Datos
Tipos de datos en Microsoft Access de Base de Datos
 
Función del analizador léxico.pdf presentacion
Función del analizador léxico.pdf presentacionFunción del analizador léxico.pdf presentacion
Función del analizador léxico.pdf presentacion
 
Electricidad Libro compendio de temas estudiados.docx
Electricidad Libro compendio de temas estudiados.docxElectricidad Libro compendio de temas estudiados.docx
Electricidad Libro compendio de temas estudiados.docx
 
VelderrainPerez_Paola_M1C1G63-097.pptx. LAS TiC
VelderrainPerez_Paola_M1C1G63-097.pptx. LAS TiCVelderrainPerez_Paola_M1C1G63-097.pptx. LAS TiC
VelderrainPerez_Paola_M1C1G63-097.pptx. LAS TiC
 
Uso de las TIC en la vida cotidiana .
Uso de las TIC en la vida cotidiana       .Uso de las TIC en la vida cotidiana       .
Uso de las TIC en la vida cotidiana .
 
PRÁCTICA Nº 4: “Análisis de secuencias del ADN con el software BioEdit y uso ...
PRÁCTICA Nº 4: “Análisis de secuencias del ADN con el software BioEdit y uso ...PRÁCTICA Nº 4: “Análisis de secuencias del ADN con el software BioEdit y uso ...
PRÁCTICA Nº 4: “Análisis de secuencias del ADN con el software BioEdit y uso ...
 
Desarrollo del Dominio del Internet - Estrada
Desarrollo del Dominio del Internet - EstradaDesarrollo del Dominio del Internet - Estrada
Desarrollo del Dominio del Internet - Estrada
 
CARPETA PEDAGOGICA DE TOE.docbbbbbbbbbbbx
CARPETA PEDAGOGICA DE TOE.docbbbbbbbbbbbxCARPETA PEDAGOGICA DE TOE.docbbbbbbbbbbbx
CARPETA PEDAGOGICA DE TOE.docbbbbbbbbbbbx
 
Redes Neuronales profundas convolucionales CNN ́s-1.pdf
Redes Neuronales profundas convolucionales CNN ́s-1.pdfRedes Neuronales profundas convolucionales CNN ́s-1.pdf
Redes Neuronales profundas convolucionales CNN ́s-1.pdf
 
Navegadores de internet - Nuevas Tecnologías de la Información y la Comunicación
Navegadores de internet - Nuevas Tecnologías de la Información y la ComunicaciónNavegadores de internet - Nuevas Tecnologías de la Información y la Comunicación
Navegadores de internet - Nuevas Tecnologías de la Información y la Comunicación
 
JORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUAL
JORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUALJORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUAL
JORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUAL
 
Ejercicio 1 periodo 2 de Tecnología 2024
Ejercicio 1 periodo 2 de Tecnología 2024Ejercicio 1 periodo 2 de Tecnología 2024
Ejercicio 1 periodo 2 de Tecnología 2024
 
Chat GPT para la educación Latinoamerica
Chat GPT para la educación LatinoamericaChat GPT para la educación Latinoamerica
Chat GPT para la educación Latinoamerica
 
De Olmos Santiago_Dolores _ M1S3AI6.pptx
De Olmos Santiago_Dolores _ M1S3AI6.pptxDe Olmos Santiago_Dolores _ M1S3AI6.pptx
De Olmos Santiago_Dolores _ M1S3AI6.pptx
 

Desarrollar un módulo para Visuse

  • 1. Desarrollar un módulo para Visuse José Luis López Pino http://visuse.wordpress.com
  • 2. 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.
  • 3. 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.
  • 4. 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 -=.
  • 5. 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.
  • 6. 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: %snNumber: %snString: %s" % (myclass.name, 3, 3 * "-")  También podemos hacer sustituciones con un diccionario:  >>> print "This %(verb)s a %(noun)s." % {"noun": "test", "verb": "is"}
  • 7. Python – Estructuras de control 1.for number in range(10): 2. if number in (3, 4, 7, 9): 3. Blablabla 4. elif number == 8: 5. bleblebleble 6. else: 7. blibliblibli 8. else: 9. blebleble 10.while loquesea == 1: 11. print "Fantástico"
  • 8. 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 comentario def soy_una_funcion(lista, entero=2, cadena='por defecto'): lista.append(cadena)
  • 9. 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)
  • 10. 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."
  • 11. Python – Importar  Importar una biblioteca:  import libreria  Importar una función concreta:  from libreria import funcion
  • 12. ¿Qué necesitamos para trabajar?  Geany: un editor para Python.  Subversion: sistema de control de versiones.  Python ~2.6.2.  Elegir un buscador.
  • 13. Geany  IDE ligero o editor con las funciones básicas de un IDE.  Multiplataforma.  http://www.geany.org
  • 14. 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
  • 15. 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.
  • 16. Referencias  Python in 10 minutes.  Dive into Python.  Python para todos.
  • 17. Eso es todo  ¿Alguna pregunta? Imagen de Discoveryschool.com