SlideShare uma empresa Scribd logo
1 de 35
Iniciación a las artes marciales con
Python
>>> from iferminm import info
>>> print info iferminmontilla@gmail.com
{
'nombre': 'Israel Fermín Montilla',
'ocupación': 'programador',
'qué_hace_ahora': 'Lead Developer @ RingTu',
'blog': 'http://iferminmontilla.com',
'twitter': '@iferminm',
'organizaciones': ['PyVE', 'OpenVE'],
}
Lenguaje de alto nivel
Orientado a objetos
Fuertemente tipificado
Tipos dinámicos
DESDE EL CORE
Estándar
Autodocum
entado
Fácil introspección de objetosScripting
Programación
Funcional
Escrito en C
Es muy pana
Creado por Guido Van Rossum
Creado por Guido Van Rossum
¿Por qué Python?
● Autodocumentado
● help()
● Fácil introspección
● dir(), setattr(), hasattr(), callable()
● Obliga al orden
● La identación importa
● Sintaxis clara legible y concisa
¿Por qué Python?
● C
#include <stdio.h>
#include <stdlib.h>
int main() {
printf('hola mundo');
return EXIT_SUCCESS;
}
● Java
package com.holamundo
public class HolaMundo {
public static void main(String args[]) {
System.out.println(“Hola Mundo”);
}
}
¿Por qué Python?
print 'Hola Mundo'
¿Quién lo usa?
Operadores estándar
● Matemáticos
– Iguales que en otros lenguajes
● Menos la potencia que es **
● Lógicos:
– && => and
– || => or
– == => ==
– != => != ó <>
– ! => not
Sintaxis sencilla
● Declaración:
– a = valor
● Condiciones:
– if a == b and c == d:
print 'Hola'
elif a != d:
print 'Nada que hacer'
else:
print 'Chao'
Sintaxis sencilla
● Otras maneras:
– List comprehension:
● pares = [n for n in xrange(100) if not n % 2]
● plus_one = [n + 1 for n in xrange(100)]
– Filter:
● pares = filter(lambda n: not n % 2, xrange(100))
– Map:
● plus_one = map(lambda n: n + 1, xrange(100))
Sintaxis sencilla
● Funciones:
– def hola(n=None):
return 'hola %s' % n if n else 'No se'
Sintaxis concisa
● One-liners fácil:
– qsort = lambda seq: [] if not seq else
qsort(filter(lambda n: n<=seq[0], seq[1:]))+[seq[0]]
+qsort(filter(lambda n: n>seq[0], seq[1:]))
Pensando como un Pythonista
● Todo es un objeto
● Hay 3 tipos básicos de colecciones:
– Listas (mutables): [1, 2, 3, 4]
– Tuplas (no mutables): (1, 2, 3, 4)
– Diccionarios (hash): {'foo': 'bar', 'uno': 1}
● También maneja tipos primitivos
– Enteros
– Cadenas de caracteres (no mutables)
– ...
Pensando como un Pythonista
● Variables vs Bindings
No hay variables:
Sino objetos y nombres:
0010101011
111100101
0x123ffab090ed
42vida_univ_y_lo_demas
Pensando como un Pythonista
● Variables vs Bindings
int a = 7303014;
printf(“%i %s”, a, (char*) &a);
---> 7303014 foo
Pensando como un Pythonista
● Variables vs Bindings
int a = 7303014;
printf(“%i %s”, a, (char*) &a);
---> 7303014 foo
a 42
>>> a = 42
Pensando como un Pythonista
● Variables vs Bindings
int a = 7303014;
printf(“%i %s”, a, (char*) &a);
---> 7303014 foo
a
42
“python”
>>> a = 42
>>> a = “python”
Pensando como un Pythonista
● Variables vs Bindings
int a = 7303014;
printf(“%i %s”, a, (char*) &a);
---> 7303014 foo
a
42
“python”
>>> a = 42
>>> a = “python”
Conteo de referencias
Pensando como un Pythonista
● Variables vs Bindings
int a = 7303014;
printf(“%i %s”, a, (char*) &a);
---> 7303014 foo
a “python”
>>> a = 42
>>> a = “python”
Conteo de referencias
Pensando como un Pythonista
● Interned Objects
a 99091234328
>>> a = 99091234328
Pensando como un Pythonista
● Interned Objects
a
b
99091234328
99091234328
>>> a = 99091234328
>>> b = 99091234328
Pensando como un Pythonista
● Interned Objects
a
b
c
99091234328
99091234328
4
>>> a = 99091234328
>>> b = 99091234328
>>> c = 4
Pensando como un Pythonista
● Interned Objects
a
b
c
d
99091234328
99091234328
4
>>> a = 99091234328
>>> b = 99091234328
>>> c = 4
>>> d = 4
Pensando como un Pythonista
● PEP8:
– Identar a 4 espacios
– Escribir “bonito”
● a = x + 3 y no a=x+3
– Agrupar código en párrafos
– Aprovechar las funciones core
– … entre muchas otras cosas
● El ZEN de python
Programación Orientada a Objetos
Clases
● Declaración:
– class NombreClase(ClaseBase):
class_variables = val
def __init__(self, params, *args, **kwargs):
self.attr = param
…
● Si no hay clase base, por defecto hereda de:
– object
Clases
● Declaración:
– class NombreClase(ClaseBase):
class_variables = val
def __init__(self, params, *args, **kwargs):
self.attr = param
…
● Si no hay clase base, por defecto hereda de:
– object
Métodos de clase
● class Clase(ClaseBase):
def __init__(self, *args, **kwargs):
(…)
@classmethod
def method(cls, *args, **kwargs):
(...)
Créditos por las imágenes
● http://3.bp.blogspot.com/_W_zETys1xFc/TJd3kmJ7_kI/AAAAAAAABDI/X5q-wepEGLc/s1600/Python.png
● http://ninjaide.webfactional.com/static/common/img/logo.256.png
● http://wqimg.s3.amazonaws.com/ci/python-223.jpg
● http://media.boingboing.net/wp-content/uploads/2011/10/dennis_ritchie.jpg
● http://upload.wikimedia.org/wikipedia/commons/thumb/6/66/Guido_van_Rossum_OSCON_2006.jpg/200px-
Guido_van_Rossum_OSCON_2006.jpg

