SlideShare uma empresa Scribd logo
1 de 81
Baixar para ler offline
Conhecendo Python e
Por que ele importa?
            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'$6'7)&3"7$
                348'9$:;<=>$9147$%&'$?@?AA$'$
                B151C

            !   D'E4F404313'$3'$GH34E"

            !   IJG40$12#'+34813"

            !   I1G409'+)'$'>)'+7K5'0$
                6?@?AAL$B151C

            !   M2'+$N"&#G'

            !   -13&#1L$3'73'$<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 e legível
Semelhanç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íço
Tipagem dinâmica

Biblioteca padrão completa

Multi-paradigma

Multi-plataforma

Facilmente extensível

Free Software (GPL)

                             X Encontro do PUG-PE




                                                    10
...E já vem com acessórios
import urllib2
from BeautifulSoup import BeautifulSoup

url = "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 objetos

links = soup.findAll('a')
# retorna uma lista com todos os links do documento

for link in links:
    print link['href']


                                                        X Encontro do PUG-PE




                                                                               11
...E já vem com acessórios
Persistência de Objetos

Banco de Dados

Geração de Pdfs

Protocolos de Rede

Criptografia

etc.

                          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 é Python!


    ...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-paradigma
•    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-paradigma
•   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-paradigma
•   Programação funcional

def 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-paradigma
•   Programação pythônica




               list.sort()




                             X Encontro do PUG-PE


                                                    26
Python é multi-plataforma


 Linux, Unix, Windows, Mac OS...

 Até aqui nada surpreendente, certo ?




                                   X Encontro do PUG-PE


                                                          27
Python é multi-plataforma
•   Python em dispositivos móveis
    •   Python for Symbian (PyS60), PySide (Maemo), ASE (Android)




                                                   X Encontro do PUG-PE


                                                                          28
Python é multi-plataforma

•   PyMT
    •   Python Multi Touch

    •   Especialmente criado para
        ambientes multi-touch




    http://pymt.eu/

                                    X Encontro do PUG-PE


                                                           29
Python é multi-plataforma


•   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á fora




                    II Encontro X Encontro do Pernambuco
                                Livre - Recife - PUG-PE



                                                           33
... e aqui no Brasil também!




                     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 Python
Google:
"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 Python
Mameluco - 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 em
outro 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 - Mameluco

Orygens:
“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á aprendendo
desenvolver 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.com

Instituto Nokia de Tecnologia:
[...] “Desenvolvemos bindings de Qt(C++) para Python: PySide. Python me chamou atenção por ser usado
na 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 Desktop




http://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 Desktop




http://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 Java
import javax.swing as sshwing
firstNum = 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 .Net
import sys
sys.path.append(r’C:Python25Lib’)
import clr
clr.AddReference(“System.Windows.Forms”)
from System.Windows.Forms import Application,Form
class 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 - Matlab




http://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/
200

150

100                                                                                                                       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 com Python




http://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 Python
  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
               Pernambuco
http://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ências
http://www.slideshare.net/marcoandre/porque-python-fisl-90 (Marcos André - FISL 9)

http://www.slideshare.net/flavioribeiro/introduo-a-linguagem-de-programao-python-presentation

http://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 importa?
      Marcel Pinheiro Caraciolo
     email: caraciol@gmail.com
      twitter: marcelcaraciolo
                                  X Encontro do PUG-PE


                                                         69

Mais conteúdo relacionado

Mais procurados

Introdução à linguagem de programação Python
Introdução à linguagem de programação PythonIntrodução à linguagem de programação Python
Introdução à linguagem de programação Python
Carlos Schults
 
Python - Guia de bolso
Python - Guia de bolsoPython - Guia de bolso
Python - Guia de bolso
Jean Lopes
 
Python - Introdução Básica
Python - Introdução BásicaPython - Introdução Básica
Python - Introdução Básica
Christian Perone
 

Mais procurados (20)

Palestra Apresentando Python e Suas Aplicações
Palestra Apresentando Python e Suas AplicaçõesPalestra Apresentando Python e Suas Aplicações
Palestra Apresentando Python e Suas Aplicações
 
Introdução à linguagem de programação Python
Introdução à linguagem de programação PythonIntrodução à linguagem de programação Python
Introdução à linguagem de programação Python
 
Canivete python
Canivete pythonCanivete python
Canivete python
 
