Este Sssssss
-
Upload
lcpvluiscarlos2 -
Category
Documents
-
view
246 -
download
4
description
Transcript of Este Sssssss
-
Fco Javier Lucena Lucena
-
ndice Introduccin Propiedades Why use it ? Instalacin
Sintaxis Ejemplos
-
http://xkcd.com/
-
4Introduccin
Python es un lenguaje de programacin dinmica muy poderoso.
Creado por Guido Van Rossum en 1991
Comparado con Tcl, Perl, Ruby, Scheme o Java
-
5PropiedadesInterpretado o de script
Flexibilidad y PortabilidadFcil de depurarReduce el tamao del programa
-
6PropiedadesTipado Dinmico
No es necesario declarar el tipo de dato que va a contener una determinada variable.
El tipo se determinara en tiempo de ejecucin.
El tipo puede cambiar si se asigna un valor diferente.
-
7PropiedadesFuertemente Tipado
Python distingue las churras de las merinas
No se puede tratar una variable como si fuera de un tipo distinto al que tiene. (Conversiones)No necesita identificar explcitamente los tipos de datos para inicializar variables
Ej: Sumar la cadena 1 y en entero 2
-
8Why use it?
Es un lenguaje limpio, tiene una sintaxis legible.
Lenguaje muy parecido al pseudocdigo
Recomendado para empezar a programar.
-
9Why use it?
Python is Open !!
UsarDistribuirIncluso uso comercialPython Software Foundation
Licencia Python 2.6.2
-
10
Why use it?Powerful and fast
Se puede resolver un problema en cualquier mbito.
La biblioteca estndar lleva pilas incluidasMdulos, paquetes, frameworks
Compilador de byte muy optimizado*.pyc (bitecode)
-
11
Why use it?Multiplataforma
Windows, Linux/Unix, OS/2, Mac incluso Amiga.NET, Java... Dispositivos Mviles... Ej: Nokia
Se integra con:COM (extensiones windows) bibliotecas Java (Jython), .NET (IronPython)
Fcil de aprenderAmplia y buena documentacin en lnea.
-
12
AplicacionesDesarrollo Web e InternetBases de DatosDesarrollo SoftwareJuegos y Grficos 3DBioinformaticaFsicaEducacin
http://www.python.org/about/apps/http://pypi.python.org/pypi
-
13
Casos de xito
-
14
Casos de xito Software desarrollado en Python cabe resaltar Google App Engine(entorno Cloud Computing de Google)The Washington Post (Python + Django), Facebook (la parte de gestin de mensajes e informacin en tiemporeal) Zope (servidor de aplicaciones) Plone (CMS [sistema de gestin decontenidos] utilizado por la NASA, Canonical, etc)
-
15
Instalacinhttp://www.python.org/download/Disponible en la mayora de distribuciones Gnu/Linux
sudo apt-get install ipython / bpythonhttp://ipython.scipy.org/moin/Autocompletado (In[1] : pr + Tab)Operador ? (Ayuda mtodos)
sudo apt-get install geany
-
16
HerramientasIDE
Eclipse con el plugin pyDev, Aptana, NetBeans, Geany, pyScripter, Ninja IDE, Stani's Python Editor, Wingware Python IDE, Komodo, Pyragua, Eric
EditorEditra, emacs, Notepad++, SciTE
ShellIpython, PyCrust, PyShell
http://wiki.python.org/moin/PythonEditors.
-
17
InstalacinInterprete Interactivo
Desde consola ejecutamos python o ipython
Control + dControl + z
-
18
Filosofa PythonImport this
Bello es mejor que feo.Explcito es mejor que implcito.Simple es mejor que complejo.Complejo es mejor que complicado.Plano es mejor que anidado.Ralo es mejor que denso.La legibilidad cuenta.Los casos especiales no son
-
19
InstalacinScript
Ejecutar un fichero desde la linea de comandosExtensin ----> mi_fichero.py Shebang ----> #!/usr/bin/python# -*- coding: utf-8 -*- Unicodepython hola.py [ ./hola.py (chmod +x) ]
#!/usr/bin/python
printMensajeenviadoprintPulsaunatecla
raw_input()
-
Por qu empece a programar en Python ?
-
21
SintaxisSe distinguen Maysculas minsculasNo se necesita carcter para indicar el fin de una sentencia. ({})Los bloques son especificados por indentacin# Esta lnea es un comentarioVar = 3 # Asignacin con el carcter =Var == Var1 # Operador igualdadVar -= 1 # Para incrementar Var += 1
-
22
Tipos de Datos
Nmeros : entero, flotante, complejoCadenas de TextoValores Booleanos
3 , 4.57, 2 + 3jHola MundoTrue - False
Saber el tipo de dato que contiene una variable: type(id_variable)
-
23
Variableslos identificadores, palabras clave... en Python son case-sensitive, distinguen entre maysculas y minsculas.No es necesario declarar las variables
Al utilizarlas se declaran automticamenteAsignacin Mltiple en una lnea
>>> a,b = 4,9>>> a4>>> a,b = b,a>>> a>>> 9
aux=a;a=b;b=aux;
-
24
Colecciones
Lista (vector array)Puede contener cualquier tipo de dato
lista = [ 35, Hola, True, [1, 2, 3]]Acceso a los elementos: lista[indice] indice=0,1...
lista[3][0] # Accede al elemento 1 [ ] Admite nmeros negativos
lista[-2] devolvera el elemento Truelista[inicio:fin]
Lista[1:] #desde 1 a finLsita [:2] # desde inicio a 2
-
25
ColeccionesTupla
Declaracin: tupla = {1, True, hola}Acceso: tupla[indice]
InmutablesSus valores no se pueden modificarTamao fijo
Mas ligeras que las listasConsumen menos memoria
-
26
Cadena de Texto
cadena = Que risa me da C
cadena[4] # devuelve r
cadena[:3] # devuelve Que
-
27
ColeccionesDiccionario
Relacionan una clave y un valor
Acceso: dicc[clave]
Dicc = {75934029J : Lopez Lopez Jose, 64790681H : Perez Pepito}
-
28
Estructuras de ControlCondicional>>>x=int(raw_input("Introduceunnmeroentero:"))>>>ifx
-
29
Estructuras de ControlSentencia for
No hay valor inicial, ni condicin de parada, ni un incremento.Iterar por los elementos de una secuenciaforeach en OO PHP>>>#Mediralgunascadenas:...a=[gato,ventana,defenestrar]>>>forxina:...printx,len(x)...gato4ventana7defenestrar11
-
30
Estructura de control
-
31
Estructura de controlFuncin range()>>>a=[Cinco,lobitos,tiene,la,loba]>>>foriinrange(len(a)):...printi,a[i]...0Cinco1lobitos2tiene3la4loba
-
32
Estructuras de Control
while
numero=23detener=False
whilenotdetener:adivina=int(raw_input('Unentero:'))
ifadivina==numero:print'Enhorabuena,hasacertado!.'detener=True#Estocausaqueel#buclesedetengaelifadivina
-
33
Funciones
>>>deffib(n):#escribirlaserieFibonaccihastan......a,b=0,1...whileb>>#Yahorallamamosalafuncinrecindefinida:...fib(2000)11235813213455891442333776109871597
Palabra reservada return
-
34
FuncionesDocumentar
def mi_funcion(param1, param2): """Esta funcin imprime los dos valores pasados como parmetros""" print param1 print param2
-
35
Funciones
Devolver Valores
deff(x,y):returnx*2,y*2
a,b=f(1,2)
-
36
FuncionesParmetros por defecto Parmetros Extra (tupla)
defvarios(param1,param2,*otros):forvalinotros:printotros
varios(1,2)varios(1,2,3)varios(1,2,3,4)
-
37
Funciones lambdaCrear funciones annimas en lnea
l=[1,2,3]l2=filter(lambdan:n%2.0==0,l)
defes_par(n):return(n%2.0==0)l=[1,2,3]l2=filter(es_par,l)
-
38
MdulosFichero que contiene definiciones y sentencias.El nombre del fichero es el nombre del modulo sin la extensin .pyPalabra reservada import - from
#!/usr/bin/pythonimport nombre_modulonombre_modulo.funcion()import nombre_modulo from mi_funcionmi_funcion()....
-
39
MdulosDavid Goodger en su obra Code Like a Pythonista: Idiomatic Python
LUKE: Es mejor from module import * que los imports explcitos?YODA: No, no mejor. Ms rpido, ms fcil, ms seductor.LUKE: Pero cmo sabr por qu los imports explcitos son mejores que la forma con el carcter comodn?YODA: Saberlo tu podrs cuando tu cdigo intentes leer seis meses despus.
-
40
Mdulos
Hay una gran variedad de mdulos
Antes de implementar, busca !Probablemente esta ya hecho.
Hay mdulos matemticos, web, programacin evolutiva, inteligencia artificial
-
41
Mdulos
Donde estn?
Variable de entorno: PYTHONPATH>>> import sys>>> sys.path
-
42
Mdulosadministrar la instalacin de todos estos paquetes existe pipPara instalar:sudo apt-get install python-pip python-dev build-essential
sudo pip install --upgrade pip
paquetes instalados y disponibles
sudo pip install yolk
yolk -l yolk -l | grep yolk
-
43
Paquetes
Sirven para organizar los mdulosPara hacer que Python trate a un directorio como un paquete es necesario crear un archivo __init__.py
import paq.subpaq.modulopaq.subpaq.modulo.func()
http://pypi.python.org/pypi
-
44
Paquetes
Sonido/ __init__.py Formatos/ __init__.py leerwav.py escriwav.py leeraiff.py escriaiff.py
-
45
Clases
Sintaxis mnima y nueva Semntica
classnombreClase:...
-
46
Clases
MiClase, adems de definir la clase, es unobjeto en s mismo.MiClase.i y MiClase.f son referencias aatributos vlidas, que devuelven un enteroy un objeto mtodo, respectivamente
classMiClase:"Simpleclasedeejemplo"i=12345deff(self):returnhola,mundo
-
47
Clases La instanciacin de clases utiliza notacin de funcin.
x =ID_Clase() Esto crea una instancia de ID_Clase y la asigna a la variable x. Si queremos definir nuestro propio constructor, bastar con definir una funcin __init__
-
48
Clases
>>>classComplejo:...def__init__(self,parteReal,parteImaginaria):...self.r=parteReal...self.i=parteImaginaria...>>>x=Complejo(3.0,4.5)>>>x.r,x.i(3.0,4.5)
-
49
ClasesclassMiClase:"Simpleclasedeejemplo"i=12345deff(self):returnhola,mundo
X=MiClase()
x.contador=1whilex.contador
-
50
Clases
classBolsa:def__init__(self):self.datos=[]defagregar(self,x):self.datos.append(x)defagregarDosVeces(self,x):self.agregar(x)self.agregar(x)
Mtodo de claseMtodo de instancia
-
51
ClasesHerencia
-
52
Biblioteca EstndarSistema operativo
>>>importos>>>dir(os)
>>>help(os)
>>>os.getcwd()/home/fran
-
53
Biblioteca EstndarArgumentos linea ordenes
python demo.py un dos tres>>> import sys>>> print sys.argv[demo.py, un, dos, tres]
-
54
Biblioteca Estndar
import reimport mathimport urllib2import ramdomimport datetimeimport threadingimport logging
-
55
Ejemplo
-
56
Ejemplo
-
57
Ejemplo
-
58
Ejemplo
-
59
Ejemplo
Video Wii Motion + Python + Linux
-
60
Encuesta
http://go4.es/0akl
-
61
Fuentes
Python para todosRal Gonzalez Duque
Aprenda a Pensar Como un Programador con Python
Allen Downey Jeffrey Elkner Chris Meyers
-
Licencia
Fco Javier Lucena Lucena
@frannlu
Pgina 1Pgina 2Pgina 3Pgina 4Pgina 5Pgina 6Pgina 7Pgina 8Pgina 9Pgina 10Pgina 11Pgina 12Pgina 13Pgina 14Pgina 15Pgina 16Pgina 17Pgina 18Pgina 19Pgina 20Pgina 21Pgina 22Pgina 23Pgina 24Pgina 25Pgina 26Pgina 27Pgina 28Pgina 29Pgina 30Pgina 31Pgina 32Pgina 33Pgina 34Pgina 35Pgina 36Pgina 37Pgina 38Pgina 39Pgina 40Pgina 41Pgina 42Pgina 43Pgina 44Pgina 45Pgina 46Pgina 47Pgina 48Pgina 49Pgina 50Pgina 51Pgina 52Pgina 53Pgina 54Pgina 55Pgina 56Pgina 57Pgina 58Pgina 59Pgina 60Pgina 61Pgina 62