#MartesLibres



Taller introducción a
        Python



    Taller de introducción a Pyth
#MartesLibres
Taller introducción a Python
 Víctor Ramírez       Sergio Soto
 @virako              @sototan




           Taller de introducción a Pyth
#MartesLibres
                        Índice
●   Historia y otra información
●   Características del lenguaje: sintaxis y tipos de datos
●   Algunos módulos interesantes: argparser, logging,...
●   Ejemplo de pygtk + glade
●   Un poco de juego:
    –   PyGame
    –   Panda 3D
    –   OpenCV




              Taller de introducción a Pyth
#MartesLibres
              Historia de Python
●   Creado a finales de los 80 por Guido
    van Rossum
●   El nombre viene de los humoristas
    británicos Monty Python
●   Liberado con licencia Python Software
    Foundation License




                 Taller de introducción a Pyth
#MartesLibres
    ¿Qué está hecho en Python?
●   Dropbox
●   Instagram (Django)
●   Quora
●   Muy utilizado en Ámbito científico
●   ...


    Más en:
    http://www.python.org/about/success/


                 Taller de introducción a Pyth
#MartesLibres
Filosofía pythonica




  Taller de introducción a Pyth
#MartesLibres
Filosofía pythonica




  Taller de introducción a Pyth
#MartesLibres
         Algunas características
●   Lenguaje interpretado (script)

●   Paradigma multiprogramación (orientada a objetos,
    programación imperativa y programación funcional)

●   Administración de memoria con conteo de referencias:
    se cuentan los enlaces a un objeto. PROBLEMA:
    referencias cíclicas.




                 Taller de introducción a Pyth
#MartesLibres
        Algunas características
- Tipado dinámico: la misma variable puede contener
valores de diferentes tipos. Se denomina duck typing.


  "Cuando veo un ave que camina como un pato,
 nada como un pato y suena como un pato, a esa
            ave yo la llamo un pato."




               Taller de introducción a Pyth
#MartesLibres
         Algunas características
●   Indentación obligatoria:




                 Taller de introducción a Pyth
#MartesLibres
         Algunas características
●   Funciones built-in




                Taller de introducción a Pyth
#MartesLibres
                   Sintaxis de Python
●   Condicional: if/elif/else




                        Taller de introducción a Pyth
#MartesLibres
              Sintaxis de Python
●   Bucle while




                  Taller de introducción a Pyth
#MartesLibres
                Sintaxis de Python
●   Bucle for




                 Taller de introducción a Pyth
#MartesLibres
               Sintaxis de Python
●   Creación de funciones




                   Taller de introducción a Pyth
#MartesLibres
    Tipos de datos en Python
Tipos básicos: numéricos
●




                Taller de introducción a Pyth
#MartesLibres
    Tipos de datos en Python
Tipos básicos: cadenas
●




                Taller de introducción a Pyth
#MartesLibres
    Tipos de datos en Python
Tipos básicos: lógicos
●




                 Taller de introducción a Pyth
#MartesLibres
       Tipos de datos en Python
Operaciones aritméticas:
●

 ● Suma +

 ● Resta    -
 ● Multiplicación  *
 ● División   %
 ● <, >, ==, <=, >==, !=



●   Operaciones sobre cadenas:
    ● Concatenar

    ● A mayúsculas/minúsculas

    ● Longitud

    ● …



●   Operaciones sobre lógicos:
    ● not , and, or, ...




                    Taller de introducción a Pyth
#MartesLibres
Tipos de datos en Python




     Taller de introducción a Pyth
#MartesLibres
     Tipos de datos en Python
●   Tuplas: ( )




            Taller de introducción a Pyth
#MartesLibres
     Tipos de datos en Python
●   Listas: [ ]




             Taller de introducción a Pyth
#MartesLibres
    Tipos de datos en Python
Diccionarios: { }
●




         Taller de introducción a Pyth
#MartesLibres
    Tipos de datos en Python
Tipos definidos por el usuario: class
●




         Taller de introducción a Pyth
#MartesLibres
            Utilidades de Python
●   PyGtk y Glade: construcción de interfaces gráficas

●   PEP 8: una guía de estilo

●   Librerías para desarrollar juegos:
    ● PyGame

    ● Panda 3D



●   Procesamiento de imágenes:
     ● OpenCV