Canivete suíço do Python
Canivete suíço do PythonCanivete suíço do Python
Canivete suíço do Python
 
Introdução a linguagem Python
Introdução a linguagem PythonIntrodução a linguagem Python
Introdução a linguagem Python
 
Programando para web com python - Introdução a Python
Programando para web com python - Introdução a PythonProgramando para web com python - Introdução a Python
Programando para web com python - Introdução a Python
 
Python como primeira linguagem de programação
Python como primeira linguagem de programaçãoPython como primeira linguagem de programação
Python como primeira linguagem de programação
 
Python - Guia de bolso
Python - Guia de bolsoPython - Guia de bolso
Python - Guia de bolso
 
Matando o Java e Mostrando o Python
Matando o Java e Mostrando o PythonMatando o Java e Mostrando o Python
Matando o Java e Mostrando o Python
 
Python - Introdução
Python - IntroduçãoPython - Introdução
Python - Introdução
 
Introdução a Linguagem de Programação Python
Introdução a Linguagem de Programação PythonIntrodução a Linguagem de Programação Python
Introdução a Linguagem de Programação Python
 
Python - Introdução Básica
Python - Introdução BásicaPython - Introdução Básica
Python - Introdução Básica
 
Como tornar-se um programador Python melhor
Como tornar-se um programador Python melhorComo tornar-se um programador Python melhor
Como tornar-se um programador Python melhor
 
Python - Programando em alto nível
Python - Programando em alto nívelPython - Programando em alto nível
Python - Programando em alto nível
 
Python, a arma secreta do Google
Python, a arma secreta do GooglePython, a arma secreta do Google
Python, a arma secreta do Google
 
Python Mini Ccurso Consegi2011
Python Mini Ccurso Consegi2011Python Mini Ccurso Consegi2011
Python Mini Ccurso Consegi2011
 
Arduino: hardware hacking & coding dojo
Arduino: hardware hacking & coding dojoArduino: hardware hacking & coding dojo
Arduino: hardware hacking & coding dojo
 
Curso básico de Algoritmos com Python
Curso básico de Algoritmos com PythonCurso básico de Algoritmos com Python
Curso básico de Algoritmos com Python
 
Introdução à linguagem Python
Introdução à linguagem PythonIntrodução à linguagem Python
Introdução à linguagem Python
 
Minicurso: Python e suas baterias incluídas
Minicurso: Python e suas baterias incluídasMinicurso: Python e suas baterias incluídas
Minicurso: Python e suas baterias incluídas
 

Destaque

Python e Django na Globo.com
Python e Django na Globo.comPython e Django na Globo.com
Python e Django na Globo.com
ricobl
 
Rain Toolbox - Previsão de Chuvas
Rain Toolbox -  Previsão de ChuvasRain Toolbox -  Previsão de Chuvas
Rain Toolbox - Previsão de Chuvas
pugpe
 
Computação Científica com Python
Computação Científica com PythonComputação Científica com Python
Computação Científica com Python
Hugo Serrano
 
Palestra sobre Collections com Python
Palestra sobre Collections com PythonPalestra sobre Collections com Python
Palestra sobre Collections com Python
pugpe
 
NoSQL com Cassandra e Python
NoSQL com Cassandra e PythonNoSQL com Cassandra e Python
NoSQL com Cassandra e Python
pugpe
 
Clustering com numpy e cython
Clustering com numpy e cythonClustering com numpy e cython
Clustering com numpy e cython
Anderson Dantas
 

Destaque (20)

Python e Django na Globo.com
Python e Django na Globo.comPython e Django na Globo.com
Python e Django na Globo.com
 
python.ppt
python.pptpython.ppt
python.ppt
 
Python: programação divertida novamente
Python: programação divertida novamentePython: programação divertida novamente
Python: programação divertida novamente
 
O CartolaFC e o processo de desenvolvimento na globo.com
O CartolaFC e o processo de desenvolvimento na globo.comO CartolaFC e o processo de desenvolvimento na globo.com
O CartolaFC e o processo de desenvolvimento na globo.com
 
Programando com Python
Programando com PythonProgramando com Python
Programando com Python
 
Por que python? fisl 14 - 2013
Por que python?   fisl 14 - 2013Por que python?   fisl 14 - 2013
Por que python? fisl 14 - 2013
 
