3. Internet
http://es.wikipedia.org/wiki/Archivo:Internet_map_1024.jpg
jueves 17 de noviembre de 11
4. Internet
• Red de redes global.
• Protocolo abierto: TCP/IP.
• Cada ordenador tiene una dirección (IP).
• Las comunicaciones se realizan por paquetes
• TCP/UDP.
• Protocolos.
• IP/Puerto.
• DNS.
jueves 17 de noviembre de 11
16. JSON
JavaScript Object Notation
http://es.wikipedia.org/wiki/JSON
jueves 17 de noviembre de 11
17. Introducción
a Python
jueves 17 de noviembre de 11
18. Python
http://www.tiraecol.net/modules/comic/
jueves 17 de noviembre de 11
19. Python
• Lenguaje interpretado.
• Fuertemente tipado.
• Fácil de acceder a librerías en C.
• Prototipado rápido de aplicaciones.
• Muy productivo.
• Librería estándar fácil de usar.
• Lenguaje oficial Google: Python, Java, C++
jueves 17 de noviembre de 11
20. Python
• En Python no hay corchetes para
indicar bloques.
• Los bloques se indican con identación.
jueves 17 de noviembre de 11
21. Python: Funciones
def nombre_funcion():
...
return
jueves 17 de noviembre de 11
22. Python: Parámetros
def nombre_funcion(p1, p2):
...
return p1
jueves 17 de noviembre de 11
23. Python: Doc string
def primer_parametro(p1, p2):
“”” Esta función devuelve el primer parámetro ”””
return p1
jueves 17 de noviembre de 11
24. Python: print
def imprimir(p1, p2):
“”” Imprime los parámetros “””
print p1, p2
imprimir(“a”, “b”)
jueves 17 de noviembre de 11
25. Python: Formateo print
def imprimir(p1, p2):
“”” Imprime los parámetros “””
print “%s - %s” % (p1, p2)
imprimir(“a”, “b”)
jueves 17 de noviembre de 11
26. Python: if-else
def imprimir_si(valor):
“”” Imprime los parámetros “””
if (valor == “a”):
print valor
else:
print “Parámetro no es ‘a’”
imprimir_si(“a”)
jueves 17 de noviembre de 11
27. Python: Diccionarios
dicc = { ‘peras’: 1, ‘manzanas’: 2 }
print dicc[‘a’]
jueves 17 de noviembre de 11
28. Python: Diccionarios
dicc = { ‘peras’: 1, ‘manzanas’: 2 }
print dicc[‘peras’]
dicc[‘naranjas’] = 20
print dicc[‘naranjas’]
jueves 17 de noviembre de 11
29. Python: Diccionarios
dicc = { ‘peras’: 1, ‘manzanas’: 2 }
print dicc[‘peras’]
dicc[‘naranjas’] = 20
print dicc[‘naranjas’]
for fruta in dicc:
print dicc[fruta]
jueves 17 de noviembre de 11
30. Python: Tuplas
Listas inmutables
lista = (1, 20, 300, 4000)
print lista[0]
jueves 17 de noviembre de 11
31. Python: Tuplas
Listas inmutables
lista = (1, 20, 300, 4000)
print lista[0] # Primer elemento
print lista[-1] # Último elemento
jueves 17 de noviembre de 11
32. Python: Tuplas
Listas inmutables
lista = (1, 20, 300, 4000)
print lista[0] # Primer elemento
print lista[-1] # Último elemento
# Subconjuntos
lista[:2] # Del 1er al 3er elemento
jueves 17 de noviembre de 11
33. Python: Tuplas
Listas inmutables
lista = (1, 20, 300, 4000)
# Recorrer tupla
for elemento in lista:
print elemento
jueves 17 de noviembre de 11
34. Python: Listas
Listas mutables
lista = [1, 20, 300, 4000]
print lista[0]
print lista[-1]
# Añadir elementos
lista.append(50000)
jueves 17 de noviembre de 11
35. Python: Librerías
import lib
from lib import objeto
jueves 17 de noviembre de 11
36. Python: Objetos
class Fruta:
def __init__(self, nombre_fruta):
“”” Constructor “””
self.nombre = nombre_fruta
def imprimir_nombre(self):
print self.nombre
f = Fruta(“manzana”)
f.imprimir_nombre()
jueves 17 de noviembre de 11
37. Python: Ficheros
Modo lectura
# Abrir fichero
leer = open(“nombre.txt”, “r”)
# Imprimir todas las líneas
linea = leer.readline()
while (linea):
print linea
linea = leer.readline()
# Cerrar fichero
escribir.close()
jueves 17 de noviembre de 11
38. Python: Ficheros
Modo escritura
# Abrir fichero
escribir = open(“fichero.txt”, “w”)
# Escribir contenido
linea = “”
escribir.write(linea)
# Cerrar fichero
escribir.close()
jueves 17 de noviembre de 11
39. Python: SQLite
Crear/Abrir base de datos
# Abrir
conn = sqlite3.connect(“bbdd.sql”)
cursor = conn.cursor()
# Cerrar
cursor.close()
jueves 17 de noviembre de 11
40. Python: SQLite
Crear tablas
# Abrir
conn = sqlite3.connect(“bbdd.sql”)
cursor = conn.cursor()
# Crear tabla
cursor.execute(“””
CREATE TABLE usuarios (
usuario TEXT,
twitter TEXT,
facebook TEXT,
plus TEXT
)“””)
# Guardar cambios
conn.commit()
cursor.close()
jueves 17 de noviembre de 11
41. Python: SQLite
Insertar datos
# Abrir
conn = sqlite3.connect(“bbdd.sql”)
cursor = conn.cursor()
# Crear tabla
cursor.execute(“””
INSERT INTO usuarios VALUES (
‘rvr’,
‘http://twitter.com/vrruiz’,
‘http://facebook.com/vrruiz/’,
‘https://plus.google.com/115241315008695484224/posts’
)
“””)
# Guardar cambios
conn.commit()
jueves 17 de noviembre de 11
42. Python: SQLite
Consultar tablas
# Abrir
conn = sqlite3.connect(“bbdd.sql”)
cursor = conn.cursor()
# Consultar datos
cursor.execute(“””SELECT * FROM usuarios“””)
for usuario in cursor:
print usuario
# Cerrar cursor
cursor.close()
jueves 17 de noviembre de 11
43. Python: HTTP
import urllib2
# Abrir conexión http
pagina = urllib2.open(“http://twitter.com/vrruiz”)
# Leer contenidos
contenidos = pagina.read()
print contenidos
# Cerrar conexión
pagina.close()
jueves 17 de noviembre de 11
44. Python: JSON
from simplejson import json
# Codificar estructura de datos a JSON
codificado = json.dumps({‘usuario’ : ‘rvr’ })
print codificado
jueves 17 de noviembre de 11
45. Python: JSON
from simplejson import json
# Decodificar JSON a estructura de datos
decodificado = json.loads(“{ ‘usuario’ : ‘rvr’ }”)
print decodificado
jueves 17 de noviembre de 11
46. Python: Recursos
• Inmersión en Python
• Documentación oficial: Librerías
jueves 17 de noviembre de 11
48. Contacto
Víctor R. Ruiz
twitter.com/vrruiz · rvr.linotipo.es
> Otras presentaciones disponibles en <
http://linotipo.es/
jueves 17 de noviembre de 11
49. Cómo obtener
información
en redes sociales
Víctor R. Ruiz <rvr@linotipo.es>
Tenerife, 14-18 de noviembre de 2011
jueves 17 de noviembre de 11