39
#MartesLibres Taller de introducción a Pyth Taller introducción a Python

Transparencias taller Python

Embed Size (px)

Citation preview

#MartesLibres

Taller de introducción a Python

Taller introducción a Python

#MartesLibres

Taller de introducción a Python

Taller introducción a Python

Víctor Ramírez@virako

Sergio Soto@sototan

#MartesLibres

Taller de introducción a Python

Í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

#MartesLibres

Taller de introducción a Python

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

#MartesLibres

Taller de introducción a Python

¿Qué está hecho en Python?

● Dropbox

● Instagram (Django)

● Quora

● Muy utilizado en Ámbito científico

● ...

Más en:

http://www.python.org/about/success/

#MartesLibres

Taller de introducción a Python

Filosofía pythonica

#MartesLibres

Taller de introducción a Python

Filosofía pythonica

#MartesLibres

Taller de introducción a Python

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.

#MartesLibres

Taller de introducción a Python

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."

#MartesLibres

Taller de introducción a Python

Algunas características

● Indentación obligatoria:

#MartesLibres

Taller de introducción a Python

Algunas características

● Funciones built-in

#MartesLibres

Taller de introducción a Python

Sintaxis de Python● Condicional: if/elif/else

#MartesLibres

Taller de introducción a Python

Sintaxis de Python● Bucle while

#MartesLibres

Taller de introducción a Python

Sintaxis de Python● Bucle for

#MartesLibres

Taller de introducción a Python

Sintaxis de Python● Creación de funciones

#MartesLibres

Taller de introducción a Python

Tipos de datos en Python●Tipos básicos: numéricos

#MartesLibres

Taller de introducción a Python

Tipos de datos en Python●Tipos básicos: cadenas

#MartesLibres

Taller de introducción a Python

Tipos de datos en Python●Tipos básicos: lógicos

#MartesLibres

Taller de introducción a Python

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, ...

#MartesLibres

Taller de introducción a Python

Tipos de datos en Python

#MartesLibres

Taller de introducción a Python

Tipos de datos en Python● Tuplas: ( )

#MartesLibres

Taller de introducción a Python

Tipos de datos en Python● Listas: [ ]

#MartesLibres

Taller de introducción a Python

Tipos de datos en Python●Diccionarios: { }

#MartesLibres

Taller de introducción a Python

Tipos de datos en Python●Tipos definidos por el usuario: class

#MartesLibres

Taller de introducción a Python

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

#MartesLibres

Taller de introducción a Python

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.

#MartesLibres

Taller de introducción a Python

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

#MartesLibres

Taller de introducción a Python

Pygtk y Glade

#MartesLibres

Taller de introducción a Python

PEP 8

* Python Enhancement Proposal

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.

#MartesLibres

Taller de introducción a Python

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

#MartesLibres

Taller de introducción a Python

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/

#MartesLibres

Taller de introducción a Python

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

#MartesLibres

Taller de introducción a Python

Panda 3D

#MartesLibres

Taller de introducción a Python

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/

#MartesLibres

Taller de introducción a Python

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

#MartesLibres

Taller de introducción a Python

RunSnakeRun

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

Para instalar:

sudo apt-get install runsnakerun

#MartesLibres

Taller de introducción a Python

RunSnakeRun

#MartesLibres

Taller de introducción a Python

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

http://sugus.eii.us.es

Gracias por asistir

#MartesLibres

Taller de introducción a Python

¿Dudas?