Rain Toolbox - Previsão de Chuvas
Rain Toolbox -  Previsão de ChuvasRain Toolbox -  Previsão de Chuvas
Rain Toolbox - Previsão de Chuvas
 
Pug
PugPug
Pug
 
Computação Científica com Python
Computação Científica com PythonComputação Científica com Python
Computação Científica com Python
 
Python na formacao_de_jovens
Python na formacao_de_jovensPython na formacao_de_jovens
Python na formacao_de_jovens
 
Palestra sobre Collections com Python
Palestra sobre Collections com PythonPalestra sobre Collections com Python
Palestra sobre Collections com Python
 
NoSQL com Cassandra e Python
NoSQL com Cassandra e PythonNoSQL com Cassandra e Python
NoSQL com Cassandra e Python
 
Clustering com numpy e cython
Clustering com numpy e cythonClustering com numpy e cython
Clustering com numpy e cython
 
Apresentando o I Toró de Palestras do PUG-PE
Apresentando o I Toró de Palestras do PUG-PEApresentando o I Toró de Palestras do PUG-PE
Apresentando o I Toró de Palestras do PUG-PE
 
(entregando djangoapps)@tangerinalab - pugpe xv
(entregando djangoapps)@tangerinalab - pugpe xv(entregando djangoapps)@tangerinalab - pugpe xv
(entregando djangoapps)@tangerinalab - pugpe xv
 
Peça seu código em casamento: Votos, Tópicos e TDD
Peça seu código em casamento: Votos, Tópicos e TDDPeça seu código em casamento: Votos, Tópicos e TDD
Peça seu código em casamento: Votos, Tópicos e TDD
 
Pyjamas: Uma Ferramenta Pythônica para Web
Pyjamas: Uma Ferramenta Pythônica para WebPyjamas: Uma Ferramenta Pythônica para Web
Pyjamas: Uma Ferramenta Pythônica para Web
 
Porque foi bom aprender com Python
Porque foi bom aprender com PythonPorque foi bom aprender com Python
Porque foi bom aprender com Python
 
Arduino e python
Arduino e pythonArduino e python
Arduino e python
 
Coding Dojo e Test Driven Development
Coding Dojo e Test Driven DevelopmentCoding Dojo e Test Driven Development
Coding Dojo e Test Driven Development
 

Semelhante a Conhencendo Python e por que ela importa?

Python Pythononcampus Uva 060609
Python Pythononcampus Uva 060609Python Pythononcampus Uva 060609
Python Pythononcampus Uva 060609
gsroma
 
Por que escolher Python?
Por que escolher Python?Por que escolher Python?
Por que escolher Python?
Igor Leroy
 
O poder do Python/Django
O poder do Python/DjangoO poder do Python/Django
O poder do Python/Django
Átila Bezerra
 
O Prazer De Trabalhar Com Python
O Prazer De Trabalhar Com PythonO Prazer De Trabalhar Com Python
O Prazer De Trabalhar Com Python
Marinho Brandão
 
Comsolid2011 Introdução Python
Comsolid2011 Introdução PythonComsolid2011 Introdução Python
Comsolid2011 Introdução Python
Gleison Rodrigues
 

Semelhante a Conhencendo Python e por que ela importa? (20)

Python Pythononcampus Uva 060609
Python Pythononcampus Uva 060609Python Pythononcampus Uva 060609
Python Pythononcampus Uva 060609
 
Python-Fenalivre-Imed
Python-Fenalivre-ImedPython-Fenalivre-Imed
Python-Fenalivre-Imed
 
Python para programadores Ruby
Python para programadores RubyPython para programadores Ruby
Python para programadores Ruby
 
Linguagem Python
Linguagem PythonLinguagem Python
Linguagem Python
 
The zen of python 2010
The zen of python 2010The zen of python 2010
The zen of python 2010
 
Python
PythonPython
Python
 
Por que Python? Vamos Conhecer? Vamos Aprender?
Por que Python? Vamos Conhecer? Vamos Aprender?Por que Python? Vamos Conhecer? Vamos Aprender?
Por que Python? Vamos Conhecer? Vamos Aprender?
 
Por que escolher Python?
Por que escolher Python?Por que escolher Python?
Por que escolher Python?
 
Empreendendo com Python
Empreendendo com PythonEmpreendendo com Python
Empreendendo com Python
 