Mais conteúdo relacionado

Mais procurados

Colas 1er ejercicio
Colas 1er ejercicioColas 1er ejercicio
Colas 1er ejercicio
Cerdorock
 
Prueba#3 erika quillupangui
Prueba#3 erika quillupanguiPrueba#3 erika quillupangui
Prueba#3 erika quillupangui
mmch20
 

Mais procurados (13)

Resumen punteros1
Resumen punteros1Resumen punteros1
Resumen punteros1
 
Programa
ProgramaPrograma
Programa
 
Algorimos básicos para cifrar y descifrar en C# (encriptar y desencriptar)
Algorimos básicos para cifrar y descifrar en C# (encriptar y desencriptar)Algorimos básicos para cifrar y descifrar en C# (encriptar y desencriptar)
Algorimos básicos para cifrar y descifrar en C# (encriptar y desencriptar)
 
Convertidor de bases
Convertidor de basesConvertidor de bases
Convertidor de bases
 
Colas 1er ejercicio
Colas 1er ejercicioColas 1er ejercicio
Colas 1er ejercicio
 
1 intro php
1 intro php1 intro php
1 intro php
 
Hola mundo
Hola mundoHola mundo
Hola mundo
 
Tap u2-componentes y librerias-programa para cifrar y descifrar cadenas
Tap u2-componentes y librerias-programa para cifrar y descifrar cadenasTap u2-componentes y librerias-programa para cifrar y descifrar cadenas
Tap u2-componentes y librerias-programa para cifrar y descifrar cadenas
 
informe unidad 5 -Metodos de ordenamiento-
informe unidad 5 -Metodos de ordenamiento- informe unidad 5 -Metodos de ordenamiento-
informe unidad 5 -Metodos de ordenamiento-
 
Suma y multiplicacion
Suma y multiplicacionSuma y multiplicacion
Suma y multiplicacion
 
Prueba#3 erika quillupangui
Prueba#3 erika quillupanguiPrueba#3 erika quillupangui
Prueba#3 erika quillupangui
 
Programa en c de listas
Programa en c de listasPrograma en c de listas
Programa en c de listas
 
Unidad 2 informe tecnico
Unidad 2 informe tecnicoUnidad 2 informe tecnico
Unidad 2 informe tecnico
 

Semelhante a Iniciación a las artes marciales con Python

Programacion en python_1
Programacion en python_1Programacion en python_1
Programacion en python_1
wozgeass
 
El lenguaje de programacion c++ prev
El lenguaje de programacion c++ prevEl lenguaje de programacion c++ prev
El lenguaje de programacion c++ prev
jtk1
 