●   RunSnakeRun: una herramienta para hacer profiling


                 Taller de introducción a Pyth
#MartesLibres
                          Pygtk y Glade

GTK (GIMP Toolkit ) son bibliotectas multiplataforma para desarrollar interfaces gráficas
de usuario. Principalmente para los entornos gráficos GNOME, XFCE y ROX aunque
también se puede usar en el escritorio de Windows, Mac OS y otros.

Existen librerías para usar GTK en con un gran número de
lenguajes como C, C++, C#, Java, Ruby, Perl, PHP o Python.




                         Taller de introducción a Pyth
#MartesLibres
                        Pygtk y Glade

Glade (o Glade Interface Designer) es una herramienta
de desarrollo visual de interfaces gráficas mediante GTK/GNOME.

GtkBuilder es un formato XML que Glade usa para almacenar los elementos de las
interfaces diseñadas. Estos archivos pueden emplearse para construirla en tiempo de
ejecución mediante el objeto GtkBuilder de GTK+. GladeXML era el formato que se usaba
en conjunto con la biblioteca libglade (ambos obsoletos en favor de GtkBuilder).

Documentación y web del proyecto:

●   http://developer.gnome.org/gladeui/3.6/

●   http://glade.gnome.org

                        Taller de introducción a Pyth
#MartesLibres
Pygtk y Glade




Taller de introducción a Pyth
#MartesLibres
                                     PEP 8
Es una guía de estilo para python:

          http://www.python.org/dev/peps/pep-0008/
Algunas de estas normas más interesantes:
● False: tuple = (); list = []; dic = {}; str = “”; int = 0; float = 0.0



●   YES: if seq:                if boolean:      if isinstanceof(obj, int):
    NO: if len(seq):            if boolean == True: if type(obj) == type(1):

●   Límite de línea de 79 caracteres.

* Python Enhancement Proposal


                          Taller de introducción a Pyth
#MartesLibres
         PyGame


●   Instalación:
               ●   sudo apt-get install python-pygame
●   Enlace a la documentación:
                      http://www.pygame.org/docs/
●   Tutoriales:
                  http://www.pygame.org/wiki/tutorials
●   Ejemplo: Pixwar by danigm. Código:
    http://git.danigm.net/gitphp/index.php?p=pixwar.git&a=summary



                   Taller de introducción a Pyth
#MartesLibres
                               Panda 3D

Es un motor de videojuegos que incluye
gráficos, audio, E/S, detección de colisiones,
así como otras características relevantes
para la creación de juegos en 3D.


http://www.panda3d.org/




                         Taller de introducción a Pyth
#MartesLibres
                       Panda 3D
●   Instalación:
     http://www.panda3d.org/download.php?sdk&version=1.8.0

●   Enlace a la documentación:
     http://www.panda3d.org/reference/1.8.0/python/annotated

●   Manual:
      http://www.panda3d.org/manual/index.php/Main_Page

●   Ejemplos: Roaming Ralph. Código: viene por defecto cuando
    instalamos panda3d


                    Taller de introducción a Pyth
#MartesLibres
  Panda 3D




Taller de introducción a Pyth
#MartesLibres
    OpenCV
   Biblioteca de visión artificial que surgió en 1999. Ha sido
   utilizado en aplicaciones para detectar movimiento hasta
                                    reconocimiento de objetos.

 Proporciona un entorno de desarrollo fácil de utilizar y muy
       eficiente dado que ha sido programado en C y C++.




                               http://opencv.org/
           http://opencv.willowgarage.com/wiki/




Taller de introducción a Pyth
#MartesLibres
                                Open CV

●   Instalación:
                   ●   sudo apt-get install python-opencv

●   Documentación:
                http://docs.opencv.org/index.html

●   Ejemplo: Rocamgo by Victor Ramirez y David Medina (PFC) +
    colaboradores. Código:
                https://github.com/Virako/Rocamgo-ng




                           Taller de introducción a Pyth
#MartesLibres
                  RunSnakeRun

Herramienta gráfica para lectura sencilla de profiling (análisis
de rendimiento del software).

Para instalar:

         sudo apt-get install runsnakerun




                 Taller de introducción a Pyth
#MartesLibres
RunSnakeRun




Taller de introducción a Pyth
#MartesLibres

      Gracias por asistir

Todo el material (presentación y código) se colgará
       próximamente en la web de SUGUS:

          http://sugus.eii.us.es


             Taller de introducción a Pyth