Mini-Curso de Python dia 21/03 (Segunda-Feira) no II Workshop de SL do CIN/UFPE
Mini-Curso de Python dia 21/03 (Segunda-Feira) no II Workshop de SL do CIN/UFPEMini-Curso de Python dia 21/03 (Segunda-Feira) no II Workshop de SL do CIN/UFPE
Mini-Curso de Python dia 21/03 (Segunda-Feira) no II Workshop de SL do CIN/UFPE
 
O poder do Python/Django
O poder do Python/DjangoO poder do Python/Django
O poder do Python/Django
 
O Prazer De Trabalhar Com Python
O Prazer De Trabalhar Com PythonO Prazer De Trabalhar Com Python
O Prazer De Trabalhar Com Python
 
Python e 10 motivos por que devo conhece-la ?
Python e 10 motivos por que devo conhece-la ?Python e 10 motivos por que devo conhece-la ?
Python e 10 motivos por que devo conhece-la ?
 
Python e tipagem estática
Python e tipagem estáticaPython e tipagem estática
Python e tipagem estática
 
Comsolid2011 Introdução Python
Comsolid2011 Introdução PythonComsolid2011 Introdução Python
Comsolid2011 Introdução Python
 
Aula 01 python
Aula 01 pythonAula 01 python
Aula 01 python
 
Administração de sistemas usando Python
Administração de sistemas usando PythonAdministração de sistemas usando Python
Administração de sistemas usando Python
 
PL/Python: Programando em Python no PostgreSQL
PL/Python: Programando em Python no PostgreSQLPL/Python: Programando em Python no PostgreSQL
PL/Python: Programando em Python no PostgreSQL
 
Porque python é legal! d
Porque python é legal!  dPorque python é legal!  d
Porque python é legal! d
 
Python brasil[6]
Python brasil[6]Python brasil[6]
Python brasil[6]
 

Mais de Marcel Caraciolo

Mais de Marcel Caraciolo (20)

Como interpretar seu próprio genoma com Python
Como interpretar seu próprio genoma com PythonComo interpretar seu próprio genoma com Python
Como interpretar seu próprio genoma com Python
 
Joblib: Lightweight pipelining for parallel jobs (v2)
Joblib:  Lightweight pipelining for parallel jobs (v2)Joblib:  Lightweight pipelining for parallel jobs (v2)
Joblib: Lightweight pipelining for parallel jobs (v2)
 
Construindo softwares de bioinformática para análises clínicas : Desafios e...
Construindo softwares  de bioinformática  para análises clínicas : Desafios e...Construindo softwares  de bioinformática  para análises clínicas : Desafios e...
Construindo softwares de bioinformática para análises clínicas : Desafios e...
 
Como Python ajudou a automatizar o nosso laboratório v.2
Como Python ajudou a automatizar o nosso laboratório v.2Como Python ajudou a automatizar o nosso laboratório v.2
Como Python ajudou a automatizar o nosso laboratório v.2
 
Como Python pode ajudar na automação do seu laboratório
Como Python pode ajudar na automação do  seu laboratórioComo Python pode ajudar na automação do  seu laboratório
Como Python pode ajudar na automação do seu laboratório
 
Python on Science ? Yes, We can.
Python on Science ?   Yes, We can.Python on Science ?   Yes, We can.
Python on Science ? Yes, We can.
 
Oficina Python: Hackeando a Web com Python 3
Oficina Python: Hackeando a Web com Python 3Oficina Python: Hackeando a Web com Python 3
Oficina Python: Hackeando a Web com Python 3
 
Recommender Systems with Ruby (adding machine learning, statistics, etc)
Recommender Systems with Ruby (adding machine learning, statistics, etc)Recommender Systems with Ruby (adding machine learning, statistics, etc)
Recommender Systems with Ruby (adding machine learning, statistics, etc)
 
Opensource - Como começar e dá dinheiro ?
Opensource - Como começar e dá dinheiro ?Opensource - Como começar e dá dinheiro ?
Opensource - Como começar e dá dinheiro ?
 
Big Data com Python
Big Data com PythonBig Data com Python
Big Data com Python
 
Benchy, python framework for performance benchmarking of Python Scripts
Benchy, python framework for performance benchmarking  of Python ScriptsBenchy, python framework for performance benchmarking  of Python Scripts
Benchy, python framework for performance benchmarking of Python Scripts
 