Semelhante a Iniciación a las artes marciales con Python (20)

Python - Programación para machos
Python - Programación para machosPython - Programación para machos
Python - Programación para machos
 
Python
Python Python
Python
 
Mini clase Intro Programación Python UTN Profesorado 2015
Mini clase Intro Programación Python UTN Profesorado 2015Mini clase Intro Programación Python UTN Profesorado 2015
Mini clase Intro Programación Python UTN Profesorado 2015
 
Go python, go
Go python, goGo python, go
Go python, go
 
curso_programacion_python3.pdf
curso_programacion_python3.pdfcurso_programacion_python3.pdf
curso_programacion_python3.pdf
 
Funcional para trollear
Funcional para trollearFuncional para trollear
Funcional para trollear
 
Cpp
CppCpp
Cpp
 
Cpp
CppCpp
Cpp
 
Presentacion Python
Presentacion  Python Presentacion  Python
Presentacion Python
 
INTRODUCCIÓN A LA PROGRAMACIÓN - PYTHON.pptx
INTRODUCCIÓN A LA PROGRAMACIÓN - PYTHON.pptxINTRODUCCIÓN A LA PROGRAMACIÓN - PYTHON.pptx
INTRODUCCIÓN A LA PROGRAMACIÓN - PYTHON.pptx
 
Lenguajec++
Lenguajec++Lenguajec++
Lenguajec++
 
Lenguajec++
Lenguajec++Lenguajec++
Lenguajec++
 
IntroPython s2.pdf
IntroPython s2.pdfIntroPython s2.pdf
IntroPython s2.pdf
 
Programacion en python_1
Programacion en python_1Programacion en python_1
Programacion en python_1
 
Transparencias taller Python
Transparencias taller PythonTransparencias taller Python
Transparencias taller Python
 
python CIENTIFIFO.pdf
python CIENTIFIFO.pdfpython CIENTIFIFO.pdf
python CIENTIFIFO.pdf
 
Los lenguajes de la web
Los lenguajes de la webLos lenguajes de la web
Los lenguajes de la web
 
C:\Fakepath\Python}
C:\Fakepath\Python}C:\Fakepath\Python}
C:\Fakepath\Python}
 
Python}
Python}Python}
Python}
 
El lenguaje de programacion c++ prev
El lenguaje de programacion c++ prevEl lenguaje de programacion c++ prev
El lenguaje de programacion c++ prev
 

Último

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
nicho110
 

Último (12)

Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 

