El documento presenta un taller de introducción a Python. Incluye información sobre la historia del lenguaje, características como tipos de datos y sintaxis, módulos útiles como PyGame y OpenCV, y herramientas como PEP 8 y RunSnakeRun. El taller cubre conceptos básicos de Python y ejemplos prácticos de su uso.
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
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
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
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
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
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