GeoMapper, Python Script for Visualizing Data on Social Networks with Geo-loc...
GeoMapper, Python Script for Visualizing Data on Social Networks with Geo-loc...GeoMapper, Python Script for Visualizing Data on Social Networks with Geo-loc...
GeoMapper, Python Script for Visualizing Data on Social Networks with Geo-loc...
 
Benchy: Lightweight framework for Performance Benchmarks
Benchy: Lightweight framework for Performance Benchmarks Benchy: Lightweight framework for Performance Benchmarks
Benchy: Lightweight framework for Performance Benchmarks
 
Construindo Sistemas de Recomendação com Python
Construindo Sistemas de Recomendação com PythonConstruindo Sistemas de Recomendação com Python
Construindo Sistemas de Recomendação com Python
 
Python, A pílula Azul da programação
Python, A pílula Azul da programaçãoPython, A pílula Azul da programação
Python, A pílula Azul da programação
 
Construindo Soluções Científicas com Big Data & MapReduce
Construindo Soluções Científicas com Big Data & MapReduceConstruindo Soluções Científicas com Big Data & MapReduce
Construindo Soluções Científicas com Big Data & MapReduce
 
Como Python está mudando a forma de aprendizagem à distância no Brasil
Como Python está mudando a forma de aprendizagem à distância no BrasilComo Python está mudando a forma de aprendizagem à distância no Brasil
Como Python está mudando a forma de aprendizagem à distância no Brasil
 
Novas Tendências para a Educação a Distância: Como reinventar a educação ?
Novas Tendências para a Educação a Distância: Como reinventar a educação ?Novas Tendências para a Educação a Distância: Como reinventar a educação ?
Novas Tendências para a Educação a Distância: Como reinventar a educação ?
 
Aula WebCrawlers com Regex - PyCursos
Aula WebCrawlers com Regex - PyCursosAula WebCrawlers com Regex - PyCursos
Aula WebCrawlers com Regex - PyCursos
 
Arquivos Zip com Python - Aula PyCursos
Arquivos Zip com Python - Aula PyCursosArquivos Zip com Python - Aula PyCursos
Arquivos Zip com Python - Aula PyCursos
 

Último

Último (9)

Aula 01 - Introducao a Processamento de Frutos e Hortalicas.pdf
Aula 01 - Introducao a Processamento de Frutos e Hortalicas.pdfAula 01 - Introducao a Processamento de Frutos e Hortalicas.pdf
Aula 01 - Introducao a Processamento de Frutos e Hortalicas.pdf
 
Palestras sobre Cibersegurança em Eventos - Paulo Pagliusi
Palestras sobre Cibersegurança em Eventos - Paulo PagliusiPalestras sobre Cibersegurança em Eventos - Paulo Pagliusi
Palestras sobre Cibersegurança em Eventos - Paulo Pagliusi
 
ATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docx
ATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docxATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docx
ATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docx
 
ATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docx
ATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docxATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docx
ATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docx
 
Entrevistas, artigos, livros & citações de Paulo Pagliusi
Entrevistas, artigos, livros & citações de Paulo PagliusiEntrevistas, artigos, livros & citações de Paulo Pagliusi
Entrevistas, artigos, livros & citações de Paulo Pagliusi
 
EAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIA
EAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIAEAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIA
EAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIA
 
Convergência TO e TI nas Usinas - Setor Sucroenergético
Convergência TO e TI nas Usinas - Setor SucroenergéticoConvergência TO e TI nas Usinas - Setor Sucroenergético
Convergência TO e TI nas Usinas - Setor Sucroenergético
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
COI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINAS
COI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINASCOI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINAS
COI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINAS
 