Iniciación a las artes marciales con Python

  • 1. Iniciación a las artes marciales con Python
  • 2. >>> from iferminm import info >>> print info iferminmontilla@gmail.com { 'nombre': 'Israel Fermín Montilla', 'ocupación': 'programador', 'qué_hace_ahora': 'Lead Developer @ RingTu', 'blog': 'http://iferminmontilla.com', 'twitter': '@iferminm', 'organizaciones': ['PyVE', 'OpenVE'], }
  • 3. Lenguaje de alto nivel Orientado a objetos Fuertemente tipificado Tipos dinámicos DESDE EL CORE Estándar Autodocum entado Fácil introspección de objetosScripting Programación Funcional Escrito en C
  • 5. Creado por Guido Van Rossum
  • 6. Creado por Guido Van Rossum
  • 7.
  • 8. ¿Por qué Python? ● Autodocumentado ● help() ● Fácil introspección ● dir(), setattr(), hasattr(), callable() ● Obliga al orden ● La identación importa ● Sintaxis clara legible y concisa
  • 9. ¿Por qué Python? ● C #include <stdio.h> #include <stdlib.h> int main() { printf('hola mundo'); return EXIT_SUCCESS; } ● Java package com.holamundo public class HolaMundo { public static void main(String args[]) { System.out.println(“Hola Mundo”); } }
  • 10. ¿Por qué Python? print 'Hola Mundo'
  • 12.
  • 13.
  • 14. Operadores estándar ● Matemáticos – Iguales que en otros lenguajes ● Menos la potencia que es ** ● Lógicos: – && => and – || => or – == => == – != => != ó <> – ! => not
  • 15. Sintaxis sencilla ● Declaración: – a = valor ● Condiciones: – if a == b and c == d: print 'Hola' elif a != d: print 'Nada que hacer' else: print 'Chao'
  • 16. Sintaxis sencilla ● Otras maneras: – List comprehension: ● pares = [n for n in xrange(100) if not n % 2] ● plus_one = [n + 1 for n in xrange(100)] – Filter: ● pares = filter(lambda n: not n % 2, xrange(100)) – Map: ● plus_one = map(lambda n: n + 1, xrange(100))
  • 17. Sintaxis sencilla ● Funciones: – def hola(n=None): return 'hola %s' % n if n else 'No se'
  • 18. Sintaxis concisa ● One-liners fácil: – qsort = lambda seq: [] if not seq else qsort(filter(lambda n: n<=seq[0], seq[1:]))+[seq[0]] +qsort(filter(lambda n: n>seq[0], seq[1:]))
  • 19. Pensando como un Pythonista ● Todo es un objeto ● Hay 3 tipos básicos de colecciones: – Listas (mutables): [1, 2, 3, 4] – Tuplas (no mutables): (1, 2, 3, 4) – Diccionarios (hash): {'foo': 'bar', 'uno': 1} ● También maneja tipos primitivos – Enteros – Cadenas de caracteres (no mutables) – ...
  • 20. Pensando como un Pythonista ● Variables vs Bindings No hay variables: Sino objetos y nombres: 0010101011 111100101 0x123ffab090ed 42vida_univ_y_lo_demas
  • 21. Pensando como un Pythonista ● Variables vs Bindings int a = 7303014; printf(“%i %s”, a, (char*) &a); ---> 7303014 foo
  • 22. Pensando como un Pythonista ● Variables vs Bindings int a = 7303014; printf(“%i %s”, a, (char*) &a); ---> 7303014 foo a 42 >>> a = 42
  • 23. Pensando como un Pythonista ● Variables vs Bindings int a = 7303014; printf(“%i %s”, a, (char*) &a); ---> 7303014 foo a 42 “python” >>> a = 42 >>> a = “python”
  • 24. Pensando como un Pythonista ● Variables vs Bindings int a = 7303014; printf(“%i %s”, a, (char*) &a); ---> 7303014 foo a 42 “python” >>> a = 42 >>> a = “python” Conteo de referencias
  • 25. Pensando como un Pythonista ● Variables vs Bindings int a = 7303014; printf(“%i %s”, a, (char*) &a); ---> 7303014 foo a “python” >>> a = 42 >>> a = “python” Conteo de referencias
  • 26. Pensando como un Pythonista ● Interned Objects a 99091234328 >>> a = 99091234328
  • 27. Pensando como un Pythonista ● Interned Objects a b 99091234328 99091234328 >>> a = 99091234328 >>> b = 99091234328
  • 28. Pensando como un Pythonista ● Interned Objects a b c 99091234328 99091234328 4 >>> a = 99091234328 >>> b = 99091234328 >>> c = 4
  • 29. Pensando como un Pythonista ● Interned Objects a b c d 99091234328 99091234328 4 >>> a = 99091234328 >>> b = 99091234328 >>> c = 4 >>> d = 4
  • 30. Pensando como un Pythonista ● PEP8: – Identar a 4 espacios – Escribir “bonito” ● a = x + 3 y no a=x+3 – Agrupar código en párrafos – Aprovechar las funciones core – … entre muchas otras cosas ● El ZEN de python
  • 32. Clases ● Declaración: – class NombreClase(ClaseBase): class_variables = val def __init__(self, params, *args, **kwargs): self.attr = param … ● Si no hay clase base, por defecto hereda de: – object
  • 33. Clases ● Declaración: – class NombreClase(ClaseBase): class_variables = val def __init__(self, params, *args, **kwargs): self.attr = param … ● Si no hay clase base, por defecto hereda de: – object
  • 34. Métodos de clase ● class Clase(ClaseBase): def __init__(self, *args, **kwargs): (…) @classmethod def method(cls, *args, **kwargs): (...)
  • 35. Créditos por las imágenes ● http://3.bp.blogspot.com/_W_zETys1xFc/TJd3kmJ7_kI/AAAAAAAABDI/X5q-wepEGLc/s1600/Python.png ● http://ninjaide.webfactional.com/static/common/img/logo.256.png ● http://wqimg.s3.amazonaws.com/ci/python-223.jpg ● http://media.boingboing.net/wp-content/uploads/2011/10/dennis_ritchie.jpg ● http://upload.wikimedia.org/wikipedia/commons/thumb/6/66/Guido_van_Rossum_OSCON_2006.jpg/200px- Guido_van_Rossum_OSCON_2006.jpg