Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Conociendo Python

Conociendo Python

Una breve introducción a Python y sus características más resaltantes

Avatar for Sebastián Magrí

Sebastián Magrí

November 23, 2012
Tweet

More Decks by Sebastián Magrí

Other Decks in Programming

Transcript

  1. CONOCIENDO CONOCIENDO PYTHON PYTHON Sebastián Magrí | @sebasmagri Sebastián Magrí

    | @sebasmagri Noviembre de 2012 Noviembre de 2012 ¡Programar es divertido de nuevo! ¡Programar es divertido de nuevo!
  2. Sebastián Magrí | @sebasmagri | Noviembre de 2012 Sebastián Magrí

    | @sebasmagri | Noviembre de 2012 ¿Qué es Python? ¿Qué es Python? Es un lenguaje de programación... Es un lenguaje de programación... … … pero uno muy pero uno muy pana! pana!
  3. Sebastián Magrí | @sebasmagri | Noviembre de 2012 Sebastián Magrí

    | @sebasmagri | Noviembre de 2012 … … y es pana porque y es pana porque No anda con rodeos para expresar las cosas. No anda con rodeos para expresar las cosas. Se la lleva bien con todo el mundo: Se la lleva bien con todo el mundo: • Web, Bases de Datos, SOA, XML, Protocolos Industriales, Web, Bases de Datos, SOA, XML, Protocolos Industriales, .NET, COM, Java, C/C++... .NET, COM, Java, C/C++... Corre en todos lados: Corre en todos lados: • Linux/UNIX, Mac OS X, Windows, Android, iOS, sobre Java Linux/UNIX, Mac OS X, Windows, Android, iOS, sobre Java o .NET. o .NET. Es amigable y fácil de aprender: Es amigable y fácil de aprender: • Hay niños en edad de primaria aprendiendo Python Hay niños en edad de primaria aprendiendo Python Es Es Abierto! Abierto!
  4. Sebastián Magrí | @sebasmagri | Noviembre de 2012 Sebastián Magrí

    | @sebasmagri | Noviembre de 2012 Un pelo de historia Un pelo de historia 1989: 1989: Guido Van Rossum crea Python Guido Van Rossum crea Python 1991: 1991: Guido publica el código de 0.9.0 en Guido publica el código de 0.9.0 en alt.sources alt.sources 1994: 1994: En Enero Python 1.0, en Noviembre En Enero Python 1.0, en Noviembre comp.lang.python comp.lang.python 1995: 1995: Guido lanza la iniciativa CP4E Guido lanza la iniciativa CP4E 2000: 2000: Se forma BeOpen PythonLabs y se lanza Python 2.0 Se forma BeOpen PythonLabs y se lanza Python 2.0 2001: 2001: Se crea Python Software Foundation y la PSFL Se crea Python Software Foundation y la PSFL 2008: 2008: Se lanza Python 3.0 Se lanza Python 3.0 Python 2.7 es hoy en día el más usado, con una Python 2.7 es hoy en día el más usado, con una migración lenta pero segura a Python 3. migración lenta pero segura a Python 3.
  5. Sebastián Magrí | @sebasmagri | Noviembre de 2012 Sebastián Magrí

    | @sebasmagri | Noviembre de 2012 Python hoy Python hoy (18NOV2012) (18NOV2012) 25891 25891 paquetes públicos paquetes públicos Más de 260 Millones Más de 260 Millones de descargas de paquetes de descargas de paquetes Popularidad: Popularidad: • 6º según langpop.com 6º según langpop.com • 8º según tiobe.com 8º según tiobe.com • 8º según siliconindia.com 8º según siliconindia.com • 10º en cantidad de libros publicados 10º en cantidad de libros publicados • 1º 1º en discusiones en Internet en discusiones en Internet
  6. Sebastián Magrí | @sebasmagri | Noviembre de 2012 Sebastián Magrí

    | @sebasmagri | Noviembre de 2012 ¿Qué lo hace divertido? ¿Qué lo hace divertido? Python viene con las Python viene con las Pilas Puestas Pilas Puestas Es muy fácil de aprender Es muy fácil de aprender El intérprete interactivo El intérprete interactivo Tiene una comunidad enorme y abierta Tiene una comunidad enorme y abierta ¿Quiere hacer café? Python puede hacerlo por ¿Quiere hacer café? Python puede hacerlo por usted usted (con los módulos adecuados) (con los módulos adecuados) ¿Ya dije que es MUY fácil? ¿Ya dije que es MUY fácil?
  7. Sebastián Magrí | @sebasmagri | Noviembre de 2012 Sebastián Magrí

    | @sebasmagri | Noviembre de 2012 ¿Es un lenguaje serio? ¿Es un lenguaje serio? ¡NO! ¡NO! Pero mucha gente lo usa para cosas Pero mucha gente lo usa para cosas muy serias... muy serias...
  8. Sebastián Magrí | @sebasmagri | Noviembre de 2012 Sebastián Magrí

    | @sebasmagri | Noviembre de 2012 ¿Quién lo usa? ¿Quién lo usa? 'Python es rápido para nuestro sitio y nos permite 'Python es rápido para nuestro sitio y nos permite producir nuevas características en tiempos récord con un producir nuevas características en tiempos récord con un mínimo de desarrolladores' mínimo de desarrolladores' Cuong Do, Arquitecto de Software en YouTube Cuong Do, Arquitecto de Software en YouTube 'Sin Python un proyecto del tamaño de 'Sin Python un proyecto del tamaño de Star Wars: Episode II hubiese sido muy difícil de manejar' Star Wars: Episode II hubiese sido muy difícil de manejar' Tommy Burnette, Director Técnico en Industrial Light & Magic Tommy Burnette, Director Técnico en Industrial Light & Magic 'Python, como muchas tecnologías buenas, se expande 'Python, como muchas tecnologías buenas, se expande rápidamente en el equipo de desarrollo y encuentra cabida rápidamente en el equipo de desarrollo y encuentra cabida en todo tipo de aplicaciones y herramientas' en todo tipo de aplicaciones y herramientas' Mustafa Thamer hablando de Civilization IV, Firaxis Games Mustafa Thamer hablando de Civilization IV, Firaxis Games 'Python nos permite enfrentar la complejidad 'Python nos permite enfrentar la complejidad de los programas sin enredarnos con el lenguaje' de los programas sin enredarnos con el lenguaje' Robin Friedrich, Ingeniero Senior del Proyecto Space Shuttle de NASA Robin Friedrich, Ingeniero Senior del Proyecto Space Shuttle de NASA
  9. Sebastián Magrí | @sebasmagri | Noviembre de 2012 Sebastián Magrí

    | @sebasmagri | Noviembre de 2012 Otros que usan Python en serio Otros que usan Python en serio Más en: Más en: http:/ /wiki.python.org/moin/OrganizationsUsingPython http:/ /wiki.python.org/moin/OrganizationsUsingPython http:/ /www.python.org/about/success/ http:/ /www.python.org/about/success/
  10. Sebastián Magrí | @sebasmagri | Noviembre de 2012 Sebastián Magrí

    | @sebasmagri | Noviembre de 2012 ¡Muéstrame el ¡Muéstrame el código! código!
  11. Sebastián Magrí | @sebasmagri | Noviembre de 2012 Sebastián Magrí

    | @sebasmagri | Noviembre de 2012 'Un gran poder 'Un gran poder conlleva una gran conlleva una gran responsabilidad.' responsabilidad.' El Tío Ben El Tío Ben (el de Spider-Man) (el de Spider-Man)
  12. Sebastián Magrí | @sebasmagri | Noviembre de 2012 Sebastián Magrí

    | @sebasmagri | Noviembre de 2012 Hola Mundo obligatorio... Hola Mundo obligatorio... >>> print 'Hola Mundo!' >>> print 'Hola Mundo!' 'Hola Mundo!' 'Hola Mundo!'
  13. Sebastián Magrí | @sebasmagri | Noviembre de 2012 Sebastián Magrí

    | @sebasmagri | Noviembre de 2012 Entrada y Salida Entrada y Salida >>> nombre = raw_input('Introduzca su nombre: ') >>> nombre = raw_input('Introduzca su nombre: ') Introduzca su nombre: Bond, James Bond Introduzca su nombre: Bond, James Bond >>> print(nombre) >>> print(nombre) Bond, James Bond Bond, James Bond
  14. Sebastián Magrí | @sebasmagri | Noviembre de 2012 Sebastián Magrí

    | @sebasmagri | Noviembre de 2012 Algo de Matemáticas Algo de Matemáticas >>> 1 + 1 >>> 1 + 1 2 2 >>> 120/6 >>> 120/6 20576 20576 >>> 120/6.5 >>> 120/6.5 18.46153846153846 18.46153846153846 >>> 120 % 6.5 >>> 120 % 6.5 3.0 3.0 >>> (1 + 3j) + (4.5 + 4j) >>> (1 + 3j) + (4.5 + 4j) (5.5+7j) (5.5+7j) >>> 2**3 >>> 2**3 8 8 >>> import math >>> import math >>> math.pi >>> math.pi 3.141592653589793 3.141592653589793 >>> math.e >>> math.e 2.718281828459045 2.718281828459045 >>> math.log(1) >>> math.log(1) 0.0 0.0 >>> math.log(2) >>> math.log(2) 0.6931471805599453 0.6931471805599453 >>> math.log(1) >>> math.log(1) 0.0 0.0 >>> math.pow(2,3) >>> math.pow(2,3) 8.0 8.0 >>> math.sqrt(4) >>> math.sqrt(4) 2.0 2.0
  15. Sebastián Magrí | @sebasmagri | Noviembre de 2012 Sebastián Magrí

    | @sebasmagri | Noviembre de 2012 Tipos de Datos Tipos de Datos # Números enteros # Números enteros uno = 1 uno = 1 # de coma flotante # de coma flotante trespuntocinco = 3.5 trespuntocinco = 3.5 # imaginarios # imaginarios noexiste = 1 + 4j noexiste = 1 + 4j # Valor nulo # Valor nulo nulo = None nulo = None # Constantes lógicas # Constantes lógicas si = True si = True no = False no = False # Cadenas # Cadenas nombre = 'Bond, James Bond' nombre = 'Bond, James Bond' # Listas y tuplas # Listas y tuplas compras = ['harina', 'gas'] compras = ['harina', 'gas'] compras.append('queso') compras.append('queso') tareas = ('limpiar', 'jugar') tareas = ('limpiar', 'jugar') tareas.remove(0) # Error tareas.remove(0) # Error # Diccionarios # Diccionarios datos_usuario = { datos_usuario = { 'nombre': 'pedro', 'nombre': 'pedro', 'clave': '1234' 'clave': '1234' } }
  16. Sebastián Magrí | @sebasmagri | Noviembre de 2012 Sebastián Magrí

    | @sebasmagri | Noviembre de 2012 Indentación Indentación Python separa los bloques de código por indentación Python separa los bloques de código por indentación En C/C++: En C/C++: if (bla) { if (bla) { if (abc) { if (abc) { printf('abc'); printf('abc'); } } else { else { printf(' printf('???? ????') ') }} }} En Python: En Python: if bla: if bla: if abc: if abc: printf('abc') printf('abc') else: else: printf(' printf('???? ????') ') En C/C++: En C/C++: if (bla) { if (bla) { if (abc) { if (abc) { printf('abc'); printf('abc'); } } else { else { // Donde estoy??? // Donde estoy??? }} }}
  17. Sebastián Magrí | @sebasmagri | Noviembre de 2012 Sebastián Magrí

    | @sebasmagri | Noviembre de 2012 Control de Flujo Control de Flujo if nota > 18: if nota > 18: if nota == 20: if nota == 20: print('Imposible') print('Imposible') else: else: print('Excelente') print('Excelente') elif nota >= 15: elif nota >= 15: print('Bueno') print('Bueno') elif nota >= 10: elif nota >= 10: print('Regular') print('Regular') else: else: print('Raspao') print('Raspao') for cosa in compras: for cosa in compras: print(cosa) print(cosa) x = 0 x = 0 while x < 10: while x < 10: print(x) print(x) x += 1 x += 1
  18. Sebastián Magrí | @sebasmagri | Noviembre de 2012 Sebastián Magrí

    | @sebasmagri | Noviembre de 2012 Funciones Funciones def hola def hola(): (): 'Función que devuelve hola' 'Función que devuelve hola' return 'hola' return 'hola' def con_nombre(nombre): def con_nombre(nombre): ''' ''' Función que recibe un nombre Función que recibe un nombre y le dice hola y le dice hola ''' ''' return 'hola ' + nombre return 'hola ' + nombre def valor_por_defecto(nombre='mundo'): def valor_por_defecto(nombre='mundo'): 'Función con un valor por defecto' 'Función con un valor por defecto' return hola_con_nombre(nombre) return hola_con_nombre(nombre) >>> hola() >>> hola() 'hola' 'hola' >>> con_nombre('Pedro') >>> con_nombre('Pedro') 'hola Pedro' 'hola Pedro' >>> valor_por_defecto() >>> valor_por_defecto() 'hola mundo' 'hola mundo' >>> valor_por_defecto('Juan') >>> valor_por_defecto('Juan') 'hola Juan' 'hola Juan'
  19. Sebastián Magrí | @sebasmagri | Noviembre de 2012 Sebastián Magrí

    | @sebasmagri | Noviembre de 2012 Usando módulos Usando módulos import random import random noseque = random.random() noseque = random.random() import math import math import datetime import datetime import this import this
  20. Sebastián Magrí | @sebasmagri | Noviembre de 2012 Sebastián Magrí

    | @sebasmagri | Noviembre de 2012 import this import this (el Zen de Python) (el Zen de Python)
  21. Sebastián Magrí | @sebasmagri | Noviembre de 2012 Sebastián Magrí

    | @sebasmagri | Noviembre de 2012 El poder de los módulos El poder de los módulos
  22. Sebastián Magrí | @sebasmagri | Noviembre de 2012 Sebastián Magrí

    | @sebasmagri | Noviembre de 2012 Haciendo con Python Haciendo con Python • Buscar si ya existe (o Google es su amigo) Buscar si ya existe (o Google es su amigo) • No reinventar la rueda No reinventar la rueda • Los entornos de trabajo (Frameworks): Los entornos de trabajo (Frameworks): • GTK+, PyQt GTK+, PyQt Interfaces Gráficas ►Interfaces Gráficas ► • Django, Plone, Flask Django, Plone, Flask Desarrollo Web ►Desarrollo Web ► • PyGame, Cocos2D Juegos ► PyGame, Cocos2D Juegos ► • Numpy, Scipy Simulación y Ciencias ► Numpy, Scipy Simulación y Ciencias ► • Buscar una comunidad de soporte Buscar una comunidad de soporte
  23. Sebastián Magrí | @sebasmagri | Noviembre de 2012 Sebastián Magrí

    | @sebasmagri | Noviembre de 2012 Aprendiendo más... Aprendiendo más... Python Venezuela Python Venezuela https://groups.google.com/forum/#!forum/python-venezuela https://groups.google.com/forum/#!forum/python-venezuela http://pyve.org.ve/ http://pyve.org.ve/ (En Construcción) (En Construcción) Python Hispano Python Hispano http://python-hispano.org/ http://python-hispano.org/ Python Argentina Python Argentina http://python.org.ar/ http://python.org.ar/ PyDay: PyDay: En El Tigre en Enero-Febrero de 2013 En El Tigre en Enero-Febrero de 2013