Conhencendo Python e por que ela importa?
Upcoming SlideShare
Loading in...5
×
 

Conhencendo Python e por que ela importa?

on

  • 4,813 views

Palestra realizada no dia 10/02/2011 no X Encontro do Grupo de Usuários de Python na Livraria Cultura (Recife -Pernambuco). Palestra com o título: "Conhecendo Python e por que ela importa ? "

Palestra realizada no dia 10/02/2011 no X Encontro do Grupo de Usuários de Python na Livraria Cultura (Recife -Pernambuco). Palestra com o título: "Conhecendo Python e por que ela importa ? "

Lecture presented at February 09th at X Meeting of Pernambuco Python User Group at Livraria Cultura (Recife - Pernambuco - Brazil) with the title: ' Meeting Python and why does it care ? "

Statistics

Views

Total Views
4,813
Views on SlideShare
4,064
Embed Views
749

Actions

Likes
2
Downloads
197
Comments
1

9 Embeds 749

http://www.mobideia.com 400
http://pugpe.wordpress.com 319
http://www.slideshare.net 18
http://mobideia.blogspot.com.br 4
http://translate.googleusercontent.com 3
http://mobideia.blogspot.com 2
http://draft.blogger.com 1
http://static.slidesharecdn.com 1
https://pugpe.wordpress.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />

Conhencendo Python e por que ela importa? Conhencendo Python e por que ela importa? Presentation Transcript

  • Conhecendo Python e Por que ele Marcel Pinheiro Caraciolo X Encontro do PUG-PE 1
  • Quem é o palestrante ?• Marcel Pinheiro Caraciolo - @marcelcaraciolo • Atualmente: Diretor de Pesquisa e Desenvolvimento (P&D) da Orygens • Mestrando em ciência da computação pela UFPE • Engenheiro da Computação pela POLI/UPE. (2008) Experiência com computação móvel e inteligente: • Blog Mobidéia: (http://www.mobideia.com) - Mobile • Blog A.I. in motion (http://aimotion.blogspot.com) - I.A. • Experiência com Python há mais de 2 anos. (Contribuições em frameworks I.A / mobile na comunidade open-source). Membro e Moderador do Grupo de Usuários de Python de Pernambuco (PUG-PE) X Encontro do PUG-PE 2
  • O que é python ? ‘Cobra’ em inglês ? Sim, também! X Encontro do PUG-PE 3
  • O que é python ?Linguagem criada por Guido van Rossum em 1991 ! !"#$%&$!()*"+,Nome inspirado no seriado Monty Python ! -"+)($!()*"+. ! /0)1$2#"3&)454313$67)&3"7$ 3489$:;<=>$9147$%&$?@?AA$$ B151C ! DE4F404313$3$GH34E" ! IJG40$12#+34813" ! I1G409+)$>)+7K50$ 6?@?AAL$B151C ! M2+$N"&#G ! -13&#1L$373$<OO<$6<P$ X Encontro do PUG-PE 1+"7C 4
  • O que é python ? X Encontro do PUG-PE 5
  • O que é python ?É fácil X Encontro do PUG-PE 5
  • Python é simples eSemelhança ao pseudo-código X Encontro do PUG-PE 6
  • Hello World Classíco... ‘hello world’ - Python vs { Java, C, PHP e Pascal } X Encontro do PUG-PE 7
  • Hello World Classíco.... Em Python .... print “Hello World” X Encontro do PUG-PE 8
  • O que é python ?É fácil X Encontro do PUG-PE 9
  • O que é python ?É fácil É poderoso X Encontro do PUG-PE 9
  • Canivete suíçoTipagem dinâmicaBiblioteca padrão completaMulti-paradigmaMulti-plataformaFacilmente extensívelFree Software (GPL) X Encontro do PUG-PE 10
  • ...E já vem comimport urllib2from BeautifulSoup import BeautifulSoupurl = "http://www.google.com"request = urllib2.Request(url)response = urllib2.urlopen(request)document = response.read()soup = BeautifulSoup(document)#normaliza o documento para que o mesmo seja acessível via objetoslinks = soup.findAll(a)# retorna uma lista com todos os links do documentofor link in links: print link[href] X Encontro do PUG-PE 11
  • ...E já vem comPersistência de ObjetosBanco de DadosGeração de PdfsProtocolos de RedeCriptografiaetc. X Encontro do PUG-PE 12
  • O que é python ?É fácil É poderoso X Encontro do PUG-PE 13
  • O que é python ?É fácil É poderoso É divertido X Encontro do PUG-PE 13
  • Fácil e poderoso!lista = [laranja, banana, uva]lista.sort() for item in lista:    print item.capitalize() X Encontro do PUG-PE 14
  • Hun, sei o que é ...E agora como eu começo ? X Encontro do PUG-PE 15
  • E como eu começo ?!Interpretador Python disponível para diversas plataformas. http://www.python.org/download http://www.python.org/ X Encontro do PUG-PE 16
  • E como eu começo ?! X Encontro do PUG-PE 17
  • E como eu começo ?! Diversos editores com suporte para desenvolvimento em Python X Encontro do PUG-PE 18
  • E como eu começo ?! Diversos editores com suporte para desenvolvimento em Python X Encontro do PUG-PE 18
  • ... e por que Python ? X Encontro do PUG-PE 19
  • ... e por que Python ? 8 motivos ! X Encontro do PUG-PE 19
  • ... e por que Python ? 1. Python é fácil e divertido X Encontro do PUG-PE 20
  • Python é legal!Com alguns comandos e eu posso copiar, ler e escrever arquivos!list_of_infiles = [‘file1.txt’, ‘file2.txt’, ‘file3.txt’]for file in list_of_infiles: file = open(file, ‘r’).read().replace(‘;’,’t’) out = open(‘fileOut.txt’,‘a’).write(file) out.close() file.close() X Encontro do PUG-PE 21
  • ... e por que Python ? 2. Python é poderoso X Encontro do PUG-PE 22
  • Python é multi-• Programação Estruturada def partition(list, l, e, g): if list == []: return (l, e, g) else: head = list[0] if head < e[0]: return partition(list[1:], l + [head], e, g) elif head > e[0]: return partition(list[1:], l, e, g + [head]) else: return partition(list[1:], l, e + [head], g) X Encontro do PUG-PE 23
  • Python é multi-• Programação orientada a objetos class Quicksort(object): def __init__(self,list): self.list = list def partition(self,list,l, e, g): if self.list == []: return (l, e, g) else: head = self.list[0] if head < e[0]: return partition(self.list[1:], l + [head], e, g) elif head > e[0]: return partition(self.list[1:], l, e, g + [head]) else: return partition(self.list[1:], l, e + [head], g) X Encontro do PUG-PE 24
  • Python é multi-• Programação funcionaldef qsort(L): if len(L) <= 1: return L return qsort( [ lt for lt in L[1:] if lt < L[0] ] ) + [ L[0] ] + qsort( [ ge for ge in L[1:] if ge >= L[0] ] ) X Encontro do PUG-PE 25
  • Python é multi-• Programação pythônica list.sort() X Encontro do PUG-PE 26
  • Python é multi- Linux, Unix, Windows, Mac OS... Até aqui nada surpreendente, certo ? X Encontro do PUG-PE 27
  • Python é multi-• Python em dispositivos móveis • Python for Symbian (PyS60), PySide (Maemo), ASE (Android) X Encontro do PUG-PE 28
  • Python é multi-• PyMT • Python Multi Touch • Especialmente criado para ambientes multi-touch http://pymt.eu/ X Encontro do PUG-PE 29
  • Python é multi-• E até no Iphone!! • Django portado para Iphone http://www.webmonkey.com/2007/08/running_django_on_the_iphone/ http://leepa.github.com/django-iphone-push/ http://code.google.com/p/django-mobileadmin/ X Encontro do PUG-PE 30
  • E tem vários acessórios! NetworkX http://pypi.python.org/pypi X Encontro do PUG-PE 31
  • ... e por que Python ? 3. Python é utilizado ao redor do mundo X Encontro do PUG-PE 32
  • Python é utilizado lá II Encontro X Encontro do Pernambuco Livre - Recife - PUG-PE 33
  • ... e aqui no Brasil X Encontro do PUG-PE 34
  • Python entre as 10 + ! http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html X Encontro do PUG-PE 35
  • Depoimentos sobre PythonGoogle:"Python tem tido um papel importante dentro do Google desde o início, e continua sendo à medida que nosso sistema cresce e evolui. Hoje vários engenheiros do Google usam Python, e nós estamos procurando mais pessoas com habilidades nesta linguagem.” - Peter Norvig, Diretor de Qualidade de Pesquisa, Google Inc.Industrial Light & Magic:“Python desempenha um papel fundamental em nosso esquema de produção. Sem ele um projeto do tamanho do filme Star Wars: Episode II seria impossível sair do papel. Desde renderização de personagens a processamento em lote na composição da trilha, Python integra tudo facilmente.” - Tommy Burnette, Diretor Técnico Senior, Industrial Light&Magic Inc. X Encontro do PUG-PE 36
  • Depoimentos sobre PythonMameluco - Projeto Social Cats “Nós da Mameluco escolhemos Python desde o início do nosso primeiro projeto, o website CATS. [..] Conseguimos instalar a plataforma de desenvolvimento, configurá-lo no IDE Eclipse e escrever um ‘Hello World’ em questão de minutos. [...] Durante o desenvolvimento do CATS, trabalhei muito com JavaEE emoutro projeto. A dificuldade de configuração, necessidade de ler centenas de páginas e pouca expressividade me fizeram abandonar Java como Primeira linguagem. Foi Python mesmo que encontrei a maneira mais natural de programar servidores, clientes HTTP e serviços REST.” Flávio Juvenal - CTO - MamelucoOrygens:“Escolhemos Python nos nossos projetos por ser uma linguagem madura e de fácil aprendizado e com uma comunidade ativa de usuários. Além de atender nossas necessidades, até nosso designer está aprendendodesenvolver em Python/Django e está achando muito simples. Nós prentendemos usá-lo em vários outros projetos da Orygens [...]. Além da simplicação do desenvolvimento web, [...] reduziu a complexidade e tempo em um novo projeto”. Rafael Carício - CTO - http://atepassar.comInstituto Nokia de Tecnologia:[...] “Desenvolvemos bindings de Qt(C++) para Python: PySide. Python me chamou atenção por ser usadona maioria dos projetos open source dos quais sou usuário. Aprender Python foi muito rápido e o código é muito agradável de ler.[...] Recomendaria Python a qualquer um, [...] creio que só não recomendaria para quem gosta de declarar os tipos e suas variáveis previamente.” Marcelo Lira, Desenvolvedor, INDT X Encontro do PUG-PE 37
  • PyGame e Jogos http://www.pygame.org/news.html X Encontro do PUG-PE 38
  • Aplicativos Desktophttp://svn.softwarepublico.gov.br/trac/invesalius X Encontro do PUG-PE 39
  • Aplicativos Desktop http://www.blender.org/ X Encontro do PUG-PE 40
  • Aplicativos Desktophttp://www.stoq.com.br/ http://taskcoach.org/ X Encontro do PUG-PE 41
  • Aplicativos Desktop Python + Qt + Qml X Encontro do PUG-PE 42
  • ... e por que Python ? 4. Python é utilizado na web ao redor do mundo X Encontro do PUG-PE 43
  • Web lá fora! http://pt.reddit.com/ http://www.nationalgeographic.com/ http://sourceforge.net/ http://www.youtube.com/ X Encontro do PUG-PE 44
  • Web aqui dentro!http://www.receita.fazenda.gov.br/ http://atepassar.com/ http://www.brasil.gov.br/, http://www.vericia.com/, http://www.dapress.com.br/, http://filmow.com , etc. X Encontro do PUG-PE 45
  • ... e por que Python ? 5. Há empregos para desenvolvedores Python X Encontro do PUG-PE 46
  • Por aqui... X Encontro do PUG-PE 47
  • Por aqui...http://empregos.trovitbrasil.com.br/python, listas de discussão, ... X Encontro do PUG-PE 48
  • Por lá... http://www.python.org/community/jobs/ X Encontro do PUG-PE 49
  • Por lá... Número de ofertas de emprego 60 49 56 45 37 30 19 15 Nov-2010 Dec-2010 0 Jan-2011 Feb-2011 http://www.python.org/community/jobs/ X Encontro do PUG-PE 50
  • Até em casa! http://www.freelancer.com/projects/ X Encontro do PUG-PE 51
  • ... e por que Python ? 6. Conversa bem com outras linguagens X Encontro do PUG-PE 52
  • Python e C/C++static PyObject *my_callback = NULL;static PyObject *my_set_callback(PyObject *dummy, PyObject *args){ PyObject *result = NULL; PyObject *temp; if (PyArg_ParseTuple(args, "O:set_callback", &temp)) { if (!PyCallable_Check(temp)) { Você pode extender } PyErr_SetString(PyExc_TypeError, "parameter must be callable"); return NULL; Python ou usá-lo em Py_XINCREF(temp); /* Add a reference to new callback */ Py_XDECREF(my_callback); /* Dispose of previous callback */ my_callback = temp; /* Remember new callback */ códigos C/C++ /* Boilerplate to return "None" */ Py_INCREF(Py_None); result = Py_None; } return result;} http://docs.python.org/extending/extending.html X Encontro do PUG-PE 53
  • Python e Javaimport javax.swing as sshwingfirstNum = sshwing.JOptionPane.showInputDialog(“Enter an integer:”)scndNum = sshwing.JOptionPane.showInputDialog(“Enter an integer:”)sum = int(firstNum) +   int(scndNum)sshwing.JOptionPane.showMessageDialog(None, “The sum of your integers is %d “ % sum) http://www.jython.org/ X Encontro do PUG-PE 54
  • Python e .Netimport syssys.path.append(r’C:Python25Lib’)import clrclr.AddReference(“System.Windows.Forms”)from System.Windows.Forms import Application,Formclass Hello World(Form): def __init__(self): self.Text = ʻHello Worldʼ self.Name = ʻHello Worldʼform = HelloWorld(Form)Application.Run(Form http://ironpython.net/ X Encontro do PUG-PE 55
  • Python e muito mais! PyMat - Matlabhttp://claymore.engineer.gvsu.edu/~steriana/Python/pymat.html http://rpy.sourceforge.net/ http://code.google.com/p/pyswip/ http://appscript.sourceforge.net/ X Encontro do PUG-PE 56
  • Interpretada, e o desempenho? “Não fique apenas com o conhecimento que você tem do código.” Módulos para Python escritos em C. (Extensões): Ex: PyRex PyPy: Implementação da linguagem Python em Python (Otimizando a linguagem). http://pypy.org Psyco: Compilador para Python que gera código nativo da máquina (2x - 100x) http://psyco.sourceforge.net/200150100 Lines of code Time per iteration (ms) 50 0 Sun JDK 1.6.0 C++ 4.13 Python + Psyco Python 2.5.1 http://blog.dhananjaynene.com/2008/07/performance-comparison-c-java-python-ruby-jython-jruby-groovy/ X Encontro do PUG-PE 57
  • ... e por que Python ?7. Uma boa linguagem para quem está começando! X Encontro do PUG-PE 58
  • Aprendar programar comhttp://ark4n.wordpress.com/python/ http://www.aprendendodjango.com/http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-00Fall-2008/CourseHome/index.htm X Encontro do PUG-PE 59
  • Aprendar programar com Universidade Federal Rural de Pernambuco já adota Python Bacharelado em Sistemas de Informação Licenciatura em Física Licenciatura em Computação[...] O curso BSI-UFRPE tem como Python a LP oficial do curso! Todas as disciplinas que envolvem programação [...], usam Python! Recentemente tenho experimentado usar algo que é fantástico em Python para ensinar a programar: Python é híbrida. [...] O resultado desta experiência está sendo organizado em um texto [...], e pretendo transformá-lo até o fim do ano em um livro, cujo título provisório é ‘Python como Primeira LP: Uma abordagem Imperativa, Funcional e Orientada a Objetos”. Prof. PHD Wilson Rosa - Pesquisador UFRPE X Encontro do PUG-PE 60
  • ... e por que Python ?8. Uma comunidade forte com que você pode contar! X Encontro do PUG-PE 61
  • 24 hrs ao seu dispor! http://br.groups.yahoo.com/group/python-brasil/ X Encontro do PUG-PE 62
  • PUG - PE Grupo de usuários de Python de Pernambucohttp://groups.google.com/group/pug-pe?hl=pt-BR X Encontro do PUG-PE 63
  • Razão bônus! 9. Permite expor suas idéias de forma rápida! X Encontro do PUG-PE 64
  • TransitoRecife (Web)Monitorando o trânsito de algumas vias do Recife X Encontro do PUG-PE 65
  • TransitoRecife (Web)Monitorando o trânsito de algumas vias do Recife X Encontro do PUG-PE 65
  • TransitoRecife (Web)Monitorando o trânsito de algumas vias do Recife http://twitter.com/transitoRE X Encontro do PUG-PE 65
  • TransitoRecife (Web)Monitorando o trânsito de algumas vias do Recife http://twitter.com/transitoRE X Encontro do PUG-PE 65
  • TransitoRecife (Web)Monitorando o trânsito de algumas vias do Recife http://twitter.com/transitoRE Apenas 65 linhas de código! X Encontro do PUG-PE 65
  • TransitoRecife (Celular) ... E também via celular! TransitoRecife no Nokia E63 66
  • TransitoRecife (Celular) ... E também via celular! TransitoRecife no Nokia E63 66
  • TransitoRecife (Celular) ... E também via celular! TransitoRecife no Nokia E63 66
  • TransitoRecife (Celular) ... E também via celular! TransitoRecife no Nokia E63 66
  • Referênciashttp://www.slideshare.net/marcoandre/porque-python-fisl-90 (Marcos André - FISL 9)http://www.slideshare.net/flavioribeiro/introduo-a-linguagem-de-programao-python-presentationhttp://www.python.org/http://www.pythonbrasil.org.br/http://ark4n.wordpress.com/python/E-mails, Listas, Fóruns, conversas no Google Talk, etc. X Encontro do PUG-PE 67
  • Chegamos ao fim !!Hora da random.choice([pergunta, dúvida, discussão]) !! X Encontro do PUG-PE 68
  • Conhecendo Python e Por que ele Marcel Pinheiro Caraciolo email: caraciol@gmail.com twitter: marcelcaraciolo X Encontro do PUG-PE 69