Conhencendo Python e por que ela importa?

  • 1. Conhecendo Python e Por que ele importa? Marcel Pinheiro Caraciolo X Encontro do PUG-PE 1
  • 2. 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
  • 3. O que é python ? ‘Cobra’ em inglês ? Sim, também! X Encontro do PUG-PE 3
  • 4. O que é python ? Linguagem criada por Guido van Rossum em 1991 ! !"#$%&'$!()*"+, Nome inspirado no seriado Monty Python ! -"+)($!()*"+. ! /0)1$2#"3&)454313'$6'7)&3"7$ 348'9$:;<=>$9147$%&'$?@?AA$'$ B151C ! D'E4F404313'$3'$GH34E" ! IJG40$12#'+34813" ! I1G409'+)'$'>)'+7K5'0$ 6?@?AAL$B151C ! M2'+$N"&#G' ! -13&#1L$3'73'$<OO<$6<P$ X Encontro do PUG-PE 1+"7C 4
  • 5. O que é python ? X Encontro do PUG-PE 5
  • 6. O que é python ? É fácil X Encontro do PUG-PE 5
  • 7. Python é simples e legível Semelhança ao pseudo-código X Encontro do PUG-PE 6
  • 8. Hello World Classíco ... ‘hello world’ - Python vs { Java, C, PHP e Pascal } X Encontro do PUG-PE 7
  • 9. Hello World Classíco .... Em Python .... print “Hello World” X Encontro do PUG-PE 8
  • 10. O que é python ? É fácil X Encontro do PUG-PE 9
  • 11. O que é python ? É fácil É poderoso X Encontro do PUG-PE 9
  • 12. Canivete suíço Tipagem dinâmica Biblioteca padrão completa Multi-paradigma Multi-plataforma Facilmente extensível Free Software (GPL) X Encontro do PUG-PE 10
  • 13. ...E já vem com acessórios import urllib2 from BeautifulSoup import BeautifulSoup url = "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 objetos links = soup.findAll('a') # retorna uma lista com todos os links do documento for link in links: print link['href'] X Encontro do PUG-PE 11
  • 14. ...E já vem com acessórios Persistência de Objetos Banco de Dados Geração de Pdfs Protocolos de Rede Criptografia etc. X Encontro do PUG-PE 12
  • 15. O que é python ? É fácil É poderoso X Encontro do PUG-PE 13
  • 16. O que é python ? É fácil É poderoso É divertido X Encontro do PUG-PE 13
  • 18. Hun, sei o que é Python! ...E agora como eu começo ? X Encontro do PUG-PE 15
  • 19. 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
  • 20. E como eu começo ?! X Encontro do PUG-PE 17
  • 21. E como eu começo ?! Diversos editores com suporte para desenvolvimento em Python X Encontro do PUG-PE 18
  • 22. E como eu começo ?! Diversos editores com suporte para desenvolvimento em Python X Encontro do PUG-PE 18
  • 23. ... e por que Python ? X Encontro do PUG-PE 19
  • 24. ... e por que Python ? 8 motivos ! X Encontro do PUG-PE 19
  • 25. ... e por que Python ? 1. Python é fácil e divertido X Encontro do PUG-PE 20
  • 26. 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
  • 27. ... e por que Python ? 2. Python é poderoso X Encontro do PUG-PE 22
  • 28. Python é multi-paradigma • 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
  • 29. Python é multi-paradigma • 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
  • 30. Python é multi-paradigma • Programação funcional def 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
  • 31. Python é multi-paradigma • Programação pythônica list.sort() X Encontro do PUG-PE 26
  • 32. Python é multi-plataforma Linux, Unix, Windows, Mac OS... Até aqui nada surpreendente, certo ? X Encontro do PUG-PE 27
  • 33. Python é multi-plataforma • Python em dispositivos móveis • Python for Symbian (PyS60), PySide (Maemo), ASE (Android) X Encontro do PUG-PE 28
  • 34. Python é multi-plataforma • PyMT • Python Multi Touch • Especialmente criado para ambientes multi-touch http://pymt.eu/ X Encontro do PUG-PE 29
  • 35. Python é multi-plataforma • 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
  • 36. E tem vários acessórios! NetworkX http://pypi.python.org/pypi X Encontro do PUG-PE 31
  • 37. ... e por que Python ? 3. Python é utilizado ao redor do mundo X Encontro do PUG-PE 32
  • 38. Python é utilizado lá fora II Encontro X Encontro do Pernambuco Livre - Recife - PUG-PE 33
  • 39. ... e aqui no Brasil também! X Encontro do PUG-PE 34
  • 40. Python entre as 10 + ! http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html X Encontro do PUG-PE 35
  • 41. Depoimentos sobre Python Google: "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
  • 42. Depoimentos sobre Python Mameluco - 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 em outro 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 - Mameluco Orygens: “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á aprendendo desenvolver 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.com Instituto Nokia de Tecnologia: [...] “Desenvolvemos bindings de Qt(C++) para Python: PySide. Python me chamou atenção por ser usado na 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
  • 43. PyGame e Jogos http://www.pygame.org/news.html X Encontro do PUG-PE 38
  • 45. Aplicativos Desktop http://www.blender.org/ X Encontro do PUG-PE 40
  • 46. Aplicativos Desktop http://www.stoq.com.br/ http://taskcoach.org/ X Encontro do PUG-PE 41
  • 47. Aplicativos Desktop Python + Qt + Qml X Encontro do PUG-PE 42
  • 48. ... e por que Python ? 4. Python é utilizado na web ao redor do mundo X Encontro do PUG-PE 43
  • 49. Web lá fora! http://pt.reddit.com/ http://www.nationalgeographic.com/ http://sourceforge.net/ http://www.youtube.com/ X Encontro do PUG-PE 44
  • 50. 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
  • 51. ... e por que Python ? 5. Há empregos para desenvolvedores Python X Encontro do PUG-PE 46
  • 52. Por aqui... X Encontro do PUG-PE 47
  • 53. Por aqui... http://empregos.trovitbrasil.com.br/python, listas de discussão, ... X Encontro do PUG-PE 48
  • 54. Por lá... http://www.python.org/community/jobs/ X Encontro do PUG-PE 49
  • 55. 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
  • 56. Até em casa! http://www.freelancer.com/projects/ X Encontro do PUG-PE 51
  • 57. ... e por que Python ? 6. Conversa bem com outras linguagens X Encontro do PUG-PE 52
  • 58. 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
  • 59. Python e Java import javax.swing as sshwing firstNum = 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
  • 60. Python e .Net import sys sys.path.append(r’C:Python25Lib’) import clr clr.AddReference(“System.Windows.Forms”) from System.Windows.Forms import Application,Form class 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
  • 61. Python e muito mais! PyMat - Matlab http://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
  • 62. 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/ 200 150 100 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
  • 63. ... e por que Python ? 7. Uma boa linguagem para quem está começando! X Encontro do PUG-PE 58
  • 64. Aprendar programar com Python http://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
  • 65. Aprendar programar com Python 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
  • 66. ... e por que Python ? 8. Uma comunidade forte com que você pode contar! X Encontro do PUG-PE 61
  • 67. 24 hrs ao seu dispor! http://br.groups.yahoo.com/group/python-brasil/ X Encontro do PUG-PE 62
  • 68. PUG - PE Grupo de usuários de Python de Pernambuco http://groups.google.com/group/pug-pe?hl=pt-BR X Encontro do PUG-PE 63
  • 69. Razão bônus! 9. Permite expor suas idéias de forma rápida! X Encontro do PUG-PE 64
  • 70. TransitoRecife (Web) Monitorando o trânsito de algumas vias do Recife X Encontro do PUG-PE 65
  • 71. TransitoRecife (Web) Monitorando o trânsito de algumas vias do Recife X Encontro do PUG-PE 65
  • 72. TransitoRecife (Web) Monitorando o trânsito de algumas vias do Recife http://twitter.com/transitoRE X Encontro do PUG-PE 65
  • 73. TransitoRecife (Web) Monitorando o trânsito de algumas vias do Recife http://twitter.com/transitoRE X Encontro do PUG-PE 65
  • 74. 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
  • 75. TransitoRecife (Celular) ... E também via celular! TransitoRecife no Nokia E63 66
  • 76. TransitoRecife (Celular) ... E também via celular! TransitoRecife no Nokia E63 66
  • 77. TransitoRecife (Celular) ... E também via celular! TransitoRecife no Nokia E63 66
  • 78. TransitoRecife (Celular) ... E também via celular! TransitoRecife no Nokia E63 66
  • 79. Referências http://www.slideshare.net/marcoandre/porque-python-fisl-90 (Marcos André - FISL 9) http://www.slideshare.net/flavioribeiro/introduo-a-linguagem-de-programao-python-presentation http://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
  • 80. Chegamos ao fim !! Hora da random.choice([pergunta, dúvida, discussão]) !! X Encontro do PUG-PE 68
  • 81. Conhecendo Python e Por que ele importa? Marcel Pinheiro Caraciolo email: caraciol@gmail.com twitter: marcelcaraciolo X Encontro do PUG-PE 69

Notas do Editor