#MartesLibres
   ¿Dudas?




Taller de introducción a Pyth

Transparencias taller Python

  • 1.
    #MartesLibres Taller introducción a Python Taller de introducción a Pyth
  • 2.
    #MartesLibres Taller introducción aPython Víctor Ramírez Sergio Soto @virako @sototan Taller de introducción a Pyth
  • 3.
    #MartesLibres Índice ● Historia y otra información ● Características del lenguaje: sintaxis y tipos de datos ● Algunos módulos interesantes: argparser, logging,... ● Ejemplo de pygtk + glade ● Un poco de juego: – PyGame – Panda 3D – OpenCV Taller de introducción a Pyth
  • 4.
    #MartesLibres Historia de Python ● Creado a finales de los 80 por Guido van Rossum ● El nombre viene de los humoristas británicos Monty Python ● Liberado con licencia Python Software Foundation License Taller de introducción a Pyth
  • 5.
    #MartesLibres ¿Qué está hecho en Python? ● Dropbox ● Instagram (Django) ● Quora ● Muy utilizado en Ámbito científico ● ... Más en: http://www.python.org/about/success/ Taller de introducción a Pyth
  • 6.
    #MartesLibres Filosofía pythonica Taller de introducción a Pyth
  • 7.
    #MartesLibres Filosofía pythonica Taller de introducción a Pyth
  • 8.
    #MartesLibres Algunas características ● Lenguaje interpretado (script) ● Paradigma multiprogramación (orientada a objetos, programación imperativa y programación funcional) ● Administración de memoria con conteo de referencias: se cuentan los enlaces a un objeto. PROBLEMA: referencias cíclicas. Taller de introducción a Pyth
  • 9.
    #MartesLibres Algunas características - Tipado dinámico: la misma variable puede contener valores de diferentes tipos. Se denomina duck typing. "Cuando veo un ave que camina como un pato, nada como un pato y suena como un pato, a esa ave yo la llamo un pato." Taller de introducción a Pyth
  • 10.
    #MartesLibres Algunas características ● Indentación obligatoria: Taller de introducción a Pyth
  • 11.
    #MartesLibres Algunas características ● Funciones built-in Taller de introducción a Pyth
  • 12.
    #MartesLibres Sintaxis de Python ● Condicional: if/elif/else Taller de introducción a Pyth
  • 13.
    #MartesLibres Sintaxis de Python ● Bucle while Taller de introducción a Pyth
  • 14.
    #MartesLibres Sintaxis de Python ● Bucle for Taller de introducción a Pyth
  • 15.
    #MartesLibres Sintaxis de Python ● Creación de funciones Taller de introducción a Pyth
  • 16.
    #MartesLibres Tipos de datos en Python Tipos básicos: numéricos ● Taller de introducción a Pyth
  • 17.
    #MartesLibres Tipos de datos en Python Tipos básicos: cadenas ● Taller de introducción a Pyth
  • 18.
    #MartesLibres Tipos de datos en Python Tipos básicos: lógicos ● Taller de introducción a Pyth
  • 19.
    #MartesLibres Tipos de datos en Python Operaciones aritméticas: ● ● Suma + ● Resta - ● Multiplicación * ● División % ● <, >, ==, <=, >==, != ● Operaciones sobre cadenas: ● Concatenar ● A mayúsculas/minúsculas ● Longitud ● … ● Operaciones sobre lógicos: ● not , and, or, ... Taller de introducción a Pyth
  • 20.
    #MartesLibres Tipos de datosen Python Taller de introducción a Pyth
  • 21.
    #MartesLibres Tipos de datos en Python ● Tuplas: ( ) Taller de introducción a Pyth
  • 22.
    #MartesLibres Tipos de datos en Python ● Listas: [ ] Taller de introducción a Pyth
  • 23.
    #MartesLibres Tipos de datos en Python Diccionarios: { } ● Taller de introducción a Pyth
  • 24.
    #MartesLibres Tipos de datos en Python Tipos definidos por el usuario: class ● Taller de introducción a Pyth
  • 25.
    #MartesLibres Utilidades de Python ● PyGtk y Glade: construcción de interfaces gráficas ● PEP 8: una guía de estilo ● Librerías para desarrollar juegos: ● PyGame ● Panda 3D ● Procesamiento de imágenes: ● OpenCV ● RunSnakeRun: una herramienta para hacer profiling Taller de introducción a Pyth
  • 26.
    #MartesLibres Pygtk y Glade GTK (GIMP Toolkit ) son bibliotectas multiplataforma para desarrollar interfaces gráficas de usuario. Principalmente para los entornos gráficos GNOME, XFCE y ROX aunque también se puede usar en el escritorio de Windows, Mac OS y otros. Existen librerías para usar GTK en con un gran número de lenguajes como C, C++, C#, Java, Ruby, Perl, PHP o Python. Taller de introducción a Pyth
  • 27.
    #MartesLibres Pygtk y Glade Glade (o Glade Interface Designer) es una herramienta de desarrollo visual de interfaces gráficas mediante GTK/GNOME. GtkBuilder es un formato XML que Glade usa para almacenar los elementos de las interfaces diseñadas. Estos archivos pueden emplearse para construirla en tiempo de ejecución mediante el objeto GtkBuilder de GTK+. GladeXML era el formato que se usaba en conjunto con la biblioteca libglade (ambos obsoletos en favor de GtkBuilder). Documentación y web del proyecto: ● http://developer.gnome.org/gladeui/3.6/ ● http://glade.gnome.org Taller de introducción a Pyth
  • 28.
    #MartesLibres Pygtk y Glade Tallerde introducción a Pyth
  • 29.
    #MartesLibres PEP 8 Es una guía de estilo para python: http://www.python.org/dev/peps/pep-0008/ Algunas de estas normas más interesantes: ● False: tuple = (); list = []; dic = {}; str = “”; int = 0; float = 0.0 ● YES: if seq: if boolean: if isinstanceof(obj, int): NO: if len(seq): if boolean == True: if type(obj) == type(1): ● Límite de línea de 79 caracteres. * Python Enhancement Proposal Taller de introducción a Pyth
  • 30.
    #MartesLibres PyGame ● Instalación: ● sudo apt-get install python-pygame ● Enlace a la documentación: http://www.pygame.org/docs/ ● Tutoriales: http://www.pygame.org/wiki/tutorials ● Ejemplo: Pixwar by danigm. Código: http://git.danigm.net/gitphp/index.php?p=pixwar.git&a=summary Taller de introducción a Pyth
  • 31.
    #MartesLibres Panda 3D Es un motor de videojuegos que incluye gráficos, audio, E/S, detección de colisiones, así como otras características relevantes para la creación de juegos en 3D. http://www.panda3d.org/ Taller de introducción a Pyth
  • 32.
    #MartesLibres Panda 3D ● Instalación: http://www.panda3d.org/download.php?sdk&version=1.8.0 ● Enlace a la documentación: http://www.panda3d.org/reference/1.8.0/python/annotated ● Manual: http://www.panda3d.org/manual/index.php/Main_Page ● Ejemplos: Roaming Ralph. Código: viene por defecto cuando instalamos panda3d Taller de introducción a Pyth
  • 33.
    #MartesLibres Panda3D Taller de introducción a Pyth
  • 34.
    #MartesLibres OpenCV Biblioteca de visión artificial que surgió en 1999. Ha sido utilizado en aplicaciones para detectar movimiento hasta reconocimiento de objetos. Proporciona un entorno de desarrollo fácil de utilizar y muy eficiente dado que ha sido programado en C y C++. http://opencv.org/ http://opencv.willowgarage.com/wiki/ Taller de introducción a Pyth
  • 35.
    #MartesLibres Open CV ● Instalación: ● sudo apt-get install python-opencv ● Documentación: http://docs.opencv.org/index.html ● Ejemplo: Rocamgo by Victor Ramirez y David Medina (PFC) + colaboradores. Código: https://github.com/Virako/Rocamgo-ng Taller de introducción a Pyth
  • 36.
    #MartesLibres RunSnakeRun Herramienta gráfica para lectura sencilla de profiling (análisis de rendimiento del software). Para instalar: sudo apt-get install runsnakerun Taller de introducción a Pyth
  • 37.
  • 38.
    #MartesLibres Gracias por asistir Todo el material (presentación y código) se colgará próximamente en la web de SUGUS: http://sugus.eii.us.es Taller de introducción a Pyth
  • 39.
    #MartesLibres ¿Dudas? Taller de introducción a Pyth